paths.rb 14.2 KB
Newer Older
N
Nihad Abbasov 已提交
1 2
module SharedPaths
  include Spinach::DSL
3
  include RepoHelpers
4
  include DashboardHelper
N
Nihad Abbasov 已提交
5

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

10 11 12 13
  step 'I visit login page' do
    visit new_user_session_path
  end

14 15 16 17 18 19 20 21
  # ----------------------------------------
  # User
  # ----------------------------------------

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

R
randx 已提交
22 23 24 25
  # ----------------------------------------
  # Group
  # ----------------------------------------

26
  step 'I visit group "Owned" page' do
27
    visit group_path(Group.find_by(name: "Owned"))
R
randx 已提交
28 29
  end

30
  step 'I visit group "Owned" issues page' do
31
    visit issues_group_path(Group.find_by(name: "Owned"))
R
randx 已提交
32 33
  end

34
  step 'I visit group "Owned" merge requests page' do
35
    visit merge_requests_group_path(Group.find_by(name: "Owned"))
R
randx 已提交
36 37
  end

38 39 40 41
  step 'I visit group "Owned" milestones page' do
    visit group_milestones_path(Group.find_by(name: "Owned"))
  end

42
  step 'I visit group "Owned" members page' do
43
    visit group_group_members_path(Group.find_by(name: "Owned"))
A
Andrey Kumanyaev 已提交
44 45
  end

46
  step 'I visit group "Owned" settings page' do
47
    visit edit_group_path(Group.find_by(name: "Owned"))
48 49
  end

A
Artem Sidorenko 已提交
50 51 52 53
  step 'I visit group "Owned" projects page' do
    visit projects_group_path(Group.find_by(name: "Owned"))
  end

54
  step 'I visit group "Guest" page' do
55
    visit group_path(Group.find_by(name: "Guest"))
56 57 58
  end

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

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

  step 'I visit group "Guest" members page' do
67
    visit group_group_members_path(Group.find_by(name: "Guest"))
68 69 70
  end

  step 'I visit group "Guest" settings page' do
71
    visit edit_group_path(Group.find_by(name: "Guest"))
72 73
  end

74 75 76 77
  # ----------------------------------------
  # Dashboard
  # ----------------------------------------

78
  step 'I visit dashboard page' do
D
Douwe Maan 已提交
79
    visit dashboard_projects_path
80 81
  end

82 83 84 85
  step 'I visit dashboard activity page' do
    visit activity_dashboard_path
  end

86
  step 'I visit dashboard projects page' do
D
Dmitriy Zaporozhets 已提交
87 88 89
    visit projects_dashboard_path
  end

90
  step 'I visit dashboard issues page' do
91
    visit assigned_issues_dashboard_path
N
Nihad Abbasov 已提交
92 93
  end

94
  step 'I visit dashboard merge requests page' do
95
    visit assigned_mrs_dashboard_path
N
Nihad Abbasov 已提交
96 97
  end

98
  step 'I visit dashboard search page' do
99
    visit search_path
N
Nihad Abbasov 已提交
100 101
  end

102 103 104 105
  step 'I visit dashboard help page' do
    visit help_path
  end

106 107 108 109
  step 'I visit dashboard groups page' do
    visit dashboard_groups_path
  end

110 111
  step 'I visit dashboard todos page' do
    visit dashboard_todos_path
112 113
  end

114
  step 'I should be redirected to the dashboard groups page' do
115
    expect(current_path).to eq dashboard_groups_path
116 117 118 119
  end

  step 'I visit dashboard starred projects page' do
    visit starred_dashboard_projects_path
120 121
  end

122 123 124 125
  # ----------------------------------------
  # Profile
  # ----------------------------------------

126
  step 'I visit profile page' do
N
Nihad Abbasov 已提交
127 128 129
    visit profile_path
  end

130 131 132 133
  step 'I visit profile applications page' do
    visit applications_profile_path
  end

D
Dmitriy Zaporozhets 已提交
134 135 136 137
  step 'I visit profile password page' do
    visit edit_profile_password_path
  end

