summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-12-30 16:36:01 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-12-30 16:36:01 +0000
commit16335b3c4d9e9ed13093445ca5198642cee795f9 (patch)
tree7f23aa792a9e7295ee261d21685ccdb2e0536c19
parentc2173a1464abe4048486ffe350ad65545ce239ce (diff)
parent781cca8d4549ffb55f6b594c0c740f630d5531c7 (diff)
downloadgitlab-ce-16335b3c4d9e9ed13093445ca5198642cee795f9.tar.gz
Merge branch 'issue_25578' into 'master'
Fix redirect after update file when user has forked project Closes #25578 See merge request !8371
-rw-r--r--app/controllers/concerns/creates_commit.rb2
-rw-r--r--changelogs/unreleased/issue_25578.yml4
-rw-r--r--spec/controllers/projects/blob_controller_spec.rb32
3 files changed, 36 insertions, 2 deletions
diff --git a/app/controllers/concerns/creates_commit.rb b/app/controllers/concerns/creates_commit.rb
index 936d9bab57e..6f43ce5226d 100644
--- a/app/controllers/concerns/creates_commit.rb
+++ b/app/controllers/concerns/creates_commit.rb
@@ -82,7 +82,7 @@ module CreatesCommit
return @merge_request if defined?(@merge_request)
@merge_request = MergeRequestsFinder.new(current_user, project_id: @mr_target_project.id).execute.opened.
- find_by(source_branch: @mr_source_branch, target_branch: @mr_target_branch)
+ find_by(source_branch: @mr_source_branch, target_branch: @mr_target_branch, source_project_id: @mr_source_project)
end
def different_project?
diff --git a/changelogs/unreleased/issue_25578.yml b/changelogs/unreleased/issue_25578.yml
new file mode 100644
index 00000000000..e10f1d232af
--- /dev/null
+++ b/changelogs/unreleased/issue_25578.yml
@@ -0,0 +1,4 @@
+---
+title: Fix redirect after update file when user has forked project
+merge_request:
+author:
diff --git a/spec/controllers/projects/blob_controller_spec.rb b/spec/controllers/projects/blob_controller_spec.rb
index 3efef757ae2..f35c5d992d9 100644
--- a/spec/controllers/projects/blob_controller_spec.rb
+++ b/spec/controllers/projects/blob_controller_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
describe Projects::BlobController do
- let(:project) { create(:project) }
+ let(:project) { create(:project, :public) }
let(:user) { create(:user) }
before do
@@ -84,5 +84,35 @@ describe Projects::BlobController do
end
end
end
+
+ context 'when user has forked project' do
+ let(:guest) { create(:user) }
+ let!(:forked_project) { Projects::ForkService.new(project, guest).execute }
+ let!(:merge_request) { create(:merge_request, source_project: project, target_project: project, source_branch: "fork-test-1", target_branch: "master") }
+
+ before { sign_in(guest) }
+
+ it "redirects to forked project new merge request" do
+ default_params[:target_branch] = "fork-test-1"
+ default_params[:create_merge_request] = 1
+
+ allow_any_instance_of(Files::UpdateService).to receive(:commit).and_return(:success)
+
+ put :update, default_params
+
+ expect(response).to redirect_to(
+ new_namespace_project_merge_request_path(
+ forked_project.namespace,
+ forked_project,
+ merge_request: {
+ source_project_id: forked_project.id,
+ target_project_id: project.id,
+ source_branch: "fork-test-1",
+ target_branch: "master"
+ }
+ )
+ )
+ end
+ end
end
end