paths.rb 13.4 KB
Newer Older
Nihad Abbasov's avatar
Nihad Abbasov committed
1 2
module SharedPaths
  include Spinach::DSL
3
  include RepoHelpers
4
  include DashboardHelper
Nihad Abbasov's avatar
Nihad Abbasov committed
5

6
  step 'I visit new project page' do
7 8 9
    visit new_project_path
  end

10 11 12 13 14 15 16 17
  # ----------------------------------------
  # User
  # ----------------------------------------

  step 'I visit user "John Doe" page' do
    visit user_path("john_doe")
  end

randx's avatar
randx committed
18 19 20 21
  # ----------------------------------------
  # Group
  # ----------------------------------------

22 23
  step 'I visit group "Owned" page' do
    visit group_path(Group.find_by(name:"Owned"))
randx's avatar
randx committed
24 25
  end

26 27
  step 'I visit group "Owned" issues page' do
    visit issues_group_path(Group.find_by(name:"Owned"))
randx's avatar
randx committed
28 29
  end

30 31
  step 'I visit group "Owned" merge requests page' do
    visit merge_requests_group_path(Group.find_by(name:"Owned"))
randx's avatar
randx committed
32 33
  end

34 35
  step 'I visit group "Owned" members page' do
    visit members_group_path(Group.find_by(name:"Owned"))
36 37
  end

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
  step 'I visit group "Owned" settings page' do
    visit edit_group_path(Group.find_by(name:"Owned"))
  end

  step 'I visit group "Guest" page' do
    visit group_path(Group.find_by(name:"Guest"))
  end

  step 'I visit group "Guest" issues page' do
    visit issues_group_path(Group.find_by(name:"Guest"))
  end

  step 'I visit group "Guest" merge requests page' do
    visit merge_requests_group_path(Group.find_by(name:"Guest"))
  end

  step 'I visit group "Guest" members page' do
    visit members_group_path(Group.find_by(name:"Guest"))
  end

  step 'I visit group "Guest" settings page' do
    visit edit_group_path(Group.find_by(name:"Guest"))
60 61
  end

62 63 64 65
  # ----------------------------------------
  # Dashboard
  # ----------------------------------------

66
  step 'I visit dashboard page' do
67 68 69
    visit dashboard_path
  end

70
  step 'I visit dashboard projects page' do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
71 72 73
    visit projects_dashboard_path
  end

74
  step 'I visit dashboard issues page' do
75
    visit assigned_issues_dashboard_path
Nihad Abbasov's avatar
Nihad Abbasov committed
76 77
  end

78
  step 'I visit dashboard merge requests page' do
79
    visit assigned_mrs_dashboard_path
Nihad Abbasov's avatar
Nihad Abbasov committed
80 81
  end

82
  step 'I visit dashboard search page' do
83
    visit search_path
Nihad Abbasov's avatar
Nihad Abbasov committed
84 85
  end

86
  step 'I visit dashboard help page' do
87
    visit help_path
Nihad Abbasov's avatar
Nihad Abbasov committed
88 89
  end

90 91 92 93 94 95
  step 'I visit dashboard groups page' do
    visit dashboard_groups_path
  end

  step 'I should be redirected to the dashboard groups page' do
    current_path.should == dashboard_groups_path
96 97 98 99
  end

  step 'I visit dashboard starred projects page' do
    visit starred_dashboard_projects_path
100 101
  end

102 103 104 105
  # ----------------------------------------
  # Profile
  # ----------------------------------------

106
  step 'I visit profile page' do
Nihad Abbasov's avatar
Nihad Abbasov committed
107 108 109
    visit profile_path
  end

110 111 112 113
  step 'I visit profile applications page' do
    visit applications_profile_path
  end

114 115 116 117
  step 'I visit profile password page' do
    visit edit_profile_password_path
  end

118
  step 'I visit profile account page' do
119
    visit profile_account_path
Nihad Abbasov's avatar
Nihad Abbasov committed
120 121
  end

122
  step 'I visit profile SSH keys page' do
123
    visit profile_keys_path
124 125
  end

