summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-09-16 06:06:02 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-09-16 06:06:02 +0000
commitedd042071d1b5e6f494881dc2d9c39b46e42f74b (patch)
treee3016e4e76b282353216cc9e64d711ad7365f5fe
parent273c8f63885ef82d94308f36e602c6b4bc1ffe19 (diff)
downloadgitlab-ce-edd042071d1b5e6f494881dc2d9c39b46e42f74b.tar.gz
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--config/routes/project.rb3
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb34
2 files changed, 36 insertions, 1 deletions
diff --git a/config/routes/project.rb b/config/routes/project.rb
index 14caae35a83..953ddfc4165 100644
--- a/config/routes/project.rb
+++ b/config/routes/project.rb
@@ -239,8 +239,9 @@ constraints(::Constraints::ProjectUrlConstrainer.new) do
end
end
- resources :merge_requests, concerns: :awardable, except: [:new, :create], constraints: { id: /\d+/ } do
+ resources :merge_requests, concerns: :awardable, except: [:new, :create, :show], constraints: { id: /\d+/ } do
member do
+ get :show # Insert this first to ensure redirections using merge_requests#show match this route
get :commit_change_content
post :merge
post :cancel_auto_merge
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index d0370dfaeee..e1f67054d0a 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -78,6 +78,40 @@ describe Projects::MergeRequestsController do
expect(response).to be_successful
end
end
+
+ context 'when project has moved' do
+ let(:new_project) { create(:project) }
+
+ before do
+ project.route.destroy
+ new_project.redirect_routes.create!(path: project.full_path)
+ new_project.add_developer(user)
+ end
+
+ it 'redirects from an old merge request correctly' do
+ get :show,
+ params: {
+ namespace_id: project.namespace,
+ project_id: project,
+ id: merge_request
+ }
+
+ expect(response).to redirect_to(project_merge_request_path(new_project, merge_request))
+ expect(response).to have_gitlab_http_status(302)
+ end
+
+ it 'redirects from an old merge request commits correctly' do
+ get :commits,
+ params: {
+ namespace_id: project.namespace,
+ project_id: project,
+ id: merge_request
+ }
+
+ expect(response).to redirect_to(commits_project_merge_request_path(new_project, merge_request))
+ expect(response).to have_gitlab_http_status(302)
+ end
+ end
end
context 'when user is setting notes filters' do