Mercurial > hg > soundsoftware-site
comparison .svn/pristine/92/92f7e489a9a504398a914cb36be2e56610b8c39b.svn-base @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
1 # Redmine - project management software | |
2 # Copyright (C) 2006-2011 Jean-Philippe Lang | |
3 # | |
4 # This program is free software; you can redistribute it and/or | |
5 # modify it under the terms of the GNU General Public License | |
6 # as published by the Free Software Foundation; either version 2 | |
7 # of the License, or (at your option) any later version. | |
8 # | |
9 # This program is distributed in the hope that it will be useful, | |
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 # GNU General Public License for more details. | |
13 # | |
14 # You should have received a copy of the GNU General Public License | |
15 # along with this program; if not, write to the Free Software | |
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
17 | |
18 require File.expand_path('../../test_helper', __FILE__) | |
19 require 'issue_relations_controller' | |
20 | |
21 # Re-raise errors caught by the controller. | |
22 class IssueRelationsController; def rescue_action(e) raise e end; end | |
23 | |
24 | |
25 class IssueRelationsControllerTest < ActionController::TestCase | |
26 fixtures :projects, | |
27 :users, | |
28 :roles, | |
29 :members, | |
30 :member_roles, | |
31 :issues, | |
32 :issue_statuses, | |
33 :issue_relations, | |
34 :enabled_modules, | |
35 :enumerations, | |
36 :trackers | |
37 | |
38 def setup | |
39 @controller = IssueRelationsController.new | |
40 @request = ActionController::TestRequest.new | |
41 @response = ActionController::TestResponse.new | |
42 User.current = nil | |
43 end | |
44 | |
45 def test_create | |
46 assert_difference 'IssueRelation.count' do | |
47 @request.session[:user_id] = 3 | |
48 post :create, :issue_id => 1, | |
49 :relation => {:issue_to_id => '2', :relation_type => 'relates', :delay => ''} | |
50 end | |
51 end | |
52 | |
53 def test_create_xhr | |
54 assert_difference 'IssueRelation.count' do | |
55 @request.session[:user_id] = 3 | |
56 xhr :post, :create, | |
57 :issue_id => 3, | |
58 :relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''} | |
59 assert_select_rjs 'relations' do | |
60 assert_select 'table', 1 | |
61 assert_select 'tr', 2 # relations | |
62 end | |
63 end | |
64 end | |
65 | |
66 def test_create_should_accept_id_with_hash | |
67 assert_difference 'IssueRelation.count' do | |
68 @request.session[:user_id] = 3 | |
69 post :create, :issue_id => 1, | |
70 :relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''} | |
71 end | |
72 end | |
73 | |
74 def test_create_should_not_break_with_non_numerical_id | |
75 assert_no_difference 'IssueRelation.count' do | |
76 assert_nothing_raised do | |
77 @request.session[:user_id] = 3 | |
78 post :create, :issue_id => 1, | |
79 :relation => {:issue_to_id => 'foo', :relation_type => 'relates', :delay => ''} | |
80 end | |
81 end | |
82 end | |
83 | |
84 def test_should_create_relations_with_visible_issues_only | |
85 Setting.cross_project_issue_relations = '1' | |
86 assert_nil Issue.visible(User.find(3)).find_by_id(4) | |
87 | |
88 assert_no_difference 'IssueRelation.count' do | |
89 @request.session[:user_id] = 3 | |
90 post :create, :issue_id => 1, | |
91 :relation => {:issue_to_id => '4', :relation_type => 'relates', :delay => ''} | |
92 end | |
93 end | |
94 | |
95 should "prevent relation creation when there's a circular dependency" | |
96 | |
97 def test_destroy | |
98 assert_difference 'IssueRelation.count', -1 do | |
99 @request.session[:user_id] = 3 | |
100 delete :destroy, :id => '2' | |
101 end | |
102 end | |
103 | |
104 def test_destroy_xhr | |
105 IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r| | |
106 r.issue_from_id = 3 | |
107 r.issue_to_id = 1 | |
108 end | |
109 | |
110 assert_difference 'IssueRelation.count', -1 do | |
111 @request.session[:user_id] = 3 | |
112 xhr :delete, :destroy, :id => '2' | |
113 assert_select_rjs :remove, 'relation-2' | |
114 end | |
115 end | |
116 end |