126
  step 'I visit profile design page' do
127
    visit design_profile_path
128 129
  end

130
  step 'I visit profile history page' do
131
    visit history_profile_path
Nihad Abbasov's avatar
Nihad Abbasov committed
132 133
  end

134 135 136 137
  # ----------------------------------------
  # Admin
  # ----------------------------------------

138
  step 'I visit admin page' do
139 140 141
    visit admin_root_path
  end

142
  step 'I visit admin projects page' do
Vinnie Okada's avatar
Vinnie Okada committed
143
    visit admin_namespaces_projects_path
144 145
  end

146
  step 'I visit admin users page' do
147 148 149
    visit admin_users_path
  end

150
  step 'I visit admin logs page' do
151 152 153
    visit admin_logs_path
  end

154 155 156 157
  step 'I visit admin messages page' do
    visit admin_broadcast_messages_path
  end

158
  step 'I visit admin hooks page' do
159 160 161
    visit admin_hooks_path
  end

162
  step 'I visit admin Resque page' do
163
    visit admin_background_jobs_path
164 165
  end

166
  step 'I visit admin groups page' do
randx's avatar
randx committed
167 168 169
    visit admin_groups_path
  end

170
  step 'I visit admin teams page' do
Andrey Kumanyaev's avatar
Andrey Kumanyaev committed
171 172 173
    visit admin_teams_path
  end

174 175 176 177
  step 'I visit admin settings page' do
    visit admin_application_settings_path
  end

178 179 180 181
  step 'I visit applications page' do
    visit admin_applications_path
  end

182 183 184 185
  # ----------------------------------------
  # Generic Project
  # ----------------------------------------

186
  step "I visit my project's home page" do
Vinnie Okada's avatar
Vinnie Okada committed
187
    visit namespace_project_path(@project.namespace, @project)
188 189
  end

190
  step "I visit my project's settings page" do
Vinnie Okada's avatar
Vinnie Okada committed
191
    visit edit_namespace_project_path(@project.namespace, @project)
192 193
  end

194
  step "I visit my project's files page" do
Vinnie Okada's avatar
Vinnie Okada committed
195
    visit namespace_project_tree_path(@project.namespace, @project, root_ref)
Nihad Abbasov's avatar
Nihad Abbasov committed
196 197
  end

198
  step 'I visit a binary file in the repo' do
Vinnie Okada's avatar
Vinnie Okada committed
199
    visit namespace_project_blob_path(@project.namespace, @project, File.join(
200 201 202
      root_ref, 'files/images/logo-black.png'))
  end

203
  step "I visit my project's commits page" do
Vinnie Okada's avatar
Vinnie Okada committed
204
    visit namespace_project_commits_path(@project.namespace, @project, root_ref, {limit: 5})
205 206
  end

207
  step "I visit my project's commits page for a specific path" do
Vinnie Okada's avatar
Vinnie Okada committed
208
    visit namespace_project_commits_path(@project.namespace, @project, root_ref + "/app/models/project.rb", {limit: 5})
209 210
  end

211
  step 'I visit my project\'s commits stats page' do
Vinnie Okada's avatar
Vinnie Okada committed
212
    visit stats_namespace_project_repository_path(@project.namespace, @project)
randx's avatar
randx committed
213 214
  end

215
  step "I visit my project's network page" do
216 217
    # Stub Graph max_size to speed up test (10 commits vs. 650)
    Network::Graph.stub(max_count: 10)
218

Vinnie Okada's avatar
Vinnie Okada committed
219
    visit namespace_project_network_path(@project.namespace, @project, root_ref)
220 221
  end

222
  step "I visit my project's issues page" do
Vinnie Okada's avatar
Vinnie Okada committed
223
    visit namespace_project_issues_path(@project.namespace, @project)
224 225
  end

226
  step "I visit my project's merge requests page" do
Vinnie Okada's avatar
Vinnie Okada committed
227
    visit namespace_project_merge_requests_path(@project.namespace, @project)
228 229
  end

230
  step "I visit my project's wiki page" do
