Commit b7f1cf9f491f6cefdfc5f651f724331f07cfd6f5

Authored by Dmitriy Zaporozhets
1 parent 42b86b79

Feature tests for deploy keys

features/project/deploy_keys.feature 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +Feature: Project Deploy Keys
  2 + Background:
  3 + Given I sign in as a user
  4 + And I own project "Shop"
  5 +
  6 + Scenario: I should see deploy keys list
  7 + Given project has deploy key
  8 + When I visit project deploy keys page
  9 + Then I should see project deploy keys
  10 +
  11 + Scenario: I add new deploy key
  12 + Given I visit project deploy keys page
  13 + When I click 'New Deploy Key'
  14 + And I submit new deploy key
  15 + Then I should be on deploy keys page
  16 + And I should see newly created deploy key
  17 +
  18 + Scenario: I attach deploy key to project
  19 + Given other project has deploy key
  20 + And I visit project deploy keys page
  21 + When I click attach deploy key
  22 + Then I should be on deploy keys page
  23 + And I should see newly created deploy key
... ...
features/steps/project/deploy_keys.rb 0 → 100644
... ... @@ -0,0 +1,52 @@
  1 +class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps
  2 + include SharedAuthentication
  3 + include SharedProject
  4 + include SharedPaths
  5 +
  6 + step 'project has deploy key' do
  7 + create(:deploy_keys_project, project: @project)
  8 + end
  9 +
  10 + step 'I should see project deploy keys' do
  11 + within '.enabled-keys' do
  12 + page.should have_content deploy_key.title
  13 + end
  14 + end
  15 +
  16 + step 'I click \'New Deploy Key\'' do
  17 + click_link 'New Deploy Key'
  18 + end
  19 +
  20 + step 'I submit new deploy key' do
  21 + fill_in "deploy_key_title", with: "laptop"
  22 + fill_in "deploy_key_key", with: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop"
  23 + click_button "Create"
  24 + end
  25 +
  26 + step 'I should be on deploy keys page' do
  27 + current_path.should == project_deploy_keys_path(@project)
  28 + end
  29 +
  30 + step 'I should see newly created deploy key' do
  31 + within '.enabled-keys' do
  32 + page.should have_content(deploy_key.title)
  33 + end
  34 + end
  35 +
  36 + step 'other project has deploy key' do
  37 + @second_project = create :project, namespace: current_user.namespace
  38 + create(:deploy_keys_project, project: @second_project)
  39 + end
  40 +
  41 + step 'I click attach deploy key' do
  42 + within '.available-keys' do
  43 + click_link 'Enable'
  44 + end
  45 + end
  46 +
  47 + protected
  48 +
  49 + def deploy_key
  50 + @project.deploy_keys.last
  51 + end
  52 +end
... ...
features/steps/shared/paths.rb
1 1 module SharedPaths
2 2 include Spinach::DSL
3 3  
4   - When 'I visit new project page' do
  4 + step 'I visit new project page' do
5 5 visit new_project_path
6 6 end
7 7  
... ... @@ -9,23 +9,23 @@ module SharedPaths
9 9 # Group
10 10 # ----------------------------------------
11 11  
12   - When 'I visit group page' do
  12 + step 'I visit group page' do
13 13 visit group_path(current_group)
14 14 end
15 15  
16   - When 'I visit group issues page' do
  16 + step 'I visit group issues page' do
17 17 visit issues_group_path(current_group)
18 18 end
19 19  
20   - When 'I visit group merge requests page' do
  20 + step 'I visit group merge requests page' do
21 21 visit merge_requests_group_path(current_group)
22 22 end
23 23  
24   - When 'I visit group people page' do
  24 + step 'I visit group people page' do
25 25 visit people_group_path(current_group)
26 26 end
27 27  
28   - When 'I visit group settings page' do
  28 + step 'I visit group settings page' do
29 29 visit edit_group_path(current_group)
30 30 end
31 31  
... ... @@ -33,27 +33,27 @@ module SharedPaths
33 33 # Dashboard
34 34 # ----------------------------------------
35 35  
36   - Given 'I visit dashboard page' do
  36 + step 'I visit dashboard page' do
37 37 visit dashboard_path
38 38 end
39 39  
40   - Given 'I visit dashboard projects page' do
  40 + step 'I visit dashboard projects page' do
41 41 visit projects_dashboard_path
42 42 end
43 43  
44   - Given 'I visit dashboard issues page' do
  44 + step 'I visit dashboard issues page' do
45 45 visit issues_dashboard_path
46 46 end
47 47  
48   - Given 'I visit dashboard merge requests page' do
  48 + step 'I visit dashboard merge requests page' do
49 49 visit merge_requests_dashboard_path
50 50 end
51 51  
52   - Given 'I visit dashboard search page' do
  52 + step 'I visit dashboard search page' do
