From 4b6b568635739c938a1a889770fca4a390c4fe26 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 14 Oct 2012 14:35:57 +0000 Subject: [PATCH] Fixed that entering #nnn as parent task should validate (#11979). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10658 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue.rb | 3 ++- test/functional/issues_controller_test.rb | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/models/issue.rb b/app/models/issue.rb index 13a21e07a..0029fffb9 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -416,7 +416,8 @@ class Issue < ActiveRecord::Base end if attrs['parent_issue_id'].present? - unless Issue.visible(user).exists?(attrs['parent_issue_id'].to_i) + s = attrs['parent_issue_id'].to_s + unless (m = s.match(%r{\A#?(\d+)\z})) && Issue.visible(user).exists?(m[1]) @invalid_parent_issue_id = attrs.delete('parent_issue_id') end end diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 443cd8ab3..d1675c845 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -1940,12 +1940,24 @@ class IssuesControllerTest < ActionController::TestCase post :create, :project_id => 1, :issue => {:tracker_id => 1, :subject => 'This is a child issue', - :parent_issue_id => 2} - + :parent_issue_id => '2'} assert_response 302 end - issue = Issue.find_by_subject('This is a child issue') - assert_not_nil issue + issue = Issue.order('id DESC').first + assert_equal Issue.find(2), issue.parent + end + + def test_post_create_subissue_with_sharp_parent_id + @request.session[:user_id] = 2 + + assert_difference 'Issue.count' do + post :create, :project_id => 1, + :issue => {:tracker_id => 1, + :subject => 'This is a child issue', + :parent_issue_id => '#2'} + assert_response 302 + end + issue = Issue.order('id DESC').first assert_equal Issue.find(2), issue.parent end