Vinnie Okada's avatar
Vinnie Okada committed
231
    visit namespace_project_wiki_path(@project.namespace, @project, :home)
232 233
  end

234
  step 'I visit project hooks page' do
Vinnie Okada's avatar
Vinnie Okada committed
235
    visit namespace_project_hooks_path(@project.namespace, @project)
236 237
  end

238
  step 'I visit project deploy keys page' do
Vinnie Okada's avatar
Vinnie Okada committed
239
    visit namespace_project_deploy_keys_path(@project.namespace, @project)
240 241
  end

242 243 244 245
  # ----------------------------------------
  # "Shop" Project
  # ----------------------------------------

246
  step 'I visit project "Shop" page' do
Vinnie Okada's avatar
Vinnie Okada committed
247
    visit namespace_project_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
248 249
  end

250
  step 'I visit project "Forked Shop" merge requests page' do
Vinnie Okada's avatar
Vinnie Okada committed
251
    visit namespace_project_merge_requests_path(@forked_project.namespace, @forked_project)
252 253
  end

254
  step 'I visit edit project "Shop" page' do
Vinnie Okada's avatar
Vinnie Okada committed
255
    visit edit_namespace_project_path(project.namespace, project)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
256 257
  end

258
  step 'I visit project branches page' do
Vinnie Okada's avatar
Vinnie Okada committed
259
    visit namespace_project_branches_path(@project.namespace, @project)
Nihad Abbasov's avatar
Nihad Abbasov committed
260 261
  end

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
262
  step 'I visit project protected branches page' do
Vinnie Okada's avatar
Vinnie Okada committed
263
    visit namespace_project_protected_branches_path(@project.namespace, @project)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
264 265
  end

266
  step 'I visit compare refs page' do
Vinnie Okada's avatar
Vinnie Okada committed
267
    visit namespace_project_compare_index_path(@project.namespace, @project)
Nihad Abbasov's avatar
Nihad Abbasov committed
268 269
  end

270
  step 'I visit project commits page' do
Vinnie Okada's avatar
Vinnie Okada committed
271
    visit namespace_project_commits_path(@project.namespace, @project, root_ref, {limit: 5})
272 273
  end

274
  step 'I visit project commits page for stable branch' do
Vinnie Okada's avatar
Vinnie Okada committed
275
    visit namespace_project_commits_path(@project.namespace, @project, 'stable', {limit: 5})
Nihad Abbasov's avatar
Nihad Abbasov committed
276 277
  end

278
  step 'I visit project source page' do
Vinnie Okada's avatar
Vinnie Okada committed
279
    visit namespace_project_tree_path(@project.namespace, @project, root_ref)
Nihad Abbasov's avatar
Nihad Abbasov committed
280 281
  end

282
  step 'I visit blob file from repo' do
Vinnie Okada's avatar
Vinnie Okada committed
283
    visit namespace_project_blob_path(@project.namespace, @project, File.join(sample_commit.id, sample_blob.path))
Nihad Abbasov's avatar
Nihad Abbasov committed
284 285
  end

286
  step 'I visit ".gitignore" file in repo' do
Vinnie Okada's avatar
Vinnie Okada committed
287
    visit namespace_project_blob_path(@project.namespace, @project, File.join(root_ref, '.gitignore'))
288 289
  end

290
  step 'I am on the new file page' do
Vinnie Okada's avatar
Vinnie Okada committed
291
    current_path.should eq(namespace_project_create_blob_path(@project.namespace, @project, root_ref))
292 293 294
  end

  step 'I am on the ".gitignore" edit file page' do
Vinnie Okada's avatar
Vinnie Okada committed
295 296
    current_path.should eq(namespace_project_edit_blob_path(
      @project.namespace, @project, File.join(root_ref, '.gitignore')))
297 298
  end

299
  step 'I visit project source page for "6d39438"' do
Vinnie Okada's avatar
Vinnie Okada committed
300
    visit namespace_project_tree_path(@project.namespace, @project, "6d39438")
Nihad Abbasov's avatar
Nihad Abbasov committed
301 302
  end

303 304
  step 'I visit project source page for' \
       ' "6d394385cf567f80a8fd85055db1ab4c5295806f"' do
