summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanad Liaquat <sliaquat@gitlab.com>2019-09-05 20:49:32 +0500
committerSanad Liaquat <sliaquat@gitlab.com>2019-09-05 20:49:32 +0500
commit9e8b1006c74a65d57bb1b3591f68fc14138418d1 (patch)
treed23a9264670b52d3a10208a4ae0f354d4880a42e
parent4e4fcf79c57f9c6f62b7a1cfbb6a83ee154f05fa (diff)
downloadgitlab-ce-qa-testcases-195-audit-logs-ce.tar.gz
EE to CE backport for audit logs e2e test changesqa-testcases-195-audit-logs-ce
Add qa selectors and refactor existing menu page objects
-rw-r--r--app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue1
-rw-r--r--app/views/projects/_export.html.haml4
-rw-r--r--app/views/projects/buttons/_download.html.haml2
-rw-r--r--app/views/projects/edit.html.haml8
-rw-r--r--qa/qa.rb1
-rw-r--r--qa/qa/page/project/menu.rb2
-rw-r--r--qa/qa/page/project/settings/advanced.rb27
-rw-r--r--qa/qa/page/project/settings/main.rb10
-rw-r--r--qa/qa/page/project/settings/visibility_features_permissions.rb26
-rw-r--r--qa/qa/page/project/show.rb4
10 files changed, 77 insertions, 8 deletions
diff --git a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue
index ea867d30ce8..89cac42abae 100644
--- a/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue
+++ b/app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue
@@ -215,6 +215,7 @@ export default {
:disabled="!canChangeVisibilityLevel"
name="project[visibility_level]"
class="form-control select-control"
+ data-qa-selector="project_visibility_dropdown"
>
<option
:value="visibilityOptions.PRIVATE"
diff --git a/app/views/projects/_export.html.haml b/app/views/projects/_export.html.haml
index e42772c2dd9..f564ed41760 100644
--- a/app/views/projects/_export.html.haml
+++ b/app/views/projects/_export.html.haml
@@ -26,9 +26,9 @@
%p= _('Once the exported file is ready, you will receive a notification email with a download link, or you can download it from this page.')
- if project.export_status == :finished
= link_to _('Download export'), download_export_project_path(project),
- rel: 'nofollow', download: '', method: :get, class: "btn btn-default"
+ rel: 'nofollow', download: '', method: :get, class: "btn btn-default", data: { qa_selector: 'download_export_link' }
= link_to _('Generate new export'), generate_new_export_project_path(project),
method: :post, class: "btn btn-default"
- else
= link_to _('Export project'), export_project_path(project),
- method: :post, class: "btn btn-default"
+ method: :post, class: "btn btn-default", data: { qa_selector: 'export_project_link' }
diff --git a/app/views/projects/buttons/_download.html.haml b/app/views/projects/buttons/_download.html.haml
index 4762045ee96..96df3cd18fe 100644
--- a/app/views/projects/buttons/_download.html.haml
+++ b/app/views/projects/buttons/_download.html.haml
@@ -3,7 +3,7 @@
- if !project.empty_repo? && can?(current_user, :download_code, project)
- archive_prefix = "#{project.path}-#{ref.tr('/', '-')}"
.project-action-button.dropdown.inline>
- %button.btn.has-tooltip{ title: s_('DownloadSource|Download'), 'data-toggle' => 'dropdown', 'aria-label' => s_('DownloadSource|Download'), 'data-display' => 'static' }
+ %button.btn.has-tooltip{ title: s_('DownloadSource|Download'), 'data-toggle' => 'dropdown', 'aria-label' => s_('DownloadSource|Download'), 'data-display' => 'static', data: { qa_selector: 'download_source_code_button' } }
= sprite_icon('download')
%span.sr-only= _('Select Archive Format')
= sprite_icon("arrow-down")
diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml
index 763cc764144..b5e24cbbffb 100644
--- a/app/views/projects/edit.html.haml
+++ b/app/views/projects/edit.html.haml
@@ -10,7 +10,7 @@
%p= _('Update your project name, topics, description and avatar.')
.settings-content= render 'projects/settings/general'
-%section.settings.sharing-permissions.no-animate#js-shared-permissions{ class: ('expanded' if expanded) }
+%section.settings.sharing-permissions.no-animate#js-shared-permissions{ class: ('expanded' if expanded), data: { qa_selector: 'visibility_features_permissions_content' } }
.settings-header
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only= _('Visibility, project features, permissions')
%button.btn.btn-default.js-settings-toggle{ type: 'button' }= expanded ? _('Collapse') : _('Expand')
@@ -21,7 +21,7 @@
%input{ name: 'update_section', type: 'hidden', value: 'js-shared-permissions' }
%template.js-project-permissions-form-data{ type: "application/json" }= project_permissions_panel_data_json(@project)
.js-project-permissions-form
- = f.submit _('Save changes'), class: "btn btn-success"
+ = f.submit _('Save changes'), class: "btn btn-success", data: { qa_selector: 'visibility_features_permissions_save_button' }
%section.qa-merge-request-settings.rspec-merge-request-settings.settings.merge-requests-feature.no-animate#js-merge-request-settings{ class: [('expanded' if expanded), ('hidden' if @project.project_feature.send(:merge_requests_access_level) == 0)] }
.settings-header
@@ -81,12 +81,12 @@
- if @project.archived?
%p= _("Unarchiving the project will restore people's ability to make changes to it. The repository can be committed to, and issues, comments and other entities can be created. <strong>Once active this project shows up in the search and on the dashboard.</strong>").html_safe
= link_to _('Unarchive project'), unarchive_project_path(@project),
- data: { confirm: _("Are you sure that you want to unarchive this project?") },
+ data: { confirm: _("Are you sure that you want to unarchive this project?"), qa_selector: 'unarchive_project_link' },
method: :post, class: "btn btn-success"
- else
%p= _("Archiving the project will make it entirely read-only. It is hidden from the dashboard and doesn't show up in searches. <strong>The repository cannot be committed to, and no issues, comments or other entities can be created.</strong>").html_safe
= link_to _('Archive project'), archive_project_path(@project),
- data: { confirm: _("Are you sure that you want to archive this project?") },
+ data: { confirm: _("Are you sure that you want to archive this project?"), qa_selector: 'archive_project_link' },
method: :post, class: "btn btn-warning"
.sub-section.rename-repository
%h4.warning-title= _('Change path')
diff --git a/qa/qa.rb b/qa/qa.rb
index 8b38011486b..dad01c11c8d 100644
--- a/qa/qa.rb
+++ b/qa/qa.rb
@@ -221,6 +221,7 @@ module QA
autoload :MergeRequest, 'qa/page/project/settings/merge_request'
autoload :Members, 'qa/page/project/settings/members'
autoload :MirroringRepositories, 'qa/page/project/settings/mirroring_repositories'
+ autoload :VisibilityFeaturesPermissions, 'qa/page/project/settings/visibility_features_permissions'
end
module SubMenus
diff --git a/qa/qa/page/project/menu.rb b/qa/qa/page/project/menu.rb
index a9226927741..5967213a52b 100644
--- a/qa/qa/page/project/menu.rb
+++ b/qa/qa/page/project/menu.rb
@@ -40,4 +40,4 @@ module QA
end
end
-QA::Page::Project::Menu.prepend_if_ee('QA::EE::Page::Project::SubMenus::SecurityCompliance')
+QA::Page::Project::Menu.prepend_if_ee('QA::EE::Page::Project::Menu')
diff --git a/qa/qa/page/project/settings/advanced.rb b/qa/qa/page/project/settings/advanced.rb
index ab4e3d757b6..3a5067a9541 100644
--- a/qa/qa/page/project/settings/advanced.rb
+++ b/qa/qa/page/project/settings/advanced.rb
@@ -12,6 +12,13 @@ module QA
element :project_path_field
element :change_path_button
element :transfer_button
+ element :archive_project_link
+ element :unarchive_project_link
+ end
+
+ view 'app/views/projects/_export.html.haml' do
+ element :export_project_link
+ element :download_export_link
end
def update_project_path_to(path)
@@ -38,6 +45,26 @@ module QA
fill_confirmation_text(project_name)
click_confirm_button
end
+
+ def click_export_project_link
+ click_element :export_project_link
+ end
+
+ def click_download_export_link
+ click_element :download_export_link
+ end
+
+ def archive_project
+ page.accept_alert("Are you sure that you want to archive this project?") do
+ click_element :archive_project_link
+ end
+ end
+
+ def unarchive_project
+ page.accept_alert("Are you sure that you want to unarchive this project?") do
+ click_element :unarchive_project_link
+ end
+ end
end
end
end
diff --git a/qa/qa/page/project/settings/main.rb b/qa/qa/page/project/settings/main.rb
index a196fc0123a..6b26c82a46f 100644
--- a/qa/qa/page/project/settings/main.rb
+++ b/qa/qa/page/project/settings/main.rb
@@ -18,6 +18,10 @@ module QA
element :save_naming_topics_avatar_button
end
+ view 'app/views/projects/edit.html.haml' do
+ element :visibility_features_permissions_content
+ end
+
def rename_project_to(name)
fill_project_name(name)
click_save_changes
@@ -36,6 +40,12 @@ module QA
Advanced.perform(&block)
end
end
+
+ def expand_visibility_project_features_permissions(&block)
+ expand_section(:visibility_features_permissions_content) do
+ VisibilityFeaturesPermissions.perform(&block)
+ end
+ end
end
end
end
diff --git a/qa/qa/page/project/settings/visibility_features_permissions.rb b/qa/qa/page/project/settings/visibility_features_permissions.rb
new file mode 100644
index 00000000000..1d6686ae360
--- /dev/null
+++ b/qa/qa/page/project/settings/visibility_features_permissions.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+module QA
+ module Page
+ module Project
+ module Settings
+ class VisibilityFeaturesPermissions < Page::Base
+ include QA::Page::Component::Select2
+
+ view 'app/views/projects/edit.html.haml' do
+ element :visibility_features_permissions_save_button
+ end
+
+ view 'app/assets/javascripts/pages/projects/shared/permissions/components/settings_panel.vue' do
+ element :project_visibility_dropdown
+ end
+
+ def set_project_visibility(visibility)
+ select_element(:project_visibility_dropdown, visibility)
+ click_element :visibility_features_permissions_save_button
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb
index 549992f271b..102b6144a1e 100644
--- a/qa/qa/page/project/show.rb
+++ b/qa/qa/page/project/show.rb
@@ -56,6 +56,10 @@ module QA
element :spinner
end
+ view 'app/views/projects/buttons/_download.html.haml' do
+ element :download_source_code_button
+ end
+
def wait_for_viewers_to_load
wait(reload: false) do
has_no_element?(:spinner)