From 9c096ddf28d63a89ff2844514bde9ab93a8756ae Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Wed, 20 Sep 2017 09:39:12 -0500 Subject: Add view replaced file link for image diffs --- features/steps/project/commits/commits.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'features') diff --git a/features/steps/project/commits/commits.rb b/features/steps/project/commits/commits.rb index 305fff37c41..318e054e978 100644 --- a/features/steps/project/commits/commits.rb +++ b/features/steps/project/commits/commits.rb @@ -139,7 +139,7 @@ class Spinach::Features::ProjectCommits < Spinach::FeatureSteps end step 'The diff links to both the previous and current image' do - links = page.all('.two-up span div a') + links = page.all('.file-actions a') expect(links[0]['href']).to match %r{blob/#{sample_image_commit.old_blob_id}} expect(links[1]['href']).to match %r{blob/#{sample_image_commit.new_blob_id}} end -- cgit v1.2.3 From 0ed3d8a07b997651df5f2b18b11bb1e0cb1c74de Mon Sep 17 00:00:00 2001 From: "Vitaliy @blackst0ne Klachkov" Date: Fri, 22 Sep 2017 14:29:19 +1100 Subject: Replace the 'project/shortcuts.feature' spinach test with an rspec analog --- features/project/shortcuts.feature | 63 ----------------------------- features/steps/project/project_shortcuts.rb | 42 ------------------- 2 files changed, 105 deletions(-) delete mode 100644 features/project/shortcuts.feature delete mode 100644 features/steps/project/project_shortcuts.rb (limited to 'features') diff --git a/features/project/shortcuts.feature b/features/project/shortcuts.feature deleted file mode 100644 index cbbea237825..00000000000 --- a/features/project/shortcuts.feature +++ /dev/null @@ -1,63 +0,0 @@ -@dashboard -Feature: Project Shortcuts - Background: - Given I sign in as a user - And I own a project - And I visit my project's commits page - - @javascript - Scenario: Navigate to files tab - Given I press "g" and "f" - Then the active main tab should be Repository - Then the active sub tab should be Files - - @javascript - Scenario: Navigate to commits tab - Given I visit my project's files page - Given I press "g" and "c" - Then the active main tab should be Repository - Then the active sub tab should be Commits - - @javascript - Scenario: Navigate to graph tab - Given I press "g" and "n" - Then the active sub tab should be Graph - And the active main tab should be Repository - - @javascript - Scenario: Navigate to repository charts tab - Given I press "g" and "d" - Then the active sub tab should be Charts - And the active main tab should be Repository - - @javascript - Scenario: Navigate to issues tab - Given I press "g" and "i" - Then the active main tab should be Issues - - @javascript - Scenario: Navigate to merge requests tab - Given I press "g" and "m" - Then the active main tab should be Merge Requests - - @javascript - Scenario: Navigate to snippets tab - Given I press "g" and "s" - Then the active main tab should be Snippets - - @javascript - Scenario: Navigate to wiki tab - Given I press "g" and "w" - Then the active main tab should be Wiki - - @javascript - Scenario: Navigate to project home - Given I press "g" and "p" - Then the active sub tab should be Home - And the active main tab should be Project - - @javascript - Scenario: Navigate to project feed - Given I press "g" and "e" - Then the active sub tab should be Activity - And the active main tab should be Project diff --git a/features/steps/project/project_shortcuts.rb b/features/steps/project/project_shortcuts.rb deleted file mode 100644 index cebf09750b0..00000000000 --- a/features/steps/project/project_shortcuts.rb +++ /dev/null @@ -1,42 +0,0 @@ -class Spinach::Features::ProjectShortcuts < Spinach::FeatureSteps - include SharedAuthentication - include SharedPaths - include SharedProject - include SharedProjectTab - include SharedShortcuts - - step 'I press "g" and "f"' do - find('body').native.send_key('g') - find('body').native.send_key('f') - end - - step 'I press "g" and "c"' do - find('body').native.send_key('g') - find('body').native.send_key('c') - end - - step 'I press "g" and "n"' do - find('body').native.send_key('g') - find('body').native.send_key('n') - end - - step 'I press "g" and "d"' do - find('body').native.send_key('g') - find('body').native.send_key('d') - end - - step 'I press "g" and "s"' do - find('body').native.send_key('g') - find('body').native.send_key('s') - end - - step 'I press "g" and "w"' do - find('body').native.send_key('g') - find('body').native.send_key('w') - end - - step 'I press "g" and "e"' do - find('body').native.send_key('g') - find('body').native.send_key('e') - end -end -- cgit v1.2.3 From 0fc604e522ed9e07ea1f35188c2ce1ed38de7888 Mon Sep 17 00:00:00 2001 From: "Vitaliy @blackst0ne Klachkov" Date: Fri, 22 Sep 2017 15:42:52 +1100 Subject: Replace the 'project/service.feature' spinach test with an rspec analog --- features/project/service.feature | 87 -------------- features/steps/project/services.rb | 224 ------------------------------------- 2 files changed, 311 deletions(-) delete mode 100644 features/project/service.feature delete mode 100644 features/steps/project/services.rb (limited to 'features') diff --git a/features/project/service.feature b/features/project/service.feature deleted file mode 100644 index 54f07ebca92..00000000000 --- a/features/project/service.feature +++ /dev/null @@ -1,87 +0,0 @@ -Feature: Project Services - Background: - Given I sign in as a user - And I own project "Shop" - - Scenario: I should see project services - When I visit project "Shop" services page - Then I should see list of available services - - Scenario: Activate hipchat service - When I visit project "Shop" services page - And I click hipchat service link - And I fill hipchat settings - Then I should see the Hipchat success message - - Scenario: Activate hipchat service with custom server - When I visit project "Shop" services page - And I click hipchat service link - And I fill hipchat settings with custom server - Then I should see the Hipchat success message - - Scenario: Activate pivotaltracker service - When I visit project "Shop" services page - And I click pivotaltracker service link - And I fill pivotaltracker settings - Then I should see the Pivotaltracker success message - - Scenario: Activate Flowdock service - When I visit project "Shop" services page - And I click Flowdock service link - And I fill Flowdock settings - Then I should see the Flowdock success message - - Scenario: Activate Assembla service - When I visit project "Shop" services page - And I click Assembla service link - And I fill Assembla settings - Then I should see the Assembla success message - - Scenario: Activate Slack notifications service - When I visit project "Shop" services page - And I click Slack notifications service link - And I fill Slack notifications settings - Then I should see the Slack notifications success message - - Scenario: Activate Pushover service - When I visit project "Shop" services page - And I click Pushover service link - And I fill Pushover settings - Then I should see the Pushover success message - - Scenario: Activate email on push service - When I visit project "Shop" services page - And I click email on push service link - And I fill email on push settings - Then I should see the Emails on push success message - - Scenario: Activate JIRA service - When I visit project "Shop" services page - And I click jira service link - And I fill jira settings - Then I should see the JIRA success message - - Scenario: Activate Irker (IRC Gateway) service - When I visit project "Shop" services page - And I click Irker service link - And I fill Irker settings - Then I should see the Irker success message - - Scenario: Activate Atlassian Bamboo CI service - When I visit project "Shop" services page - And I click Atlassian Bamboo CI service link - And I fill Atlassian Bamboo CI settings - Then I should see the Bamboo success message - And I should see empty field Change Password - - Scenario: Activate jetBrains TeamCity CI service - When I visit project "Shop" services page - And I click jetBrains TeamCity CI service link - And I fill jetBrains TeamCity CI settings - Then I should see the JetBrains success message - - Scenario: Activate Asana service - When I visit project "Shop" services page - And I click Asana service link - And I fill Asana settings - Then I should see the Asana success message diff --git a/features/steps/project/services.rb b/features/steps/project/services.rb deleted file mode 100644 index 7e2a357f6b2..00000000000 --- a/features/steps/project/services.rb +++ /dev/null @@ -1,224 +0,0 @@ -class Spinach::Features::ProjectServices < Spinach::FeatureSteps - include SharedAuthentication - include SharedProject - include SharedPaths - - step 'I visit project "Shop" services page' do - visit project_settings_integrations_path(@project) - end - - step 'I should see list of available services' do - expect(page).to have_content 'Project services' - expect(page).to have_content 'Campfire' - expect(page).to have_content 'HipChat' - expect(page).to have_content 'Assembla' - expect(page).to have_content 'Pushover' - expect(page).to have_content 'Atlassian Bamboo' - expect(page).to have_content 'JetBrains TeamCity' - expect(page).to have_content 'Asana' - expect(page).to have_content 'Irker (IRC gateway)' - end - - step 'I should see service settings saved' do - expect(find_field('Active').value).to eq '1' - end - - step 'I click hipchat service link' do - click_link 'HipChat' - end - - step 'I fill hipchat settings' do - check 'Active' - fill_in 'Room', with: 'gitlab' - fill_in 'Token', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the Hipchat success message' do - expect(page).to have_content 'HipChat activated.' - end - - step 'I fill hipchat settings with custom server' do - check 'Active' - fill_in 'Room', with: 'gitlab_custom' - fill_in 'Token', with: 'secretCustom' - fill_in 'Server', with: 'https://chat.example.com' - click_button 'Save' - end - - step 'I click pivotaltracker service link' do - click_link 'PivotalTracker' - end - - step 'I fill pivotaltracker settings' do - check 'Active' - fill_in 'Token', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the Pivotaltracker success message' do - expect(page).to have_content 'PivotalTracker activated.' - end - - step 'I click Flowdock service link' do - click_link 'Flowdock' - end - - step 'I fill Flowdock settings' do - check 'Active' - fill_in 'Token', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the Flowdock success message' do - expect(page).to have_content 'Flowdock activated.' - end - - step 'I click Assembla service link' do - click_link 'Assembla' - end - - step 'I fill Assembla settings' do - check 'Active' - fill_in 'Token', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the Assembla success message' do - expect(page).to have_content 'Assembla activated.' - end - - step 'I click Asana service link' do - click_link 'Asana' - end - - step 'I fill Asana settings' do - check 'Active' - fill_in 'Api key', with: 'verySecret' - fill_in 'Restrict to branch', with: 'master' - click_button 'Save' - end - - step 'I should see the Asana success message' do - expect(page).to have_content 'Asana activated.' - end - - step 'I click email on push service link' do - click_link 'Emails on push' - end - - step 'I fill email on push settings' do - check 'Active' - fill_in 'Recipients', with: 'qa@company.name' - click_button 'Save' - end - - step 'I should see the Emails on push success message' do - expect(page).to have_content 'Emails on push activated.' - end - - step 'I click Irker service link' do - click_link 'Irker (IRC gateway)' - end - - step 'I fill Irker settings' do - check 'Active' - fill_in 'Recipients', with: 'irc://chat.freenode.net/#commits' - check 'Colorize messages' - click_button 'Save' - end - - step 'I should see the Irker success message' do - expect(page).to have_content 'Irker (IRC gateway) activated.' - end - - step 'I click Slack notifications service link' do - click_link 'Slack notifications' - end - - step 'I fill Slack notifications settings' do - check 'Active' - fill_in 'Webhook', with: 'https://hooks.slack.com/services/SVRWFV0VVAR97N/B02R25XN3/ZBqu7xMupaEEICInN685' - click_button 'Save' - end - - step 'I should see the Slack notifications success message' do - expect(page).to have_content 'Slack notifications activated.' - end - - step 'I click Pushover service link' do - click_link 'Pushover' - end - - step 'I fill Pushover settings' do - check 'Active' - fill_in 'Api key', with: 'verySecret' - fill_in 'User key', with: 'verySecret' - fill_in 'Device', with: 'myDevice' - select 'High Priority', from: 'Priority' - select 'Bike', from: 'Sound' - click_button 'Save' - end - - step 'I should see the Pushover success message' do - expect(page).to have_content 'Pushover activated.' - end - - step 'I click jira service link' do - click_link 'JIRA' - end - - step 'I fill jira settings' do - check 'Active' - - fill_in 'Web URL', with: 'http://jira.example' - fill_in 'JIRA API URL', with: 'http://jira.example/api' - fill_in 'Username', with: 'gitlab' - fill_in 'Password', with: 'gitlab' - click_button 'Save' - end - - step 'I should see the JIRA success message' do - expect(page).to have_content 'JIRA activated.' - end - - step 'I click Atlassian Bamboo CI service link' do - click_link 'Atlassian Bamboo CI' - end - - step 'I fill Atlassian Bamboo CI settings' do - check 'Active' - fill_in 'Bamboo url', with: 'http://bamboo.example.com' - fill_in 'Build key', with: 'KEY' - fill_in 'Username', with: 'user' - fill_in 'Password', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the Bamboo success message' do - expect(page).to have_content 'Atlassian Bamboo CI activated.' - end - - step 'I should see empty field Change Password' do - click_link 'Atlassian Bamboo CI' - - expect(find_field('Enter new password').value).to be_nil - end - - step 'I click JetBrains TeamCity CI service link' do - click_link 'JetBrains TeamCity CI' - end - - step 'I fill JetBrains TeamCity CI settings' do - check 'Active' - fill_in 'Teamcity url', with: 'http://teamcity.example.com' - fill_in 'Build type', with: 'GitlabTest_Build' - fill_in 'Username', with: 'user' - fill_in 'Password', with: 'verySecret' - click_button 'Save' - end - - step 'I should see the JetBrains success message' do - expect(page).to have_content 'JetBrains TeamCity CI activated.' - end -end -- cgit v1.2.3 From 0d236638b683d368d5384e95dd75772a68c727c2 Mon Sep 17 00:00:00 2001 From: "Vitaliy @blackst0ne Klachkov" Date: Sat, 23 Sep 2017 11:46:53 +1100 Subject: Improve list of sorting options --- features/project/issues/issues.feature | 18 ++++++++---------- features/project/merge_requests.feature | 16 +++++++--------- features/steps/project/issues/issues.rb | 2 +- features/steps/project/merge_requests.rb | 2 +- features/steps/shared/issuable.rb | 12 ++++++------ 5 files changed, 23 insertions(+), 27 deletions(-) (limited to 'features') diff --git a/features/project/issues/issues.feature b/features/project/issues/issues.feature index 4f905674d8c..d6cfa524a3a 100644 --- a/features/project/issues/issues.feature +++ b/features/project/issues/issues.feature @@ -51,36 +51,34 @@ Feature: Project Issues @javascript Scenario: Visiting Issues after being sorted the list Given I visit project "Shop" issues page - And I sort the list by "Oldest updated" + And I sort the list by "Last updated" And I visit my project's home page And I visit project "Shop" issues page - Then The list should be sorted by "Oldest updated" + Then The list should be sorted by "Last updated" @javascript Scenario: Visiting Merge Requests after being sorted the list Given project "Shop" has a "Bugfix MR" merge request open And I visit project "Shop" issues page - And I sort the list by "Oldest updated" + And I sort the list by "Last updated" And I visit project "Shop" merge requests page - Then The list should be sorted by "Oldest updated" + Then The list should be sorted by "Last updated" @javascript Scenario: Visiting Merge Requests from a differente Project after sorting Given project "Shop" has a "Bugfix MR" merge request open And I visit project "Shop" merge requests page - And I sort the list by "Oldest updated" + And I sort the list by "Last updated" And I visit dashboard merge requests page - Then The list should be sorted by "Oldest updated" + Then The list should be sorted by "Last updated" @javascript Scenario: Sort issues by upvotes/downvotes Given project "Shop" have "Bugfix" open issue And issue "Release 0.4" have 2 upvotes and 1 downvote And issue "Tweet control" have 1 upvote and 2 downvotes - And I sort the list by "Most popular" - Then The list should be sorted by "Most popular" - And I sort the list by "Least popular" - Then The list should be sorted by "Least popular" + And I sort the list by "Popularity" + Then The list should be sorted by "Popularity" # Markdown diff --git a/features/project/merge_requests.feature b/features/project/merge_requests.feature index 0ebeded7fc5..349fa2663a7 100644 --- a/features/project/merge_requests.feature +++ b/features/project/merge_requests.feature @@ -91,28 +91,26 @@ Feature: Project Merge Requests @javascript Scenario: Visiting Merge Requests after being sorted the list Given I visit project "Shop" merge requests page - And I sort the list by "Oldest updated" + And I sort the list by "Last updated" And I visit my project's home page And I visit project "Shop" merge requests page - Then The list should be sorted by "Oldest updated" + Then The list should be sorted by "Last updated" @javascript Scenario: Visiting Merge Requests from a different Project after sorting Given I visit project "Shop" merge requests page - And I sort the list by "Oldest updated" + And I sort the list by "Last updated" And I visit dashboard merge requests page - Then The list should be sorted by "Oldest updated" + Then The list should be sorted by "Last updated" @javascript - Scenario: Sort merge requests by upvotes/downvotes + Scenario: Sort merge requests by upvotes Given project "Shop" have "Bug NS-05" open merge request with diffs inside And project "Shop" have "Bug NS-06" open merge request And merge request "Bug NS-04" have 2 upvotes and 1 downvote And merge request "Bug NS-06" have 1 upvote and 2 downvotes - And I sort the list by "Most popular" - Then The list should be sorted by "Most popular" - And I sort the list by "Least popular" - Then The list should be sorted by "Least popular" + And I sort the list by "Popularity" + Then The list should be sorted by "Popularity" @javascript Scenario: I comment on a merge request diff diff --git a/features/steps/project/issues/issues.rb b/features/steps/project/issues/issues.rb index b9460f5b534..2c3ef2efd52 100644 --- a/features/steps/project/issues/issues.rb +++ b/features/steps/project/issues/issues.rb @@ -223,7 +223,7 @@ class Spinach::Features::ProjectIssues < Spinach::FeatureSteps end end - step 'The list should be sorted by "Most popular"' do + step 'The list should be sorted by "Popularity"' do page.within '.issues-list' do page.within 'li.issue:nth-child(1)' do expect(page).to have_content 'Release 0.4' diff --git a/features/steps/project/merge_requests.rb b/features/steps/project/merge_requests.rb index 0d49a4ab90d..dde918e3d41 100644 --- a/features/steps/project/merge_requests.rb +++ b/features/steps/project/merge_requests.rb @@ -222,7 +222,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps end end - step 'The list should be sorted by "Most popular"' do + step 'The list should be sorted by "Popularity"' do page.within '.mr-list' do page.within 'li.merge-request:nth-child(1)' do expect(page).to have_content 'Bug NS-04' diff --git a/features/steps/shared/issuable.rb b/features/steps/shared/issuable.rb index 7c842ba88fb..714985f2051 100644 --- a/features/steps/shared/issuable.rb +++ b/features/steps/shared/issuable.rb @@ -109,10 +109,10 @@ module SharedIssuable edit_issuable end - step 'I sort the list by "Oldest updated"' do + step 'I sort the list by "Last updated"' do find('button.dropdown-toggle').click page.within('.content ul.dropdown-menu.dropdown-menu-align-right li') do - click_link "Oldest updated" + click_link "Last updated" end end @@ -124,16 +124,16 @@ module SharedIssuable end end - step 'I sort the list by "Most popular"' do + step 'I sort the list by "Popularity"' do find('button.dropdown-toggle').click page.within('.content ul.dropdown-menu.dropdown-menu-align-right li') do - click_link 'Most popular' + click_link 'Popularity' end end - step 'The list should be sorted by "Oldest updated"' do - expect(find('.issues-filters')).to have_content('Oldest updated') + step 'The list should be sorted by "Last updated"' do + expect(find('.issues-filters')).to have_content('Last updated') end step 'I click link "Next" in the sidebar' do -- cgit v1.2.3