Vinnie Okada's avatar
Vinnie Okada committed
305
    visit namespace_project_tree_path(@project.namespace, @project,
306 307 308
                            '6d394385cf567f80a8fd85055db1ab4c5295806f')
  end

309
  step 'I visit project tags page' do
Vinnie Okada's avatar
Vinnie Okada committed
310
    visit namespace_project_tags_path(@project.namespace, @project)
Nihad Abbasov's avatar
Nihad Abbasov committed
311 312
  end

313
  step 'I visit project commit page' do
Vinnie Okada's avatar
Vinnie Okada committed
314
    visit namespace_project_commit_path(@project.namespace, @project, sample_commit.id)
Nihad Abbasov's avatar
Nihad Abbasov committed
315 316
  end

317
  step 'I visit project "Shop" issues page' do
Vinnie Okada's avatar
Vinnie Okada committed
318
    visit namespace_project_issues_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
319 320
  end

321
  step 'I visit issue page "Release 0.4"' do
skv's avatar
skv committed
322
    issue = Issue.find_by(title: "Release 0.4")
Vinnie Okada's avatar
Vinnie Okada committed
323
    visit namespace_project_issue_path(issue.project.namespace, issue.project, issue)
Nihad Abbasov's avatar
Nihad Abbasov committed
324 325
  end

326 327
  step 'I visit issue page "Tasks-open"' do
    issue = Issue.find_by(title: 'Tasks-open')
Vinnie Okada's avatar
Vinnie Okada committed
328
    visit namespace_project_issue_path(issue.project.namespace, issue.project, issue)
329 330 331 332
  end

  step 'I visit issue page "Tasks-closed"' do
    issue = Issue.find_by(title: 'Tasks-closed')
Vinnie Okada's avatar
Vinnie Okada committed
333
    visit namespace_project_issue_path(issue.project.namespace, issue.project, issue)
334 335
  end

336
  step 'I visit project "Shop" labels page' do
337
    project = Project.find_by(name: 'Shop')
Vinnie Okada's avatar
Vinnie Okada committed
338
    visit namespace_project_labels_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
339 340
  end

341 342
  step 'I visit project "Forum" labels page' do
    project = Project.find_by(name: 'Forum')
Vinnie Okada's avatar
Vinnie Okada committed
343
    visit namespace_project_labels_path(project.namespace, project)
344 345 346 347
  end

  step 'I visit project "Shop" new label page' do
    project = Project.find_by(name: 'Shop')
Vinnie Okada's avatar
Vinnie Okada committed
348
    visit new_namespace_project_label_path(project.namespace, project)
349 350 351 352
  end

  step 'I visit project "Forum" new label page' do
    project = Project.find_by(name: 'Forum')
Vinnie Okada's avatar
Vinnie Okada committed
353
    visit new_namespace_project_label_path(project.namespace, project)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
354 355
  end

356
  step 'I visit merge request page "Bug NS-04"' do
skv's avatar
skv committed
357
    mr = MergeRequest.find_by(title: "Bug NS-04")
Vinnie Okada's avatar
Vinnie Okada committed
358
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
Nihad Abbasov's avatar
Nihad Abbasov committed
359 360
  end

361
  step 'I visit merge request page "Bug NS-05"' do
skv's avatar
skv committed
362
    mr = MergeRequest.find_by(title: "Bug NS-05")
Vinnie Okada's avatar
Vinnie Okada committed
363
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
364 365
  end

366 367
  step 'I visit merge request page "MR-task-open"' do
    mr = MergeRequest.find_by(title: 'MR-task-open')
Vinnie Okada's avatar
Vinnie Okada committed
368
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
369 370 371 372
  end

  step 'I visit merge request page "MR-task-closed"' do
    mr = MergeRequest.find_by(title: 'MR-task-closed')
Vinnie Okada's avatar
Vinnie Okada committed
373
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
374 375
  end

376
  step 'I visit project "Shop" merge requests page' do
Vinnie Okada's avatar
Vinnie Okada committed
377
    visit namespace_project_merge_requests_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