138
  step 'I visit profile account page' do
D
Dmitriy Zaporozhets 已提交
139
    visit profile_account_path
N
Nihad Abbasov 已提交
140 141
  end

142
  step 'I visit profile SSH keys page' do
143
    visit profile_keys_path
144 145
  end

146 147
  step 'I visit profile preferences page' do
    visit profile_preferences_path
148 149
  end

V
Valery Sizov 已提交
150 151
  step 'I visit Audit Log page' do
    visit audit_log_profile_path
N
Nihad Abbasov 已提交
152 153
  end

154 155 156 157
  # ----------------------------------------
  # Admin
  # ----------------------------------------

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

162 163 164 165
  step 'I visit abuse reports page' do
    visit admin_abuse_reports_path
  end

166
  step 'I visit admin projects page' do
V
Vinnie Okada 已提交
167
    visit admin_namespaces_projects_path
168 169
  end

170
  step 'I visit admin users page' do
171 172 173
    visit admin_users_path
  end

174
  step 'I visit admin logs page' do
175 176 177
    visit admin_logs_path
  end

178 179 180 181
  step 'I visit admin messages page' do
    visit admin_broadcast_messages_path
  end

182
  step 'I visit admin hooks page' do
183 184 185
    visit admin_hooks_path
  end

186
  step 'I visit admin Resque page' do
187
    visit admin_background_jobs_path
188 189
  end

190
  step 'I visit admin groups page' do
R
randx 已提交
191 192 193
    visit admin_groups_path
  end

194 195 196 197
  step 'I visit admin appearance page' do
    visit admin_appearances_path
  end

198
  step 'I visit admin teams page' do
A
Andrey Kumanyaev 已提交
199 200 201
    visit admin_teams_path
  end

202 203 204 205
  step 'I visit admin settings page' do
    visit admin_application_settings_path
  end

206 207 208 209
  step 'I visit spam logs page' do
    visit admin_spam_logs_path
  end

V
Valery Sizov 已提交
210 211 212 213
  step 'I visit applications page' do
    visit admin_applications_path
  end

214 215 216 217
  # ----------------------------------------
  # Generic Project
  # ----------------------------------------

218
  step "I visit my project's home page" do
V
Vinnie Okada 已提交
219
    visit namespace_project_path(@project.namespace, @project)
220 221
  end

222
  step "I visit my project's settings page" do
V
Vinnie Okada 已提交
223
    visit edit_namespace_project_path(@project.namespace, @project)
224 225
  end

226
  step "I visit my project's files page" do
V
Vinnie Okada 已提交
227
    visit namespace_project_tree_path(@project.namespace, @project, root_ref)
N
Nihad Abbasov 已提交
228 229
  end

230
  step 'I visit a binary file in the repo' do
G
Gabriel Mazetto 已提交
231 232
    visit namespace_project_blob_path(@project.namespace, @project,
      File.join(root_ref, 'files/images/logo-black.png'))
233 234
  end

235
  step "I visit my project's commits page" do
236
    visit namespace_project_commits_path(@project.namespace, @project, root_ref, { limit: 5 })
237 238
  end

239
  step "I visit my project's commits page for a specific path" do
240
    visit namespace_project_commits_path(@project.namespace, @project, root_ref + "/app/models/project.rb", { limit: 5 })
241 242
  end

243
  step 'I visit my project\'s commits stats page' do
V
Vinnie Okada 已提交
244
    visit stats_namespace_project_repository_path(@project.namespace, @project)
R
randx 已提交
245 246
  end

247
  step "I visit my project's network page" do
248 249
    # Stub Graph max_size to speed up test (10 commits vs. 650)
    Network::Graph.stub(max_count: 10)
250

V
Vinnie Okada 已提交
251
    visit namespace_project_network_path(@project.namespace, @project, root_ref)
252 253
  end

254
  step "I visit my project's issues page" do
