Commit cada511f8b88671bb8a99600ed314c3beb5a36f4
1 parent
f814da38
Exists in
master
and in
4 other branches
Add features for checking the "Active Tab" across various pages
Showing
11 changed files
with
535 additions
and
7 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,33 @@ |
| 1 | +Feature: Admin active tab | |
| 2 | + Background: | |
| 3 | + Given I sign in as an admin | |
| 4 | + | |
| 5 | + Scenario: On Admin Home | |
| 6 | + Given I visit admin page | |
| 7 | + Then the active main tab should be Home | |
| 8 | + And no other main tabs should be active | |
| 9 | + | |
| 10 | + Scenario: On Admin Projects | |
| 11 | + Given I visit admin projects page | |
| 12 | + Then the active main tab should be Projects | |
| 13 | + And no other main tabs should be active | |
| 14 | + | |
| 15 | + Scenario: On Admin Users | |
| 16 | + Given I visit admin users page | |
| 17 | + Then the active main tab should be Users | |
| 18 | + And no other main tabs should be active | |
| 19 | + | |
| 20 | + Scenario: On Admin Logs | |
| 21 | + Given I visit admin logs page | |
| 22 | + Then the active main tab should be Logs | |
| 23 | + And no other main tabs should be active | |
| 24 | + | |
| 25 | + Scenario: On Admin Hooks | |
| 26 | + Given I visit admin hooks page | |
| 27 | + Then the active main tab should be Hooks | |
| 28 | + And no other main tabs should be active | |
| 29 | + | |
| 30 | + Scenario: On Admin Resque | |
| 31 | + Given I visit admin Resque page | |
| 32 | + Then the active main tab should be Resque | |
| 33 | + And no other main tabs should be active | ... | ... |
| ... | ... | @@ -0,0 +1,28 @@ |
| 1 | +Feature: Dashboard active tab | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + | |
| 5 | + Scenario: On Dashboard Home | |
| 6 | + Given I visit dashboard page | |
| 7 | + Then the active main tab should be Home | |
| 8 | + And no other main tabs should be active | |
| 9 | + | |
| 10 | + Scenario: On Dashboard Issues | |
| 11 | + Given I visit dashboard issues page | |
| 12 | + Then the active main tab should be Issues | |
| 13 | + And no other main tabs should be active | |
| 14 | + | |
| 15 | + Scenario: On Dashboard Merge Requests | |
| 16 | + Given I visit dashboard merge requests page | |
| 17 | + Then the active main tab should be Merge Requests | |
| 18 | + And no other main tabs should be active | |
| 19 | + | |
| 20 | + Scenario: On Dashboard Search | |
| 21 | + Given I visit dashboard search page | |
| 22 | + Then the active main tab should be Search | |
| 23 | + And no other main tabs should be active | |
| 24 | + | |
| 25 | + Scenario: On Dashboard Help | |
| 26 | + Given I visit dashboard help page | |
| 27 | + Then the active main tab should be Help | |
| 28 | + And no other main tabs should be active | ... | ... |
| ... | ... | @@ -0,0 +1,28 @@ |
| 1 | +Feature: Profile active tab | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + | |
| 5 | + Scenario: On Profile Home | |
| 6 | + Given I visit profile page | |
| 7 | + Then the active main tab should be Home | |
| 8 | + And no other main tabs should be active | |
| 9 | + | |
| 10 | + Scenario: On Profile Account | |
| 11 | + Given I visit profile account page | |
| 12 | + Then the active main tab should be Account | |
| 13 | + And no other main tabs should be active | |
| 14 | + | |
| 15 | + Scenario: On Profile SSH Keys | |
| 16 | + Given I visit profile SSH keys page | |
| 17 | + Then the active main tab should be SSH Keys | |
| 18 | + And no other main tabs should be active | |
| 19 | + | |
| 20 | + Scenario: On Profile Design | |
| 21 | + Given I visit profile design page | |
| 22 | + Then the active main tab should be Design | |
| 23 | + And no other main tabs should be active | |
| 24 | + | |
| 25 | + Scenario: On Profile History | |
| 26 | + Given I visit profile history page | |
| 27 | + Then the active main tab should be History | |
| 28 | + And no other main tabs should be active | ... | ... |
| ... | ... | @@ -0,0 +1,147 @@ |
| 1 | +Feature: Project active tab | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + And I own a project | |
| 5 | + | |
| 6 | + # Main Tabs | |
| 7 | + | |
| 8 | + Scenario: On Project Home | |
| 9 | + Given I visit my project's home page | |
| 10 | + Then the active main tab should be Home | |
| 11 | + And no other main tabs should be active | |
| 12 | + | |
| 13 | + Scenario: On Project Files | |
| 14 | + Given I visit my project's files page | |
| 15 | + Then the active main tab should be Files | |
| 16 | + And no other main tabs should be active | |
| 17 | + | |
| 18 | + Scenario: On Project Commits | |
| 19 | + Given I visit my project's commits page | |
| 20 | + Then the active main tab should be Commits | |
| 21 | + And no other main tabs should be active | |
| 22 | + | |
| 23 | + Scenario: On Project Network | |
| 24 | + Given I visit my project's network page | |
| 25 | + Then the active main tab should be Network | |
| 26 | + And no other main tabs should be active | |
| 27 | + | |
| 28 | + Scenario: On Project Issues | |
| 29 | + Given I visit my project's issues page | |
| 30 | + Then the active main tab should be Issues | |
| 31 | + And no other main tabs should be active | |
| 32 | + | |
| 33 | + Scenario: On Project Merge Requests | |
| 34 | + Given I visit my project's merge requests page | |
| 35 | + Then the active main tab should be Merge Requests | |
| 36 | + And no other main tabs should be active | |
| 37 | + | |
| 38 | + Scenario: On Project Wall | |
| 39 | + Given I visit my project's wall page | |
| 40 | + Then the active main tab should be Wall | |
| 41 | + And no other main tabs should be active | |
| 42 | + | |
| 43 | + Scenario: On Project Wiki | |
| 44 | + Given I visit my project's wiki page | |
| 45 | + Then the active main tab should be Wiki | |
| 46 | + And no other main tabs should be active | |
| 47 | + | |
| 48 | + # Sub Tabs: Home | |
| 49 | + | |
| 50 | + Scenario: On Project Home/Show | |
| 51 | + Given I visit my project's home page | |
| 52 | + Then the active sub tab should be Show | |
| 53 | + And no other sub tabs should be active | |
| 54 | + And the active main tab should be Home | |
| 55 | + | |
| 56 | + Scenario: On Project Home/Team | |
| 57 | + Given I visit my project's home page | |
| 58 | + And I click the "Team" tab | |
| 59 | + Then the active sub tab should be Team | |
| 60 | + And no other sub tabs should be active | |
| 61 | + And the active main tab should be Home | |
| 62 | + | |
| 63 | + Scenario: On Project Home/Attachments | |
| 64 | + Given I visit my project's home page | |
| 65 | + And I click the "Attachments" tab | |
| 66 | + Then the active sub tab should be Attachments | |
| 67 | + And no other sub tabs should be active | |
| 68 | + And the active main tab should be Home | |
| 69 | + | |
| 70 | + Scenario: On Project Home/Snippets | |
| 71 | + Given I visit my project's home page | |
| 72 | + And I click the "Snippets" tab | |
| 73 | + Then the active sub tab should be Snippets | |
| 74 | + And no other sub tabs should be active | |
| 75 | + And the active main tab should be Home | |
| 76 | + | |
| 77 | + Scenario: On Project Home/Edit | |
| 78 | + Given I visit my project's home page | |
| 79 | + And I click the "Edit" tab | |
| 80 | + Then the active sub tab should be Edit | |
| 81 | + And no other sub tabs should be active | |
| 82 | + And the active main tab should be Home | |
| 83 | + | |
| 84 | + Scenario: On Project Home/Hooks | |
| 85 | + Given I visit my project's home page | |
| 86 | + And I click the "Hooks" tab | |
| 87 | + Then the active sub tab should be Hooks | |
| 88 | + And no other sub tabs should be active | |
| 89 | + And the active main tab should be Home | |
| 90 | + | |
| 91 | + Scenario: On Project Home/Deploy Keys | |
| 92 | + Given I visit my project's home page | |
| 93 | + And I click the "Deploy Keys" tab | |
| 94 | + Then the active sub tab should be Deploy Keys | |
| 95 | + And no other sub tabs should be active | |
| 96 | + And the active main tab should be Home | |
| 97 | + | |
| 98 | + # Sub Tabs: Commits | |
| 99 | + | |
| 100 | + Scenario: On Project Commits/Commits | |
| 101 | + Given I visit my project's commits page | |
| 102 | + Then the active sub tab should be Commits | |
| 103 | + And no other sub tabs should be active | |
| 104 | + And the active main tab should be Commits | |
| 105 | + | |
| 106 | + Scenario: On Project Commits/Compare | |
| 107 | + Given I visit my project's commits page | |
| 108 | + And I click the "Compare" tab | |
| 109 | + Then the active sub tab should be Compare | |
| 110 | + And no other sub tabs should be active | |
| 111 | + And the active main tab should be Commits | |
| 112 | + | |
| 113 | + Scenario: On Project Commits/Branches | |
| 114 | + Given I visit my project's commits page | |
| 115 | + And I click the "Branches" tab | |
| 116 | + Then the active sub tab should be Branches | |
| 117 | + And no other sub tabs should be active | |
| 118 | + And the active main tab should be Commits | |
| 119 | + | |
| 120 | + Scenario: On Project Commits/Tags | |
| 121 | + Given I visit my project's commits page | |
| 122 | + And I click the "Tags" tab | |
| 123 | + Then the active sub tab should be Tags | |
| 124 | + And no other sub tabs should be active | |
| 125 | + And the active main tab should be Commits | |
| 126 | + | |
| 127 | + # Sub Tabs: Issues | |
| 128 | + | |
| 129 | + Scenario: On Project Issues/Browse | |
| 130 | + Given I visit my project's issues page | |
| 131 | + Then the active sub tab should be Browse Issues | |
| 132 | + And no other sub tabs should be active | |
| 133 | + And the active main tab should be Issues | |
| 134 | + | |
| 135 | + Scenario: On Project Issues/Milestones | |
| 136 | + Given I visit my project's issues page | |
| 137 | + And I click the "Milestones" tab | |
| 138 | + Then the active sub tab should be Milestones | |
| 139 | + And no other sub tabs should be active | |
| 140 | + And the active main tab should be Issues | |
| 141 | + | |
| 142 | + Scenario: On Project Issues/Labels | |
| 143 | + Given I visit my project's issues page | |
| 144 | + And I click the "Labels" tab | |
| 145 | + Then the active sub tab should be Labels | |
| 146 | + And no other sub tabs should be active | |
| 147 | + And the active main tab should be Issues | ... | ... |
| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | +class AdminActiveTab < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedActiveTab | |
| 5 | + | |
| 6 | + Then 'the active main tab should be Home' do | |
| 7 | + ensure_active_main_tab('Stats') | |
| 8 | + end | |
| 9 | + | |
| 10 | + Then 'the active main tab should be Projects' do | |
| 11 | + ensure_active_main_tab('Projects') | |
| 12 | + end | |
| 13 | + | |
| 14 | + Then 'the active main tab should be Users' do | |
| 15 | + ensure_active_main_tab('Users') | |
| 16 | + end | |
| 17 | + | |
| 18 | + Then 'the active main tab should be Logs' do | |
| 19 | + ensure_active_main_tab('Logs') | |
| 20 | + end | |
| 21 | + | |
| 22 | + Then 'the active main tab should be Hooks' do | |
| 23 | + ensure_active_main_tab('Hooks') | |
| 24 | + end | |
| 25 | + | |
| 26 | + Then 'the active main tab should be Resque' do | |
| 27 | + ensure_active_main_tab('Resque') | |
| 28 | + end | |
| 29 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | +class DashboardActiveTab < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedActiveTab | |
| 5 | + | |
| 6 | + Then 'the active main tab should be Home' do | |
| 7 | + ensure_active_main_tab('Home') | |
| 8 | + end | |
| 9 | + | |
| 10 | + Then 'the active main tab should be Issues' do | |
| 11 | + ensure_active_main_tab('Issues') | |
| 12 | + end | |
| 13 | + | |
| 14 | + Then 'the active main tab should be Merge Requests' do | |
| 15 | + ensure_active_main_tab('Merge Requests') | |
| 16 | + end | |
| 17 | + | |
| 18 | + Then 'the active main tab should be Search' do | |
| 19 | + ensure_active_main_tab('Search') | |
| 20 | + end | |
| 21 | + | |
| 22 | + Then 'the active main tab should be Help' do | |
| 23 | + ensure_active_main_tab('Help') | |
| 24 | + end | |
| 25 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | +class ProfileActiveTab < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedActiveTab | |
| 5 | + | |
| 6 | + Then 'the active main tab should be Home' do | |
| 7 | + ensure_active_main_tab('Profile') | |
| 8 | + end | |
| 9 | + | |
| 10 | + Then 'the active main tab should be Account' do | |
| 11 | + ensure_active_main_tab('Account') | |
| 12 | + end | |
| 13 | + | |
| 14 | + Then 'the active main tab should be SSH Keys' do | |
| 15 | + ensure_active_main_tab('SSH Keys') | |
| 16 | + end | |
| 17 | + | |
| 18 | + Then 'the active main tab should be Design' do | |
| 19 | + ensure_active_main_tab('Design') | |
| 20 | + end | |
| 21 | + | |
| 22 | + Then 'the active main tab should be History' do | |
| 23 | + ensure_active_main_tab('History') | |
| 24 | + end | |
| 25 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,146 @@ |
| 1 | +class ProjectActiveTab < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedProject | |
| 5 | + include SharedActiveTab | |
| 6 | + | |
| 7 | + # Main Tabs | |
| 8 | + | |
| 9 | + Then 'the active main tab should be Home' do | |
| 10 | + ensure_active_main_tab(@project.name) | |
| 11 | + end | |
| 12 | + | |
| 13 | + Then 'the active main tab should be Files' do | |
| 14 | + ensure_active_main_tab('Files') | |
| 15 | + end | |
| 16 | + | |
| 17 | + Then 'the active main tab should be Commits' do | |
| 18 | + ensure_active_main_tab('Commits') | |
| 19 | + end | |
| 20 | + | |
| 21 | + Then 'the active main tab should be Network' do | |
| 22 | + ensure_active_main_tab('Network') | |
| 23 | + end | |
| 24 | + | |
| 25 | + Then 'the active main tab should be Issues' do | |
| 26 | + ensure_active_main_tab('Issues') | |
| 27 | + end | |
| 28 | + | |
| 29 | + Then 'the active main tab should be Merge Requests' do | |
| 30 | + ensure_active_main_tab('Merge Requests') | |
| 31 | + end | |
| 32 | + | |
| 33 | + Then 'the active main tab should be Wall' do | |
| 34 | + ensure_active_main_tab('Wall') | |
| 35 | + end | |
| 36 | + | |
| 37 | + Then 'the active main tab should be Wiki' do | |
| 38 | + ensure_active_main_tab('Wiki') | |
| 39 | + end | |
| 40 | + | |
| 41 | + # Sub Tabs: Home | |
| 42 | + | |
| 43 | + Given 'I click the "Team" tab' do | |
| 44 | + click_link('Team') | |
| 45 | + end | |
| 46 | + | |
| 47 | + Given 'I click the "Attachments" tab' do | |
| 48 | + click_link('Attachments') | |
| 49 | + end | |
| 50 | + | |
| 51 | + Given 'I click the "Snippets" tab' do | |
| 52 | + click_link('Snippets') | |
| 53 | + end | |
| 54 | + | |
| 55 | + Given 'I click the "Edit" tab' do | |
| 56 | + click_link('Edit') | |
| 57 | + end | |
| 58 | + | |
| 59 | + Given 'I click the "Hooks" tab' do | |
| 60 | + click_link('Hooks') | |
| 61 | + end | |
| 62 | + | |
| 63 | + Given 'I click the "Deploy Keys" tab' do | |
| 64 | + click_link('Deploy Keys') | |
| 65 | + end | |
| 66 | + | |
| 67 | + Then 'the active sub tab should be Show' do | |
| 68 | + ensure_active_sub_tab('Show') | |
| 69 | + end | |
| 70 | + | |
| 71 | + Then 'the active sub tab should be Team' do | |
| 72 | + ensure_active_sub_tab('Team') | |
| 73 | + end | |
| 74 | + | |
| 75 | + Then 'the active sub tab should be Attachments' do | |
| 76 | + ensure_active_sub_tab('Attachments') | |
| 77 | + end | |
| 78 | + | |
| 79 | + Then 'the active sub tab should be Snippets' do | |
| 80 | + ensure_active_sub_tab('Snippets') | |
| 81 | + end | |
| 82 | + | |
| 83 | + Then 'the active sub tab should be Edit' do | |
| 84 | + ensure_active_sub_tab('Edit') | |
| 85 | + end | |
| 86 | + | |
| 87 | + Then 'the active sub tab should be Hooks' do | |
| 88 | + ensure_active_sub_tab('Hooks') | |
| 89 | + end | |
| 90 | + | |
| 91 | + Then 'the active sub tab should be Deploy Keys' do | |
| 92 | + ensure_active_sub_tab('Deploy Keys') | |
| 93 | + end | |
| 94 | + | |
| 95 | + # Sub Tabs: Commits | |
| 96 | + | |
| 97 | + Given 'I click the "Compare" tab' do | |
| 98 | + click_link('Compare') | |
| 99 | + end | |
| 100 | + | |
| 101 | + Given 'I click the "Branches" tab' do | |
| 102 | + click_link('Branches') | |
| 103 | + end | |
| 104 | + | |
| 105 | + Given 'I click the "Tags" tab' do | |
| 106 | + click_link('Tags') | |
| 107 | + end | |
| 108 | + | |
| 109 | + Then 'the active sub tab should be Commits' do | |
| 110 | + ensure_active_sub_tab('Commits') | |
| 111 | + end | |
| 112 | + | |
| 113 | + Then 'the active sub tab should be Compare' do | |
| 114 | + ensure_active_sub_tab('Compare') | |
| 115 | + end | |
| 116 | + | |
| 117 | + Then 'the active sub tab should be Branches' do | |
| 118 | + ensure_active_sub_tab('Branches') | |
| 119 | + end | |
| 120 | + | |
| 121 | + Then 'the active sub tab should be Tags' do | |
| 122 | + ensure_active_sub_tab('Tags') | |
| 123 | + end | |
| 124 | + | |
| 125 | + # Sub Tabs: Issues | |
| 126 | + | |
| 127 | + Given 'I click the "Milestones" tab' do | |
| 128 | + click_link('Milestones') | |
| 129 | + end | |
| 130 | + | |
| 131 | + Given 'I click the "Labels" tab' do | |
| 132 | + click_link('Labels') | |
| 133 | + end | |
| 134 | + | |
| 135 | + Then 'the active sub tab should be Browse Issues' do | |
| 136 | + ensure_active_sub_tab('Browse Issues') | |
| 137 | + end | |
| 138 | + | |
| 139 | + Then 'the active sub tab should be Milestones' do | |
| 140 | + ensure_active_sub_tab('Milestones') | |
| 141 | + end | |
| 142 | + | |
| 143 | + Then 'the active sub tab should be Labels' do | |
| 144 | + ensure_active_sub_tab('Labels') | |
| 145 | + end | |
| 146 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,11 @@ |
| 1 | +module SharedActiveTab | |
| 2 | + include Spinach::DSL | |
| 3 | + | |
| 4 | + def ensure_active_main_tab(content) | |
| 5 | + page.find('ul.main_menu li.current').should have_content(content) | |
| 6 | + end | |
| 7 | + | |
| 8 | + And 'no other main tabs should be active' do | |
| 9 | + page.should have_selector('ul.main_menu li.current', count: 1) | |
| 10 | + end | |
| 11 | +end | ... | ... |
features/steps/shared/authentication.rb
features/steps/shared/paths.rb
| 1 | 1 | module SharedPaths |
| 2 | 2 | include Spinach::DSL |
| 3 | 3 | |
| 4 | - And 'I visit dashboard search page' do | |
| 5 | - visit search_path | |
| 4 | + # ---------------------------------------- | |
| 5 | + # Dashboard | |
| 6 | + # ---------------------------------------- | |
| 7 | + | |
| 8 | + Given 'I visit dashboard page' do | |
| 9 | + visit dashboard_path | |
| 10 | + end | |
| 11 | + | |
| 12 | + Given 'I visit dashboard issues page' do | |
| 13 | + visit dashboard_issues_path | |
| 6 | 14 | end |
| 7 | 15 | |
| 8 | - And 'I visit dashboard merge requests page' do | |
| 16 | + Given 'I visit dashboard merge requests page' do | |
| 9 | 17 | visit dashboard_merge_requests_path |
| 10 | 18 | end |
| 11 | 19 | |
| 12 | - And 'I visit dashboard issues page' do | |
| 13 | - visit dashboard_issues_path | |
| 20 | + Given 'I visit dashboard search page' do | |
| 21 | + visit search_path | |
| 14 | 22 | end |
| 15 | 23 | |
| 16 | - When 'I visit dashboard page' do | |
| 17 | - visit dashboard_path | |
| 24 | + Given 'I visit dashboard help page' do | |
| 25 | + visit help_path | |
| 18 | 26 | end |
| 19 | 27 | |
| 28 | + # ---------------------------------------- | |
| 29 | + # Profile | |
| 30 | + # ---------------------------------------- | |
| 31 | + | |
| 20 | 32 | Given 'I visit profile page' do |
| 21 | 33 | visit profile_path |
| 22 | 34 | end |
| ... | ... | @@ -25,10 +37,50 @@ module SharedPaths |
| 25 | 37 | visit profile_account_path |
| 26 | 38 | end |
| 27 | 39 | |
| 40 | + Given 'I visit profile SSH keys page' do | |
| 41 | + visit keys_path | |
| 42 | + end | |
| 43 | + | |
| 44 | + Given 'I visit profile design page' do | |
| 45 | + visit profile_design_path | |
| 46 | + end | |
| 47 | + | |
| 48 | + Given 'I visit profile history page' do | |
| 49 | + visit profile_history_path | |
| 50 | + end | |
| 51 | + | |
| 28 | 52 | Given 'I visit profile token page' do |
| 29 | 53 | visit profile_token_path |
| 30 | 54 | end |
| 31 | 55 | |
| 56 | + # ---------------------------------------- | |
| 57 | + # Admin | |
| 58 | + # ---------------------------------------- | |
| 59 | + | |
| 60 | + Given 'I visit admin page' do | |
| 61 | + visit admin_root_path | |
| 62 | + end | |
| 63 | + | |
| 64 | + Given 'I visit admin projects page' do | |
| 65 | + visit admin_projects_path | |
| 66 | + end | |
| 67 | + | |
| 68 | + Given 'I visit admin users page' do | |
| 69 | + visit admin_users_path | |
| 70 | + end | |
| 71 | + | |
| 72 | + Given 'I visit admin logs page' do | |
| 73 | + visit admin_logs_path | |
| 74 | + end | |
| 75 | + | |
| 76 | + Given 'I visit admin hooks page' do | |
| 77 | + visit admin_hooks_path | |
| 78 | + end | |
| 79 | + | |
| 80 | + Given 'I visit admin Resque page' do | |
| 81 | + visit admin_resque_path | |
| 82 | + end | |
| 83 | + | |
| 32 | 84 | When 'I visit new project page' do |
| 33 | 85 | visit new_project_path |
| 34 | 86 | end | ... | ... |