@@ -42,7 +42,7 class IssueRelationsController < ApplicationController | |||||
42 | def create |
|
42 | def create | |
43 | @relation = IssueRelation.new(params[:relation]) |
|
43 | @relation = IssueRelation.new(params[:relation]) | |
44 | @relation.issue_from = @issue |
|
44 | @relation.issue_from = @issue | |
45 | if params[:relation] && m = params[:relation][:issue_to_id].to_s.match(/^#?(\d+)$/) |
|
45 | if params[:relation] && m = params[:relation][:issue_to_id].to_s.strip.match(/^#?(\d+)$/) | |
46 | @relation.issue_to = Issue.visible.find_by_id(m[1].to_i) |
|
46 | @relation.issue_to = Issue.visible.find_by_id(m[1].to_i) | |
47 | end |
|
47 | end | |
48 | saved = @relation.save |
|
48 | saved = @relation.save |
@@ -48,6 +48,10 class IssueRelationsControllerTest < ActionController::TestCase | |||||
48 | post :create, :issue_id => 1, |
|
48 | post :create, :issue_id => 1, | |
49 | :relation => {:issue_to_id => '2', :relation_type => 'relates', :delay => ''} |
|
49 | :relation => {:issue_to_id => '2', :relation_type => 'relates', :delay => ''} | |
50 | end |
|
50 | end | |
|
51 | relation = IssueRelation.first(:order => 'id DESC') | |||
|
52 | assert_equal 1, relation.issue_from_id | |||
|
53 | assert_equal 2, relation.issue_to_id | |||
|
54 | assert_equal 'relates', relation.relation_type | |||
51 | end |
|
55 | end | |
52 |
|
56 | |||
53 | def test_create_xhr |
|
57 | def test_create_xhr | |
@@ -61,6 +65,9 class IssueRelationsControllerTest < ActionController::TestCase | |||||
61 | assert_select 'tr', 2 # relations |
|
65 | assert_select 'tr', 2 # relations | |
62 | end |
|
66 | end | |
63 | end |
|
67 | end | |
|
68 | relation = IssueRelation.first(:order => 'id DESC') | |||
|
69 | assert_equal 3, relation.issue_from_id | |||
|
70 | assert_equal 1, relation.issue_to_id | |||
64 | end |
|
71 | end | |
65 |
|
72 | |||
66 | def test_create_should_accept_id_with_hash |
|
73 | def test_create_should_accept_id_with_hash | |
@@ -69,6 +76,18 class IssueRelationsControllerTest < ActionController::TestCase | |||||
69 | post :create, :issue_id => 1, |
|
76 | post :create, :issue_id => 1, | |
70 | :relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''} |
|
77 | :relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''} | |
71 | end |
|
78 | end | |
|
79 | relation = IssueRelation.first(:order => 'id DESC') | |||
|
80 | assert_equal 2, relation.issue_to_id | |||
|
81 | end | |||
|
82 | ||||
|
83 | def test_create_should_strip_id | |||
|
84 | assert_difference 'IssueRelation.count' do | |||
|
85 | @request.session[:user_id] = 3 | |||
|
86 | post :create, :issue_id => 1, | |||
|
87 | :relation => {:issue_to_id => ' 2 ', :relation_type => 'relates', :delay => ''} | |||
|
88 | end | |||
|
89 | relation = IssueRelation.first(:order => 'id DESC') | |||
|
90 | assert_equal 2, relation.issue_to_id | |||
72 | end |
|
91 | end | |
73 |
|
92 | |||
74 | def test_create_should_not_break_with_non_numerical_id |
|
93 | def test_create_should_not_break_with_non_numerical_id |
General Comments 0
You need to be logged in to leave comments.
Login now