V
Vinnie Okada 已提交
255
    visit namespace_project_issues_path(@project.namespace, @project)
256 257
  end

258
  step "I visit my project's merge requests page" do
V
Vinnie Okada 已提交
259
    visit namespace_project_merge_requests_path(@project.namespace, @project)
260 261
  end

262 263 264 265
  step "I visit my project's members page" do
    visit namespace_project_project_members_path(@project.namespace, @project)
  end

266
  step "I visit my project's wiki page" do
V
Vinnie Okada 已提交
267
    visit namespace_project_wiki_path(@project.namespace, @project, :home)
268 269
  end

270
  step 'I visit project hooks page' do
V
Vinnie Okada 已提交
271
    visit namespace_project_hooks_path(@project.namespace, @project)
272 273
  end

274
  step 'I visit project deploy keys page' do
V
Vinnie Okada 已提交
275
    visit namespace_project_deploy_keys_path(@project.namespace, @project)
276 277
  end

278 279 280 281
  step 'I visit project find file page' do
    visit namespace_project_find_file_path(@project.namespace, @project, root_ref)
  end

282 283 284 285
  # ----------------------------------------
  # "Shop" Project
  # ----------------------------------------

286
  step 'I visit project "Shop" page' do
V
Vinnie Okada 已提交
287
    visit namespace_project_path(project.namespace, project)
N
Nihad Abbasov 已提交
288 289
  end

D
Dmitriy Zaporozhets 已提交
290 291 292 293
  step 'I visit project "Shop" activity page' do
    visit activity_namespace_project_path(project.namespace, project)
  end

I
Izaak Alpert 已提交
294
  step 'I visit project "Forked Shop" merge requests page' do
V
Vinnie Okada 已提交
295
    visit namespace_project_merge_requests_path(@forked_project.namespace, @forked_project)
I
Izaak Alpert 已提交
296 297
  end

298
  step 'I visit edit project "Shop" page' do
V
Vinnie Okada 已提交
299
    visit edit_namespace_project_path(project.namespace, project)
D
Dmitriy Zaporozhets 已提交
300 301
  end

302
  step 'I visit project branches page' do
V
Vinnie Okada 已提交
303
    visit namespace_project_branches_path(@project.namespace, @project)
N
Nihad Abbasov 已提交
304 305
  end

D
Dmitriy Zaporozhets 已提交
306
  step 'I visit project protected branches page' do
V
Vinnie Okada 已提交
307
    visit namespace_project_protected_branches_path(@project.namespace, @project)
D
Dmitriy Zaporozhets 已提交
308 309
  end

310
  step 'I visit compare refs page' do
V
Vinnie Okada 已提交
311
    visit namespace_project_compare_index_path(@project.namespace, @project)
N
Nihad Abbasov 已提交
312 313
  end

314
  step 'I visit project commits page' do
315
    visit namespace_project_commits_path(@project.namespace, @project, root_ref, { limit: 5 })
316 317
  end

318
  step 'I visit project commits page for stable branch' do
319
    visit namespace_project_commits_path(@project.namespace, @project, 'stable', { limit: 5 })
N
Nihad Abbasov 已提交
320 321
  end

322
  step 'I visit project source page' do
V
Vinnie Okada 已提交
323
    visit namespace_project_tree_path(@project.namespace, @project, root_ref)
N
Nihad Abbasov 已提交
324 325
  end

326
  step 'I visit blob file from repo' do
V
Vinnie Okada 已提交
327
    visit namespace_project_blob_path(@project.namespace, @project, File.join(sample_commit.id, sample_blob.path))
N
Nihad Abbasov 已提交
328 329
  end

330
  step 'I visit ".gitignore" file in repo' do
V
Vinnie Okada 已提交
331
    visit namespace_project_blob_path(@project.namespace, @project, File.join(root_ref, '.gitignore'))
D
Dmitriy Zaporozhets 已提交
332 333
  end

334
  step 'I am on the new file page' do
335
    expect(current_path).to eq(namespace_project_create_blob_path(@project.namespace, @project, root_ref))
