##// END OF EJS Templates
Merged r10253, r10257, r10263 and r10264 from trunk to 1.4-stable...
Toshi MARUYAMA -
r10083:5d3bdb66cd8b
parent child
Show More
@@ -1,171 +1,195
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
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
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.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../../test_helper', __FILE__)
18 require File.expand_path('../../../test_helper', __FILE__)
19
19
20 class IssuesHelperTest < ActionView::TestCase
20 class IssuesHelperTest < ActionView::TestCase
21 include ApplicationHelper
21 include ApplicationHelper
22 include IssuesHelper
22 include IssuesHelper
23 include ERB::Util
23 include ERB::Util
24
24
25 fixtures :projects, :trackers, :issue_statuses, :issues,
25 fixtures :projects, :trackers, :issue_statuses, :issues,
26 :enumerations, :users, :issue_categories,
26 :enumerations, :users, :issue_categories,
27 :projects_trackers,
27 :projects_trackers,
28 :roles,
28 :roles,
29 :member_roles,
29 :member_roles,
30 :members,
30 :members,
31 :enabled_modules,
31 :enabled_modules,
32 :workflows
32 :workflows
33
33
34 def setup
34 def setup
35 super
35 super
36 set_language_if_valid('en')
36 set_language_if_valid('en')
37 User.current = nil
37 User.current = nil
38 end
38 end
39
39
40 def test_issue_heading
40 def test_issue_heading
41 assert_equal "Bug #1", issue_heading(Issue.find(1))
41 assert_equal "Bug #1", issue_heading(Issue.find(1))
42 end
42 end
43
43
44 def test_issues_destroy_confirmation_message_with_one_root_issue
44 def test_issues_destroy_confirmation_message_with_one_root_issue
45 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find(1))
45 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find(1))
46 end
46 end
47
47
48 def test_issues_destroy_confirmation_message_with_an_arrayt_of_root_issues
48 def test_issues_destroy_confirmation_message_with_an_arrayt_of_root_issues
49 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find([1, 2]))
49 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find([1, 2]))
50 end
50 end
51
51
52 def test_issues_destroy_confirmation_message_with_one_parent_issue
52 def test_issues_destroy_confirmation_message_with_one_parent_issue
53 Issue.find(2).update_attribute :parent_issue_id, 1
53 Issue.find(2).update_attribute :parent_issue_id, 1
54 assert_equal l(:text_issues_destroy_confirmation) + "\n" + l(:text_issues_destroy_descendants_confirmation, :count => 1),
54 assert_equal l(:text_issues_destroy_confirmation) + "\n" + l(:text_issues_destroy_descendants_confirmation, :count => 1),
55 issues_destroy_confirmation_message(Issue.find(1))
55 issues_destroy_confirmation_message(Issue.find(1))
56 end
56 end
57
57
58 def test_issues_destroy_confirmation_message_with_one_parent_issue_and_its_child
58 def test_issues_destroy_confirmation_message_with_one_parent_issue_and_its_child
59 Issue.find(2).update_attribute :parent_issue_id, 1
59 Issue.find(2).update_attribute :parent_issue_id, 1
60 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find([1, 2]))
60 assert_equal l(:text_issues_destroy_confirmation), issues_destroy_confirmation_message(Issue.find([1, 2]))
61 end
61 end
62
62
63 context "IssuesHelper#show_detail" do
63 context "IssuesHelper#show_detail" do
64 context "with no_html" do
64 context "with no_html" do
65 should 'show a changing attribute' do
65 should 'show a changing attribute' do
66 @detail = JournalDetail.new(:property => 'attr', :old_value => '40', :value => '100', :prop_key => 'done_ratio')
66 @detail = JournalDetail.new(:property => 'attr', :old_value => '40', :value => '100', :prop_key => 'done_ratio')
67 assert_equal "% Done changed from 40 to 100", show_detail(@detail, true)
67 assert_equal "% Done changed from 40 to 100", show_detail(@detail, true)
68 end
68 end
69
69
70 should 'show a new attribute' do
70 should 'show a new attribute' do
71 @detail = JournalDetail.new(:property => 'attr', :old_value => nil, :value => '100', :prop_key => 'done_ratio')
71 @detail = JournalDetail.new(:property => 'attr', :old_value => nil, :value => '100', :prop_key => 'done_ratio')
72 assert_equal "% Done set to 100", show_detail(@detail, true)
72 assert_equal "% Done set to 100", show_detail(@detail, true)
73 end
73 end
74
74
75 should 'show a deleted attribute' do
75 should 'show a deleted attribute' do
76 @detail = JournalDetail.new(:property => 'attr', :old_value => '50', :value => nil, :prop_key => 'done_ratio')
76 @detail = JournalDetail.new(:property => 'attr', :old_value => '50', :value => nil, :prop_key => 'done_ratio')
77 assert_equal "% Done deleted (50)", show_detail(@detail, true)
77 assert_equal "% Done deleted (50)", show_detail(@detail, true)
78 end
78 end
79 end
79 end
80
80
81 context "with html" do
81 context "with html" do
82 should 'show a changing attribute with HTML highlights' do
82 should 'show a changing attribute with HTML highlights' do
83 @detail = JournalDetail.new(:property => 'attr', :old_value => '40', :value => '100', :prop_key => 'done_ratio')
83 @detail = JournalDetail.new(:property => 'attr', :old_value => '40', :value => '100', :prop_key => 'done_ratio')
84 html = show_detail(@detail, false)
84 html = show_detail(@detail, false)
85
85
86 assert_include '<strong>% Done</strong>', html
86 assert_include '<strong>% Done</strong>', html
87 assert_include '<i>40</i>', html
87 assert_include '<i>40</i>', html
88 assert_include '<i>100</i>', html
88 assert_include '<i>100</i>', html
89 end
89 end
90
90
91 should 'show a new attribute with HTML highlights' do
91 should 'show a new attribute with HTML highlights' do
92 @detail = JournalDetail.new(:property => 'attr', :old_value => nil, :value => '100', :prop_key => 'done_ratio')
92 @detail = JournalDetail.new(:property => 'attr', :old_value => nil, :value => '100', :prop_key => 'done_ratio')
93 html = show_detail(@detail, false)
93 html = show_detail(@detail, false)
94
94
95 assert_include '<strong>% Done</strong>', html
95 assert_include '<strong>% Done</strong>', html
96 assert_include '<i>100</i>', html
96 assert_include '<i>100</i>', html
97 end
97 end
98
98
99 should 'show a deleted attribute with HTML highlights' do
99 should 'show a deleted attribute with HTML highlights' do
100 @detail = JournalDetail.new(:property => 'attr', :old_value => '50', :value => nil, :prop_key => 'done_ratio')
100 @detail = JournalDetail.new(:property => 'attr', :old_value => '50', :value => nil, :prop_key => 'done_ratio')
101 html = show_detail(@detail, false)
101 html = show_detail(@detail, false)
102
102
103 assert_include '<strong>% Done</strong>', html
103 assert_include '<strong>% Done</strong>', html
104 assert_include '<strike><i>50</i></strike>', html
104 assert_include '<strike><i>50</i></strike>', html
105 end
105 end
106 end
106 end
107
107
108 context "with a start_date attribute" do
108 def test_with_a_start_date_attribute_should_format_the_current_date
109 should "format the current date" do
109 @detail = JournalDetail.new(
110 @detail = JournalDetail.new(:property => 'attr', :old_value => '2010-01-01', :value => '2010-01-31', :prop_key => 'start_date')
110 :property => 'attr',
111 :old_value => '2010-01-01',
112 :value => '2010-01-31',
113 :prop_key => 'start_date'
114 )
115 with_settings :date_format => '%m/%d/%Y' do
111 assert_match "01/31/2010", show_detail(@detail, true)
116 assert_match "01/31/2010", show_detail(@detail, true)
112 end
117 end
118 end
113
119
114 should "format the old date" do
120 def test_with_a_start_date_attribute_should_format_the_old_date
115 @detail = JournalDetail.new(:property => 'attr', :old_value => '2010-01-01', :value => '2010-01-31', :prop_key => 'start_date')
121 @detail = JournalDetail.new(
122 :property => 'attr',
123 :old_value => '2010-01-01',
124 :value => '2010-01-31',
125 :prop_key => 'start_date'
126 )
127 with_settings :date_format => '%m/%d/%Y' do
116 assert_match "01/01/2010", show_detail(@detail, true)
128 assert_match "01/01/2010", show_detail(@detail, true)
117 end
129 end
118 end
130 end
119
131
120 context "with a due_date attribute" do
132 def test_with_a_due_date_attribute_should_with_a_due_date_attribute
121 should "format the current date" do
133 @detail = JournalDetail.new(
122 @detail = JournalDetail.new(:property => 'attr', :old_value => '2010-01-01', :value => '2010-01-31', :prop_key => 'due_date')
134 :property => 'attr',
135 :old_value => '2010-01-01',
136 :value => '2010-01-31',
137 :prop_key => 'due_date'
138 )
139 with_settings :date_format => '%m/%d/%Y' do
123 assert_match "01/31/2010", show_detail(@detail, true)
140 assert_match "01/31/2010", show_detail(@detail, true)
124 end
141 end
142 end
125
143
126 should "format the old date" do
144 def test_with_a_due_date_attribute_should_format_the_old_date
127 @detail = JournalDetail.new(:property => 'attr', :old_value => '2010-01-01', :value => '2010-01-31', :prop_key => 'due_date')
145 @detail = JournalDetail.new(
146 :property => 'attr',
147 :old_value => '2010-01-01',
148 :value => '2010-01-31',
149 :prop_key => 'due_date'
150 )
151 with_settings :date_format => '%m/%d/%Y' do
128 assert_match "01/01/2010", show_detail(@detail, true)
152 assert_match "01/01/2010", show_detail(@detail, true)
129 end
153 end
130 end
154 end
131
155
132 context "with a project attribute" do
156 context "with a project attribute" do
133 should_show_the_old_and_new_values_for('project_id', Project)
157 should_show_the_old_and_new_values_for('project_id', Project)
134 end
158 end
135
159
136 context "with a issue status attribute" do
160 context "with a issue status attribute" do
137 should_show_the_old_and_new_values_for('status_id', IssueStatus)
161 should_show_the_old_and_new_values_for('status_id', IssueStatus)
138 end
162 end
139
163
140 context "with a tracker attribute" do
164 context "with a tracker attribute" do
141 should_show_the_old_and_new_values_for('tracker_id', Tracker)
165 should_show_the_old_and_new_values_for('tracker_id', Tracker)
142 end
166 end
143
167
144 context "with a assigned to attribute" do
168 context "with a assigned to attribute" do
145 should_show_the_old_and_new_values_for('assigned_to_id', User)
169 should_show_the_old_and_new_values_for('assigned_to_id', User)
146 end
170 end
147
171
148 context "with a priority attribute" do
172 context "with a priority attribute" do
149 should_show_the_old_and_new_values_for('priority_id', IssuePriority) do
173 should_show_the_old_and_new_values_for('priority_id', IssuePriority) do
150 @old_value = IssuePriority.generate!(:type => 'IssuePriority')
174 @old_value = IssuePriority.generate!(:type => 'IssuePriority')
151 @new_value = IssuePriority.generate!(:type => 'IssuePriority')
175 @new_value = IssuePriority.generate!(:type => 'IssuePriority')
152 end
176 end
153 end
177 end
154
178
155 context "with a category attribute" do
179 context "with a category attribute" do
156 should_show_the_old_and_new_values_for('category_id', IssueCategory)
180 should_show_the_old_and_new_values_for('category_id', IssueCategory)
157 end
181 end
158
182
159 context "with a fixed version attribute" do
183 context "with a fixed version attribute" do
160 should_show_the_old_and_new_values_for('fixed_version_id', Version)
184 should_show_the_old_and_new_values_for('fixed_version_id', Version)
161 end
185 end
162
186
163 context "with a estimated hours attribute" do
187 context "with a estimated hours attribute" do
164 should "format the time into two decimal places"
188 should "format the time into two decimal places"
165 should "format the old time into two decimal places"
189 should "format the old time into two decimal places"
166 end
190 end
167
191
168 should "test custom fields"
192 should "test custom fields"
169 should "test attachments"
193 should "test attachments"
170 end
194 end
171 end
195 end
General Comments 0
You need to be logged in to leave comments. Login now