PageRenderTime 29ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/spec/routing/import_routing_spec.rb

https://gitlab.com/Stretch96/gitlab-ce
Ruby | 176 lines | 95 code | 24 blank | 57 comment | 0 complexity | f8dc9ae11b8e0fda13ee32a978b921ba MD5 | raw file
  1. require 'spec_helper'
  2. # Shared examples for a resource inside a Project
  3. #
  4. # By default it tests all the default REST actions: index, create, new, edit,
  5. # show, update, and destroy. You can remove actions by customizing the
  6. # `actions` variable.
  7. #
  8. # It also expects a `controller` variable to be available which defines both
  9. # the path to the resource as well as the controller name.
  10. #
  11. # Examples
  12. #
  13. # # Default behavior
  14. # it_behaves_like 'RESTful project resources' do
  15. # let(:controller) { 'issues' }
  16. # end
  17. #
  18. # # Customizing actions
  19. # it_behaves_like 'RESTful project resources' do
  20. # let(:actions) { [:index] }
  21. # let(:controller) { 'issues' }
  22. # end
  23. shared_examples 'importer routing' do
  24. let(:except_actions) { [] }
  25. let(:is_realtime) { false }
  26. before do
  27. except_actions.push(is_realtime ? :jobs : :realtime_changes)
  28. end
  29. it 'to #create' do
  30. expect(post("/import/#{provider}")).to route_to("import/#{provider}#create") unless except_actions.include?(:create)
  31. end
  32. it 'to #new' do
  33. expect(get("/import/#{provider}/new")).to route_to("import/#{provider}#new") unless except_actions.include?(:new)
  34. end
  35. it 'to #status' do
  36. expect(get("/import/#{provider}/status")).to route_to("import/#{provider}#status") unless except_actions.include?(:status)
  37. end
  38. it 'to #callback' do
  39. expect(get("/import/#{provider}/callback")).to route_to("import/#{provider}#callback") unless except_actions.include?(:callback)
  40. end
  41. it 'to #jobs' do
  42. expect(get("/import/#{provider}/jobs")).to route_to("import/#{provider}#jobs") unless except_actions.include?(:jobs)
  43. end
  44. it 'to #realtime_changes' do
  45. expect(get("/import/#{provider}/realtime_changes")).to route_to("import/#{provider}#realtime_changes") unless except_actions.include?(:realtime_changes)
  46. end
  47. end
  48. # personal_access_token_import_github POST /import/github/personal_access_token(.:format) import/github#personal_access_token
  49. # status_import_github GET /import/github/status(.:format) import/github#status
  50. # callback_import_github GET /import/github/callback(.:format) import/github#callback
  51. # realtime_changes_import_github GET /import/github/realtime_changes(.:format) import/github#jobs
  52. # import_github POST /import/github(.:format) import/github#create
  53. # new_import_github GET /import/github/new(.:format) import/github#new
  54. describe Import::GithubController, 'routing' do
  55. it_behaves_like 'importer routing' do
  56. let(:provider) { 'github' }
  57. let(:is_realtime) { true }
  58. end
  59. it 'to #personal_access_token' do
  60. expect(post('/import/github/personal_access_token')).to route_to('import/github#personal_access_token')
  61. end
  62. end
  63. # personal_access_token_import_gitea POST /import/gitea/personal_access_token(.:format) import/gitea#personal_access_token
  64. # status_import_gitea GET /import/gitea/status(.:format) import/gitea#status
  65. # realtime_changes_import_gitea GET /import/gitea/realtime_changes(.:format) import/gitea#jobs
  66. # import_gitea POST /import/gitea(.:format) import/gitea#create
  67. # new_import_gitea GET /import/gitea/new(.:format) import/gitea#new
  68. describe Import::GiteaController, 'routing' do
  69. it_behaves_like 'importer routing' do
  70. let(:except_actions) { [:callback] }
  71. let(:provider) { 'gitea' }
  72. let(:is_realtime) { true }
  73. end
  74. it 'to #personal_access_token' do
  75. expect(post('/import/gitea/personal_access_token')).to route_to('import/gitea#personal_access_token')
  76. end
  77. end
  78. # status_import_gitlab GET /import/gitlab/status(.:format) import/gitlab#status
  79. # callback_import_gitlab GET /import/gitlab/callback(.:format) import/gitlab#callback
  80. # jobs_import_gitlab GET /import/gitlab/jobs(.:format) import/gitlab#jobs
  81. # import_gitlab POST /import/gitlab(.:format) import/gitlab#create
  82. describe Import::GitlabController, 'routing' do
  83. it_behaves_like 'importer routing' do
  84. let(:except_actions) { [:new] }
  85. let(:provider) { 'gitlab' }
  86. end
  87. end
  88. # status_import_bitbucket GET /import/bitbucket/status(.:format) import/bitbucket#status
  89. # callback_import_bitbucket GET /import/bitbucket/callback(.:format) import/bitbucket#callback
  90. # jobs_import_bitbucket GET /import/bitbucket/jobs(.:format) import/bitbucket#jobs
  91. # import_bitbucket POST /import/bitbucket(.:format) import/bitbucket#create
  92. describe Import::BitbucketController, 'routing' do
  93. it_behaves_like 'importer routing' do
  94. let(:except_actions) { [:new] }
  95. let(:provider) { 'bitbucket' }
  96. end
  97. end
  98. # status_import_google_code GET /import/google_code/status(.:format) import/google_code#status
  99. # callback_import_google_code POST /import/google_code/callback(.:format) import/google_code#callback
  100. # jobs_import_google_code GET /import/google_code/jobs(.:format) import/google_code#jobs
  101. # new_user_map_import_google_code GET /import/google_code/user_map(.:format) import/google_code#new_user_map
  102. # create_user_map_import_google_code POST /import/google_code/user_map(.:format) import/google_code#create_user_map
  103. # import_google_code POST /import/google_code(.:format) import/google_code#create
  104. # new_import_google_code GET /import/google_code/new(.:format) import/google_code#new
  105. describe Import::GoogleCodeController, 'routing' do
  106. it_behaves_like 'importer routing' do
  107. let(:except_actions) { [:callback] }
  108. let(:provider) { 'google_code' }
  109. end
  110. it 'to #callback' do
  111. expect(post("/import/google_code/callback")).to route_to("import/google_code#callback")
  112. end
  113. it 'to #new_user_map' do
  114. expect(get('/import/google_code/user_map')).to route_to('import/google_code#new_user_map')
  115. end
  116. it 'to #create_user_map' do
  117. expect(post('/import/google_code/user_map')).to route_to('import/google_code#create_user_map')
  118. end
  119. end
  120. # status_import_fogbugz GET /import/fogbugz/status(.:format) import/fogbugz#status
  121. # callback_import_fogbugz POST /import/fogbugz/callback(.:format) import/fogbugz#callback
  122. # jobs_import_fogbugz GET /import/fogbugz/jobs(.:format) import/fogbugz#jobs
  123. # new_user_map_import_fogbugz GET /import/fogbugz/user_map(.:format) import/fogbugz#new_user_map
  124. # create_user_map_import_fogbugz POST /import/fogbugz/user_map(.:format) import/fogbugz#create_user_map
  125. # import_fogbugz POST /import/fogbugz(.:format) import/fogbugz#create
  126. # new_import_fogbugz GET /import/fogbugz/new(.:format) import/fogbugz#new
  127. describe Import::FogbugzController, 'routing' do
  128. it_behaves_like 'importer routing' do
  129. let(:except_actions) { [:callback] }
  130. let(:provider) { 'fogbugz' }
  131. end
  132. it 'to #callback' do
  133. expect(post("/import/fogbugz/callback")).to route_to("import/fogbugz#callback")
  134. end
  135. it 'to #new_user_map' do
  136. expect(get('/import/fogbugz/user_map')).to route_to('import/fogbugz#new_user_map')
  137. end
  138. it 'to #create_user_map' do
  139. expect(post('/import/fogbugz/user_map')).to route_to('import/fogbugz#create_user_map')
  140. end
  141. end
  142. # import_gitlab_project POST /import/gitlab_project(.:format) import/gitlab_projects#create
  143. # POST /import/gitlab_project(.:format) import/gitlab_projects#create
  144. # new_import_gitlab_project GET /import/gitlab_project/new(.:format) import/gitlab_projects#new
  145. describe Import::GitlabProjectsController, 'routing' do
  146. it 'to #create' do
  147. expect(post('/import/gitlab_project')).to route_to('import/gitlab_projects#create')
  148. end
  149. it 'to #new' do
  150. expect(get('/import/gitlab_project/new')).to route_to('import/gitlab_projects#new')
  151. end
  152. end