336 337 338
  end

  step 'I am on the ".gitignore" edit file page' do
G
Gabriel Mazetto 已提交
339 340
    expect(current_path).to eq(
      namespace_project_edit_blob_path(@project.namespace, @project, File.join(root_ref, '.gitignore')))
341 342
  end

343
  step 'I visit project source page for "6d39438"' do
V
Vinnie Okada 已提交
344
    visit namespace_project_tree_path(@project.namespace, @project, "6d39438")
N
Nihad Abbasov 已提交
345 346
  end

347 348
  step 'I visit project source page for' \
       ' "6d394385cf567f80a8fd85055db1ab4c5295806f"' do
V
Vinnie Okada 已提交
349
    visit namespace_project_tree_path(@project.namespace, @project,
350 351 352
                            '6d394385cf567f80a8fd85055db1ab4c5295806f')
  end

353
  step 'I visit project tags page' do
V
Vinnie Okada 已提交
354
    visit namespace_project_tags_path(@project.namespace, @project)
N
Nihad Abbasov 已提交
355 356
  end

357
  step 'I visit project commit page' do
V
Vinnie Okada 已提交
358
    visit namespace_project_commit_path(@project.namespace, @project, sample_commit.id)
N
Nihad Abbasov 已提交
359 360
  end

361
  step 'I visit project "Shop" issues page' do
V
Vinnie Okada 已提交
362
    visit namespace_project_issues_path(project.namespace, project)
N
Nihad Abbasov 已提交
363 364
  end

365
  step 'I visit issue page "Release 0.4"' do
S
skv 已提交
366
    issue = Issue.find_by(title: "Release 0.4")
V
Vinnie Okada 已提交
367
    visit namespace_project_issue_path(issue.project.namespace, issue.project, issue)
N
Nihad Abbasov 已提交
368 369
  end

370
  step 'I visit project "Shop" labels page' do
371
    project = Project.find_by(name: 'Shop')
V
Vinnie Okada 已提交
372
    visit namespace_project_labels_path(project.namespace, project)
N
Nihad Abbasov 已提交
373 374
  end

375 376
  step 'I visit project "Forum" labels page' do
    project = Project.find_by(name: 'Forum')
V
Vinnie Okada 已提交
377
    visit namespace_project_labels_path(project.namespace, project)
378 379 380 381
  end

  step 'I visit project "Shop" new label page' do
    project = Project.find_by(name: 'Shop')
V
Vinnie Okada 已提交
382
    visit new_namespace_project_label_path(project.namespace, project)
383 384 385 386
  end

  step 'I visit project "Forum" new label page' do
    project = Project.find_by(name: 'Forum')
V
Vinnie Okada 已提交
387
    visit new_namespace_project_label_path(project.namespace, project)
D
Dmitriy Zaporozhets 已提交
388 389
  end

390
  step 'I visit merge request page "Bug NS-04"' do
391
    visit merge_request_path("Bug NS-04")
N
Nihad Abbasov 已提交
392 393
  end

394
  step 'I visit merge request page "Bug NS-05"' do
395
    visit merge_request_path("Bug NS-05")
R
Riyad Preukschas 已提交
396 397
  end

398 399 400 401 402 403 404 405
  step 'I visit merge request page "Bug NS-07"' do
    visit merge_request_path("Bug NS-07")
  end

  step 'I visit merge request page "Bug NS-08"' do
    visit merge_request_path("Bug NS-08")
  end

406 407 408 409 410
  step 'I visit merge request page "Bug CO-01"' do
    mr = MergeRequest.find_by(title: "Bug CO-01")
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
  end

411
  step 'I visit project "Shop" merge requests page' do
V
Vinnie Okada 已提交
412
    visit namespace_project_merge_requests_path(project.namespace, project)
N
Nihad Abbasov 已提交
413 414
  end

I
Izaak Alpert 已提交
415
  step 'I visit forked project "Shop" merge requests page' do