53 53 visit search_path
54 54 end
55 55  
56   - Given 'I visit dashboard help page' do
  56 + step 'I visit dashboard help page' do
57 57 visit help_path
58 58 end
59 59  
... ... @@ -61,23 +61,23 @@ module SharedPaths
61 61 # Profile
62 62 # ----------------------------------------
63 63  
64   - Given 'I visit profile page' do
  64 + step 'I visit profile page' do
65 65 visit profile_path
66 66 end
67 67  
68   - Given 'I visit profile account page' do
  68 + step 'I visit profile account page' do
69 69 visit account_profile_path
70 70 end
71 71  
72   - Given 'I visit profile SSH keys page' do
  72 + step 'I visit profile SSH keys page' do
73 73 visit keys_path
74 74 end
75 75  
76   - Given 'I visit profile design page' do
  76 + step 'I visit profile design page' do
77 77 visit design_profile_path
78 78 end
79 79  
80   - Given 'I visit profile history page' do
  80 + step 'I visit profile history page' do
81 81 visit history_profile_path
82 82 end
83 83  
... ... @@ -85,35 +85,35 @@ module SharedPaths
85 85 # Admin
86 86 # ----------------------------------------
87 87  
88   - Given 'I visit admin page' do
  88 + step 'I visit admin page' do
89 89 visit admin_root_path
90 90 end
91 91  
92   - Given 'I visit admin projects page' do
  92 + step 'I visit admin projects page' do
93 93 visit admin_projects_path
94 94 end
95 95  
96   - Given 'I visit admin users page' do
  96 + step 'I visit admin users page' do
97 97 visit admin_users_path
98 98 end
99 99  
100   - Given 'I visit admin logs page' do
  100 + step 'I visit admin logs page' do
101 101 visit admin_logs_path
102 102 end
103 103  
104   - Given 'I visit admin hooks page' do
  104 + step 'I visit admin hooks page' do
105 105 visit admin_hooks_path
106 106 end
107 107  
108   - Given 'I visit admin Resque page' do
  108 + step 'I visit admin Resque page' do
109 109 visit admin_resque_path
110 110 end
111 111  
112   - And 'I visit admin groups page' do
  112 + step 'I visit admin groups page' do
113 113 visit admin_groups_path
114 114 end
115 115  
116   - When 'I visit admin teams page' do
  116 + step 'I visit admin teams page' do
117 117 visit admin_teams_path
118 118 end
119 119  
... ... @@ -121,145 +121,149 @@ module SharedPaths
121 121 # Generic Project
122 122 # ----------------------------------------
123 123  
124   - Given "I visit my project's home page" do
  124 + step "I visit my project's home page" do
125 125 visit project_path(@project)
126 126 end
127 127  
128   - Given "I visit my project's settings page" do
  128 + step "I visit my project's settings page" do
129 129 visit edit_project_path(@project)
130 130 end
131 131  
132   - Given "I visit my project's files page" do
  132 + step "I visit my project's files page" do
133 133 visit project_tree_path(@project, root_ref)
134 134 end
135 135  
136   - Given "I visit my project's commits page" do
  136 + step "I visit my project's commits page" do
137 137 visit project_commits_path(@project, root_ref, {limit: 5})
138 138 end
139 139  
140   - Given "I visit my project's commits page for a specific path" do
  140 + step "I visit my project's commits page for a specific path" do
141 141 visit project_commits_path(@project, root_ref + "/app/models/project.rb", {limit: 5})
142 142 end
143 143  
144   - Given 'I visit my projects commits stats page' do
  144 + step 'I visit my projects commits stats page' do
145 145 visit stats_project_repository_path(@project)
146 146 end
147 147  
148   - Given "I visit my project's network page" do
  148 + step "I visit my project's network page" do
149 149 # Stub Graph max_size to speed up test (10 commits vs. 650)
150 150 Network::Graph.stub(max_count: 10)
151 151  
152 152 visit project_graph_path(@project, root_ref)
153 153 end
154 154  
155   - Given "I visit my project's issues page" do
  155 + step "I visit my project's issues page" do
156 156 visit project_issues_path(@project)
157 157 end
158 158  
159   - Given "I visit my project's merge requests page" do
  159 + step "I visit my project's merge requests page" do
160 160 visit project_merge_requests_path(@project)
161 161 end
162 162  
163   - Given "I visit my project's wall page" do
  163 + step "I visit my project's wall page" do
164 164 visit project_wall_path(@project)
165 165 end
166 166  
167   - Given "I visit my project's wiki page" do
  167 + step "I visit my project's wiki page" do
168 168 visit project_wiki_path(@project, :home)
169 169 end
170 170  
171   - When 'I visit project hooks page' do
  171 + step 'I visit project hooks page' do
