summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/issue_relations_controller.rb2
-rw-r--r--test/functional/issue_relations_controller_test.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/app/controllers/issue_relations_controller.rb b/app/controllers/issue_relations_controller.rb
index ec87db727..b032d1769 100644
--- a/app/controllers/issue_relations_controller.rb
+++ b/app/controllers/issue_relations_controller.rb
@@ -42,7 +42,7 @@ class IssueRelationsController < ApplicationController
def create
@relation = IssueRelation.new(params[:relation])
@relation.issue_from = @issue
- if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/)
+ if params[:relation] && m = params[:relation][:issue_to_id].to_s.strip.match(/^#?(\d+)$/)
@relation.issue_to = Issue.visible.find_by_id(m[1].to_i)
end
saved = @relation.save
diff --git a/test/functional/issue_relations_controller_test.rb b/test/functional/issue_relations_controller_test.rb
index 19f72b8b8..66c482700 100644
--- a/test/functional/issue_relations_controller_test.rb
+++ b/test/functional/issue_relations_controller_test.rb
@@ -71,6 +71,16 @@ class IssueRelationsControllerTest < ActionController::TestCase
end
end
+ def test_create_should_strip_id
+ assert_difference 'IssueRelation.count' do
+ @request.session[:user_id] = 3
+ post :create, :issue_id => 1,
+ :relation => {:issue_to_id => ' 2 ', :relation_type => 'relates', :delay => ''}
+ end
+ relation = IssueRelation.first(:order => 'id DESC')
+ assert_equal 2, relation.issue_to_id
+ end
+
def test_create_should_not_break_with_non_numerical_id
assert_no_difference 'IssueRelation.count' do
assert_nothing_raised do