378 379
  end

380
  step 'I visit forked project "Shop" merge requests page' do
Vinnie Okada's avatar
Vinnie Okada committed
381
    visit namespace_project_merge_requests_path(project.namespace, project)
382 383
  end

384
  step 'I visit project "Shop" milestones page' do
Vinnie Okada's avatar
Vinnie Okada committed
385
    visit namespace_project_milestones_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
386 387
  end

388
  step 'I visit project "Shop" team page' do
Vinnie Okada's avatar
Vinnie Okada committed
389
    visit namespace_project_team_index_path(project.namespace, project)
Nihad Abbasov's avatar
Nihad Abbasov committed
390 391
  end

392
  step 'I visit project wiki page' do
Vinnie Okada's avatar
Vinnie Okada committed
393
    visit namespace_project_wiki_path(@project.namespace, @project, :home)
Nihad Abbasov's avatar
Nihad Abbasov committed
394
  end
395

Ciro Santilli's avatar
Ciro Santilli committed
396 397 398 399 400 401
  # ----------------------------------------
  # Visibility Projects
  # ----------------------------------------

  step 'I visit project "Community" page' do
    project = Project.find_by(name: "Community")
Vinnie Okada's avatar
Vinnie Okada committed
402
    visit namespace_project_path(project.namespace, project)
Ciro Santilli's avatar
Ciro Santilli committed
403 404
  end

405 406
  step 'I visit project "Community" source page' do
    project = Project.find_by(name: 'Community')
Vinnie Okada's avatar
Vinnie Okada committed
407
    visit namespace_project_tree_path(project.namespace, project, root_ref)
408 409
  end

Ciro Santilli's avatar
Ciro Santilli committed
410 411
  step 'I visit project "Internal" page' do
    project = Project.find_by(name: "Internal")
Vinnie Okada's avatar
Vinnie Okada committed
412
    visit namespace_project_path(project.namespace, project)
Ciro Santilli's avatar
Ciro Santilli committed
413 414 415 416
  end

  step 'I visit project "Enterprise" page' do
    project = Project.find_by(name: "Enterprise")
Vinnie Okada's avatar
Vinnie Okada committed
417
    visit namespace_project_path(project.namespace, project)
Ciro Santilli's avatar
Ciro Santilli committed
418 419 420 421 422 423 424 425
  end

  # ----------------------------------------
  # Empty Projects
  # ----------------------------------------

  step "I visit empty project page" do
    project = Project.find_by(name: "Empty Public Project")
Vinnie Okada's avatar
Vinnie Okada committed
426
    visit namespace_project_path(project.namespace, project)
Ciro Santilli's avatar
Ciro Santilli committed
427 428
  end

429 430 431 432
  # ----------------------------------------
  # Public Projects
  # ----------------------------------------

433
  step 'I visit the public projects area' do
434
    visit explore_projects_path
435 436
  end

437 438 439 440 441 442 443
   step 'I visit the explore trending projects' do
     visit trending_explore_projects_path
   end

   step 'I visit the explore starred projects' do
     visit starred_explore_projects_path
   end
444 445

  step 'I visit the public groups area' do
446
    visit explore_groups_path
447 448
  end

449 450 451 452
  # ----------------------------------------
  # Snippets
  # ----------------------------------------

453
  step 'I visit project "Shop" snippets page' do
Vinnie Okada's avatar
Vinnie Okada committed
454
    visit namespace_project_snippets_path(project.namespace, project)
455 456
  end

457
  step 'I visit snippets page' do
458 459 460
    visit snippets_path
  end

461
  step 'I visit new snippet page' do
462 463 464
    visit new_snippet_path
  end

465 466 467
  def root_ref
    @project.repository.root_ref
  end
468 469

  def project
470
    Project.find_by!(name: 'Shop')
471
  end
472 473 474 475 476

  # ----------------------------------------
  # Errors
  # ----------------------------------------

477
  step 'page status code should be 404' do
478
    status_code.should == 404
479
  end
Nihad Abbasov's avatar
Nihad Abbasov committed
480
end