172 172 visit project_hooks_path(@project)
173 173 end
174 174  
  175 + step 'I visit project deploy keys page' do
  176 + visit project_deploy_keys_path(@project)
  177 + end
  178 +
175 179 # ----------------------------------------
176 180 # "Shop" Project
177 181 # ----------------------------------------
178 182  
179   - And 'I visit project "Shop" page' do
  183 + step 'I visit project "Shop" page' do
180 184 visit project_path(project)
181 185 end
182 186  
183   - When 'I visit edit project "Shop" page' do
  187 + step 'I visit edit project "Shop" page' do
184 188 visit edit_project_path(project)
185 189 end
186 190  
187   - Given 'I visit project branches page' do
  191 + step 'I visit project branches page' do
188 192 visit branches_project_repository_path(@project)
189 193 end
190 194  
191   - Given 'I visit compare refs page' do
  195 + step 'I visit compare refs page' do
192 196 visit project_compare_index_path(@project)
193 197 end
194 198  
195   - Given 'I visit project commits page' do
  199 + step 'I visit project commits page' do
196 200 visit project_commits_path(@project, root_ref, {limit: 5})
197 201 end
198 202  
199   - Given 'I visit project commits page for stable branch' do
  203 + step 'I visit project commits page for stable branch' do
200 204 visit project_commits_path(@project, 'stable', {limit: 5})
201 205 end
202 206  
203   - Given 'I visit project source page' do
  207 + step 'I visit project source page' do
204 208 visit project_tree_path(@project, root_ref)
205 209 end
206 210  
207   - Given 'I visit blob file from repo' do
  211 + step 'I visit blob file from repo' do
208 212 visit project_blob_path(@project, File.join(ValidCommit::ID, ValidCommit::BLOB_FILE_PATH))
209 213 end
210 214  
211   - Given 'I visit project source page for "8470d70"' do
  215 + step 'I visit project source page for "8470d70"' do
212 216 visit project_tree_path(@project, "8470d70")
213 217 end
214 218  
215   - Given 'I visit project tags page' do
  219 + step 'I visit project tags page' do
216 220 visit tags_project_repository_path(@project)
217 221 end
218 222  
219   - Given 'I visit project commit page' do
  223 + step 'I visit project commit page' do
220 224 visit project_commit_path(@project, ValidCommit::ID)
221 225 end
222 226  
223   - And 'I visit project "Shop" issues page' do
  227 + step 'I visit project "Shop" issues page' do
224 228 visit project_issues_path(project)
225 229 end
226 230  
227   - Given 'I visit issue page "Release 0.4"' do
  231 + step 'I visit issue page "Release 0.4"' do
228 232 issue = Issue.find_by_title("Release 0.4")
229 233 visit project_issue_path(issue.project, issue)
230 234 end
231 235  
232   - Given 'I visit project "Shop" labels page' do
  236 + step 'I visit project "Shop" labels page' do
233 237 visit project_labels_path(project)
234 238 end
235 239  
236   - Given 'I visit merge request page "Bug NS-04"' do
  240 + step 'I visit merge request page "Bug NS-04"' do
237 241 mr = MergeRequest.find_by_title("Bug NS-04")
238 242 visit project_merge_request_path(mr.project, mr)
239 243 end
240 244  
241   - Given 'I visit merge request page "Bug NS-05"' do
  245 + step 'I visit merge request page "Bug NS-05"' do
242 246 mr = MergeRequest.find_by_title("Bug NS-05")
243 247 visit project_merge_request_path(mr.project, mr)
244 248 end
245 249  
246   - And 'I visit project "Shop" merge requests page' do
  250 + step 'I visit project "Shop" merge requests page' do
247 251 visit project_merge_requests_path(project)
248 252 end
249 253  
250   - Given 'I visit project "Shop" milestones page' do
  254 + step 'I visit project "Shop" milestones page' do
251 255 visit project_milestones_path(project)
252 256 end
253 257  
254   - Then 'I visit project "Shop" team page' do
  258 + step 'I visit project "Shop" team page' do
255 259 visit project_team_index_path(project)
256 260 end
257 261  
258   - Then 'I visit project "Shop" wall page' do
  262 + step 'I visit project "Shop" wall page' do
259 263 visit project_wall_path(project)
260 264 end
261 265  
262   - Given 'I visit project wiki page' do
  266 + step 'I visit project wiki page' do
263 267 visit project_wiki_path(@project, :home)
264 268 end
265 269  
... ... @@ -267,7 +271,7 @@ module SharedPaths
267 271 # Public Projects
268 272 # ----------------------------------------
269 273  
270   - Given 'I visit the public projects area' do
  274 + step 'I visit the public projects area' do
271 275 visit public_root_path
272 276 end
273 277  
... ...