V
Vinnie Okada 已提交
416
    visit namespace_project_merge_requests_path(project.namespace, project)
I
Izaak Alpert 已提交
417 418
  end

419
  step 'I visit project "Shop" milestones page' do
V
Vinnie Okada 已提交
420
    visit namespace_project_milestones_path(project.namespace, project)
N
Nihad Abbasov 已提交
421 422
  end

423
  step 'I visit project "Shop" team page' do
424
    visit namespace_project_project_members_path(project.namespace, project)
N
Nihad Abbasov 已提交
425 426
  end

427
  step 'I visit project wiki page' do
V
Vinnie Okada 已提交
428
    visit namespace_project_wiki_path(@project.namespace, @project, :home)
N
Nihad Abbasov 已提交
429
  end
430

C
Ciro Santilli 已提交
431 432 433 434 435 436
  # ----------------------------------------
  # Visibility Projects
  # ----------------------------------------

  step 'I visit project "Community" page' do
    project = Project.find_by(name: "Community")
V
Vinnie Okada 已提交
437
    visit namespace_project_path(project.namespace, project)
C
Ciro Santilli 已提交
438 439
  end

440 441
  step 'I visit project "Community" source page' do
    project = Project.find_by(name: 'Community')
V
Vinnie Okada 已提交
442
    visit namespace_project_tree_path(project.namespace, project, root_ref)
443 444
  end

C
Ciro Santilli 已提交
445 446
  step 'I visit project "Internal" page' do
    project = Project.find_by(name: "Internal")
V
Vinnie Okada 已提交
447
    visit namespace_project_path(project.namespace, project)
C
Ciro Santilli 已提交
448 449 450 451
  end

  step 'I visit project "Enterprise" page' do
    project = Project.find_by(name: "Enterprise")
V
Vinnie Okada 已提交
452
    visit namespace_project_path(project.namespace, project)
C
Ciro Santilli 已提交
453 454 455 456 457 458 459 460
  end

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

  step "I visit empty project page" do
    project = Project.find_by(name: "Empty Public Project")
V
Vinnie Okada 已提交
461
    visit namespace_project_path(project.namespace, project)
C
Ciro Santilli 已提交
462 463
  end

464 465 466 467
  step "I should not see command line instructions" do
    expect(page).not_to have_css('.empty_wrapper')
  end

S
Stephen Lottermoser 已提交
468 469 470 471
  # ----------------------------------------
  # Public Projects
  # ----------------------------------------

472
  step 'I visit the public projects area' do
473
    visit explore_projects_path
S
Stephen Lottermoser 已提交
474 475
  end

476 477 478
  step 'I visit the explore trending projects' do
    visit trending_explore_projects_path
  end
479

480 481 482
  step 'I visit the explore starred projects' do
    visit starred_explore_projects_path
  end
483 484

  step 'I visit the public groups area' do
485
    visit explore_groups_path
486 487
  end

488 489 490 491
  # ----------------------------------------
  # Snippets
  # ----------------------------------------

492
  step 'I visit project "Shop" snippets page' do
V
Vinnie Okada 已提交
493
    visit namespace_project_snippets_path(project.namespace, project)
494 495
  end

496
  step 'I visit snippets page' do
D
Douwe Maan 已提交
497
    visit explore_snippets_path
A
Andrew8xx8 已提交
498 499
  end

500
  step 'I visit new snippet page' do
A
Andrew8xx8 已提交
501 502 503
    visit new_snippet_path
  end

504 505 506
  def root_ref
    @project.repository.root_ref
  end
507 508

  def project
C
Ciro Santilli 已提交
509
    Project.find_by!(name: 'Shop')
510
  end
511

512 513 514 515 516
  def merge_request_path(title)
    mr = MergeRequest.find_by(title: title)
    namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
  end

517 518 519 520
  # ----------------------------------------
  # Errors
  # ----------------------------------------

521
  step 'page status code should be 404' do
522
    expect(status_code).to eq 404
523
  end
N
Nihad Abbasov 已提交
524
end