Commit 0a013adc4da162512b75d5ed20c338392af7577b

Authored by Izaak Alpert
1 parent 532809a1

Fix an issue with edits sending user back to @source_project

-Form was for @source_project rather then @project.
-add spinach test for edit submission on forked project

Change-Id: I807a5077608b7e910f4bc83c5d3e82c378f70a9e
app/controllers/projects/merge_requests_controller.rb
@@ -54,10 +54,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController @@ -54,10 +54,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController
54 end 54 end
55 55
56 def create 56 def create
57 - @merge_request = @project.merge_requests.new(params[:merge_request]) 57 + @merge_request = MergeRequest.new(params[:merge_request])
58 @merge_request.author = current_user 58 @merge_request.author = current_user
59 - @merge_request.source_project_id = params[:merge_request][:source_project_id].to_i  
60 - @merge_request.target_project_id = params[:merge_request][:target_project_id].to_i  
61 @target_branches ||= [] 59 @target_branches ||= []
62 if @merge_request.save 60 if @merge_request.save
63 @merge_request.reload_code 61 @merge_request.reload_code
app/views/projects/merge_requests/_form.html.haml
1 -= form_for [@source_project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f| 1 += form_for [@project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f|
2 -if @merge_request.errors.any? 2 -if @merge_request.errors.any?
3 .alert.alert-error 3 .alert.alert-error
4 %ul 4 %ul
features/project/forked_merge_requests.feature
@@ -37,6 +37,9 @@ Feature: Project Forked Merge Requests @@ -37,6 +37,9 @@ Feature: Project Forked Merge Requests
37 And I should see merge request "Merge Request On Forked Project" 37 And I should see merge request "Merge Request On Forked Project"
38 And I click link edit "Merge Request On Forked Project" 38 And I click link edit "Merge Request On Forked Project"
39 Then I see the edit page prefilled for "Merge Request On Forked Project" 39 Then I see the edit page prefilled for "Merge Request On Forked Project"
  40 + And I update the merge request title
  41 + And I save the merge request
  42 + Then I should see the edited merge request
40 43
41 @javascript 44 @javascript
42 Scenario: I cannot submit an invalid merge request 45 Scenario: I cannot submit an invalid merge request
features/steps/project/project_forked_merge_requests.rb
@@ -100,6 +100,28 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps @@ -100,6 +100,28 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
100 verify_commit_link(".mr_source_commit",@forked_project) 100 verify_commit_link(".mr_source_commit",@forked_project)
101 end 101 end
102 102
  103 + And 'I update the merge request title' do
  104 + fill_in "merge_request_title", with: "An Edited Forked Merge Request"
  105 + end
  106 +
  107 + And 'I save the merge request' do
  108 + click_button "Save changes"
  109 + end
  110 +
  111 + Then 'I should see the edited merge request' do
  112 + page.should have_content "An Edited Forked Merge Request"
  113 + @project.merge_requests.size.should >= 1
  114 + @merge_request = @project.merge_requests.last
  115 + current_path.should == project_merge_request_path(@project, @merge_request)
  116 + @merge_request.source_project.should == @forked_project
  117 + @merge_request.source_branch.should == "master"
  118 + @merge_request.target_branch.should == "stable"
  119 + page.should have_content @forked_project.path_with_namespace
  120 + page.should have_content @project.path_with_namespace
  121 + page.should have_content @merge_request.source_branch
  122 + page.should have_content @merge_request.target_branch
  123 + end
  124 +
103 Then 'I should see last push widget' do 125 Then 'I should see last push widget' do
104 page.should have_content "You pushed to new_design" 126 page.should have_content "You pushed to new_design"
105 page.should have_link "Create Merge Request" 127 page.should have_link "Create Merge Request"