summaryrefslogtreecommitdiff
path: root/spec/routing
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-15 17:31:14 +0100
committerRémy Coutable <remy@rymai.me>2016-12-19 17:35:51 +0100
commit103114e3d73819f76bed9d8ad1bbdb8964875579 (patch)
tree3457c48ed93ee0266acf6f459e5a9c312e3d42b4 /spec/routing
parent5d4531db2555d3051fc47e9268728a670ece95f9 (diff)
downloadgitlab-ce-103114e3d73819f76bed9d8ad1bbdb8964875579.tar.gz
Rename Gogs to Gitea, DRY the controller and improve views
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec/routing')
-rw-r--r--spec/routing/import_routing_spec.rb166
1 files changed, 166 insertions, 0 deletions
diff --git a/spec/routing/import_routing_spec.rb b/spec/routing/import_routing_spec.rb
new file mode 100644
index 00000000000..f1234ff470b
--- /dev/null
+++ b/spec/routing/import_routing_spec.rb
@@ -0,0 +1,166 @@
+require 'spec_helper'
+
+# Shared examples for a resource inside a Project
+#
+# By default it tests all the default REST actions: index, create, new, edit,
+# show, update, and destroy. You can remove actions by customizing the
+# `actions` variable.
+#
+# It also expects a `controller` variable to be available which defines both
+# the path to the resource as well as the controller name.
+#
+# Examples
+#
+# # Default behavior
+# it_behaves_like 'RESTful project resources' do
+# let(:controller) { 'issues' }
+# end
+#
+# # Customizing actions
+# it_behaves_like 'RESTful project resources' do
+# let(:actions) { [:index] }
+# let(:controller) { 'issues' }
+# end
+shared_examples 'importer routing' do
+ let(:except_actions) { [] }
+
+ it 'to #create' do
+ expect(post("/import/#{provider}")).to route_to("import/#{provider}#create") unless except_actions.include?(:create)
+ end
+
+ it 'to #new' do
+ expect(get("/import/#{provider}/new")).to route_to("import/#{provider}#new") unless except_actions.include?(:new)
+ end
+
+ it 'to #status' do
+ expect(get("/import/#{provider}/status")).to route_to("import/#{provider}#status") unless except_actions.include?(:status)
+ end
+
+ it 'to #callback' do
+ expect(get("/import/#{provider}/callback")).to route_to("import/#{provider}#callback") unless except_actions.include?(:callback)
+ end
+
+ it 'to #jobs' do
+ expect(get("/import/#{provider}/jobs")).to route_to("import/#{provider}#jobs") unless except_actions.include?(:jobs)
+ end
+end
+
+# personal_access_token_import_github POST /import/github/personal_access_token(.:format) import/github#personal_access_token
+# status_import_github GET /import/github/status(.:format) import/github#status
+# callback_import_github GET /import/github/callback(.:format) import/github#callback
+# jobs_import_github GET /import/github/jobs(.:format) import/github#jobs
+# import_github POST /import/github(.:format) import/github#create
+# new_import_github GET /import/github/new(.:format) import/github#new
+describe Import::GithubController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:provider) { 'github' }
+ end
+
+ it 'to #personal_access_token' do
+ expect(post('/import/github/personal_access_token')).to route_to('import/github#personal_access_token')
+ end
+end
+
+# personal_access_token_import_gitea POST /import/gitea/personal_access_token(.:format) import/gitea#personal_access_token
+# status_import_gitea GET /import/gitea/status(.:format) import/gitea#status
+# jobs_import_gitea GET /import/gitea/jobs(.:format) import/gitea#jobs
+# import_gitea POST /import/gitea(.:format) import/gitea#create
+# new_import_gitea GET /import/gitea/new(.:format) import/gitea#new
+describe Import::GiteaController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:except_actions) { [:callback] }
+ let(:provider) { 'gitea' }
+ end
+
+ it 'to #personal_access_token' do
+ expect(post('/import/gitea/personal_access_token')).to route_to('import/gitea#personal_access_token')
+ end
+
+end
+
+# status_import_gitlab GET /import/gitlab/status(.:format) import/gitlab#status
+# callback_import_gitlab GET /import/gitlab/callback(.:format) import/gitlab#callback
+# jobs_import_gitlab GET /import/gitlab/jobs(.:format) import/gitlab#jobs
+# import_gitlab POST /import/gitlab(.:format) import/gitlab#create
+describe Import::GitlabController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:except_actions) { [:new] }
+ let(:provider) { 'gitlab' }
+ end
+end
+
+# status_import_bitbucket GET /import/bitbucket/status(.:format) import/bitbucket#status
+# callback_import_bitbucket GET /import/bitbucket/callback(.:format) import/bitbucket#callback
+# jobs_import_bitbucket GET /import/bitbucket/jobs(.:format) import/bitbucket#jobs
+# import_bitbucket POST /import/bitbucket(.:format) import/bitbucket#create
+describe Import::BitbucketController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:except_actions) { [:new] }
+ let(:provider) { 'bitbucket' }
+ end
+end
+
+# status_import_google_code GET /import/google_code/status(.:format) import/google_code#status
+# callback_import_google_code POST /import/google_code/callback(.:format) import/google_code#callback
+# jobs_import_google_code GET /import/google_code/jobs(.:format) import/google_code#jobs
+# new_user_map_import_google_code GET /import/google_code/user_map(.:format) import/google_code#new_user_map
+# create_user_map_import_google_code POST /import/google_code/user_map(.:format) import/google_code#create_user_map
+# import_google_code POST /import/google_code(.:format) import/google_code#create
+# new_import_google_code GET /import/google_code/new(.:format) import/google_code#new
+describe Import::GoogleCodeController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:except_actions) { [:callback] }
+ let(:provider) { 'google_code' }
+ end
+
+ it 'to #callback' do
+ expect(post("/import/google_code/callback")).to route_to("import/google_code#callback")
+ end
+
+ it 'to #new_user_map' do
+ expect(get('/import/google_code/user_map')).to route_to('import/google_code#new_user_map')
+ end
+
+ it 'to #create_user_map' do
+ expect(post('/import/google_code/user_map')).to route_to('import/google_code#create_user_map')
+ end
+end
+
+# status_import_fogbugz GET /import/fogbugz/status(.:format) import/fogbugz#status
+# callback_import_fogbugz POST /import/fogbugz/callback(.:format) import/fogbugz#callback
+# jobs_import_fogbugz GET /import/fogbugz/jobs(.:format) import/fogbugz#jobs
+# new_user_map_import_fogbugz GET /import/fogbugz/user_map(.:format) import/fogbugz#new_user_map
+# create_user_map_import_fogbugz POST /import/fogbugz/user_map(.:format) import/fogbugz#create_user_map
+# import_fogbugz POST /import/fogbugz(.:format) import/fogbugz#create
+# new_import_fogbugz GET /import/fogbugz/new(.:format) import/fogbugz#new
+describe Import::FogbugzController, 'routing' do
+ it_behaves_like 'importer routing' do
+ let(:except_actions) { [:callback] }
+ let(:provider) { 'fogbugz' }
+ end
+
+ it 'to #callback' do
+ expect(post("/import/fogbugz/callback")).to route_to("import/fogbugz#callback")
+ end
+
+ it 'to #new_user_map' do
+ expect(get('/import/fogbugz/user_map')).to route_to('import/fogbugz#new_user_map')
+ end
+
+ it 'to #create_user_map' do
+ expect(post('/import/fogbugz/user_map')).to route_to('import/fogbugz#create_user_map')
+ end
+end
+
+# import_gitlab_project POST /import/gitlab_project(.:format) import/gitlab_projects#create
+# POST /import/gitlab_project(.:format) import/gitlab_projects#create
+# new_import_gitlab_project GET /import/gitlab_project/new(.:format) import/gitlab_projects#new
+describe Import::GitlabProjectsController, 'routing' do
+ it 'to #create' do
+ expect(post('/import/gitlab_project')).to route_to('import/gitlab_projects#create')
+ end
+
+ it 'to #new' do
+ expect(get('/import/gitlab_project/new')).to route_to('import/gitlab_projects#new')
+ end
+end