PageRenderTime 55ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/spec/routing/import_routing_spec.rb

https://bitbucket.org/terrchen/gitlab-ce
Ruby | 165 lines | 86 code | 22 blank | 57 comment | 0 complexity | 2241d43adea58cac07294266a8c95a89 MD5 | raw file
Possible License(s): Apache-2.0, CC0-1.0
  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. it 'to #create' do
  26. expect(post("/import/#{provider}")).to route_to("import/#{provider}#create") unless except_actions.include?(:create)
  27. end
  28. it 'to #new' do
  29. expect(get("/import/#{provider}/new")).to route_to("import/#{provider}#new") unless except_actions.include?(:new)
  30. end
  31. it 'to #status' do
  32. expect(get("/import/#{provider}/status")).to route_to("import/#{provider}#status") unless except_actions.include?(:status)
  33. end
  34. it 'to #callback' do
  35. expect(get("/import/#{provider}/callback")).to route_to("import/#{provider}#callback") unless except_actions.include?(:callback)
  36. end
  37. it 'to #jobs' do
  38. expect(get("/import/#{provider}/jobs")).to route_to("import/#{provider}#jobs") unless except_actions.include?(:jobs)
  39. end
  40. end
  41. # personal_access_token_import_github POST /import/github/personal_access_token(.:format) import/github#personal_access_token
  42. # status_import_github GET /import/github/status(.:format) import/github#status
  43. # callback_import_github GET /import/github/callback(.:format) import/github#callback
  44. # jobs_import_github GET /import/github/jobs(.:format) import/github#jobs
  45. # import_github POST /import/github(.:format) import/github#create
  46. # new_import_github GET /import/github/new(.:format) import/github#new
  47. describe Import::GithubController, 'routing' do
  48. it_behaves_like 'importer routing' do
  49. let(:provider) { 'github' }
  50. end
  51. it 'to #personal_access_token' do
  52. expect(post('/import/github/personal_access_token')).to route_to('import/github#personal_access_token')
  53. end
  54. end
  55. # personal_access_token_import_gitea POST /import/gitea/personal_access_token(.:format) import/gitea#personal_access_token
  56. # status_import_gitea GET /import/gitea/status(.:format) import/gitea#status
  57. # jobs_import_gitea GET /import/gitea/jobs(.:format) import/gitea#jobs
  58. # import_gitea POST /import/gitea(.:format) import/gitea#create
  59. # new_import_gitea GET /import/gitea/new(.:format) import/gitea#new
  60. describe Import::GiteaController, 'routing' do
  61. it_behaves_like 'importer routing' do
  62. let(:except_actions) { [:callback] }
  63. let(:provider) { 'gitea' }
  64. end
  65. it 'to #personal_access_token' do
  66. expect(post('/import/gitea/personal_access_token')).to route_to('import/gitea#personal_access_token')
  67. end
  68. end
  69. # status_import_gitlab GET /import/gitlab/status(.:format) import/gitlab#status
  70. # callback_import_gitlab GET /import/gitlab/callback(.:format) import/gitlab#callback
  71. # jobs_import_gitlab GET /import/gitlab/jobs(.:format) import/gitlab#jobs
  72. # import_gitlab POST /import/gitlab(.:format) import/gitlab#create
  73. describe Import::GitlabController, 'routing' do
  74. it_behaves_like 'importer routing' do
  75. let(:except_actions) { [:new] }
  76. let(:provider) { 'gitlab' }
  77. end
  78. end
  79. # status_import_bitbucket GET /import/bitbucket/status(.:format) import/bitbucket#status
  80. # callback_import_bitbucket GET /import/bitbucket/callback(.:format) import/bitbucket#callback
  81. # jobs_import_bitbucket GET /import/bitbucket/jobs(.:format) import/bitbucket#jobs
  82. # import_bitbucket POST /import/bitbucket(.:format) import/bitbucket#create
  83. describe Import::BitbucketController, 'routing' do
  84. it_behaves_like 'importer routing' do
  85. let(:except_actions) { [:new] }
  86. let(:provider) { 'bitbucket' }
  87. end
  88. end
  89. # status_import_google_code GET /import/google_code/status(.:format) import/google_code#status
  90. # callback_import_google_code POST /import/google_code/callback(.:format) import/google_code#callback
  91. # jobs_import_google_code GET /import/google_code/jobs(.:format) import/google_code#jobs
  92. # new_user_map_import_google_code GET /import/google_code/user_map(.:format) import/google_code#new_user_map
  93. # create_user_map_import_google_code POST /import/google_code/user_map(.:format) import/google_code#create_user_map
  94. # import_google_code POST /import/google_code(.:format) import/google_code#create
  95. # new_import_google_code GET /import/google_code/new(.:format) import/google_code#new
  96. describe Import::GoogleCodeController, 'routing' do
  97. it_behaves_like 'importer routing' do
  98. let(:except_actions) { [:callback] }
  99. let(:provider) { 'google_code' }
  100. end
  101. it 'to #callback' do
  102. expect(post("/import/google_code/callback")).to route_to("import/google_code#callback")
  103. end
  104. it 'to #new_user_map' do
  105. expect(get('/import/google_code/user_map')).to route_to('import/google_code#new_user_map')
  106. end
  107. it 'to #create_user_map' do
  108. expect(post('/import/google_code/user_map')).to route_to('import/google_code#create_user_map')
  109. end
  110. end
  111. # status_import_fogbugz GET /import/fogbugz/status(.:format) import/fogbugz#status
  112. # callback_import_fogbugz POST /import/fogbugz/callback(.:format) import/fogbugz#callback
  113. # jobs_import_fogbugz GET /import/fogbugz/jobs(.:format) import/fogbugz#jobs
  114. # new_user_map_import_fogbugz GET /import/fogbugz/user_map(.:format) import/fogbugz#new_user_map
  115. # create_user_map_import_fogbugz POST /import/fogbugz/user_map(.:format) import/fogbugz#create_user_map
  116. # import_fogbugz POST /import/fogbugz(.:format) import/fogbugz#create
  117. # new_import_fogbugz GET /import/fogbugz/new(.:format) import/fogbugz#new
  118. describe Import::FogbugzController, 'routing' do
  119. it_behaves_like 'importer routing' do
  120. let(:except_actions) { [:callback] }
  121. let(:provider) { 'fogbugz' }
  122. end
  123. it 'to #callback' do
  124. expect(post("/import/fogbugz/callback")).to route_to("import/fogbugz#callback")
  125. end
  126. it 'to #new_user_map' do
  127. expect(get('/import/fogbugz/user_map')).to route_to('import/fogbugz#new_user_map')
  128. end
  129. it 'to #create_user_map' do
  130. expect(post('/import/fogbugz/user_map')).to route_to('import/fogbugz#create_user_map')
  131. end
  132. end
  133. # import_gitlab_project POST /import/gitlab_project(.:format) import/gitlab_projects#create
  134. # POST /import/gitlab_project(.:format) import/gitlab_projects#create
  135. # new_import_gitlab_project GET /import/gitlab_project/new(.:format) import/gitlab_projects#new
  136. describe Import::GitlabProjectsController, 'routing' do
  137. it 'to #create' do
  138. expect(post('/import/gitlab_project')).to route_to('import/gitlab_projects#create')
  139. end
  140. it 'to #new' do
  141. expect(get('/import/gitlab_project/new')).to route_to('import/gitlab_projects#new')
  142. end
  143. end