##// END OF EJS Templates
Adds a test for #18584....
Jean-Philippe Lang -
r13340:9c173375c631
parent child
Show More
@@ -1,60 +1,78
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2014 Jean-Philippe Lang
2 # Copyright (C) 2006-2014 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 CustomFieldUserFormatTest < ActiveSupport::TestCase
20 class CustomFieldUserFormatTest < ActiveSupport::TestCase
21 fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues
21 fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues
22
22
23 def setup
23 def setup
24 @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user')
24 @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user')
25 end
25 end
26
26
27 def test_possible_values_options_with_no_arguments
27 def test_possible_values_options_with_no_arguments
28 assert_equal [], @field.possible_values_options
28 assert_equal [], @field.possible_values_options
29 assert_equal [], @field.possible_values_options(nil)
29 assert_equal [], @field.possible_values_options(nil)
30 end
30 end
31
31
32 def test_possible_values_options_with_project_resource
32 def test_possible_values_options_with_project_resource
33 project = Project.find(1)
33 project = Project.find(1)
34 possible_values_options = @field.possible_values_options(project.issues.first)
34 possible_values_options = @field.possible_values_options(project.issues.first)
35 assert possible_values_options.any?
35 assert possible_values_options.any?
36 assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
36 assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
37 end
37 end
38
38
39 def test_possible_values_options_with_array
39 def test_possible_values_options_with_array
40 projects = Project.find([1, 2])
40 projects = Project.find([1, 2])
41 possible_values_options = @field.possible_values_options(projects)
41 possible_values_options = @field.possible_values_options(projects)
42 assert possible_values_options.any?
42 assert possible_values_options.any?
43 assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
43 assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
44 end
44 end
45
45
46 def test_possible_custom_value_options_should_not_include_locked_users
47 custom_value = CustomValue.new(:customized => Issue.find(1), :custom_field => @field)
48 assert_include '2', @field.possible_custom_value_options(custom_value).map(&:last)
49
50 assert User.find(2).lock!
51 assert_not_include '2', @field.possible_custom_value_options(custom_value).map(&:last)
52 end
53
54 def test_possible_custom_value_options_should_include_user_that_was_assigned_to_the_custom_value
55 user = User.generate!
56 custom_value = CustomValue.new(:customized => Issue.find(1), :custom_field => @field)
57 assert_not_include user.id.to_s, @field.possible_custom_value_options(custom_value).map(&:last)
58
59 custom_value.value = user.id
60 custom_value.save!
61 assert_include user.id.to_s, @field.possible_custom_value_options(custom_value).map(&:last)
62 end
63
46 def test_cast_blank_value
64 def test_cast_blank_value
47 assert_equal nil, @field.cast_value(nil)
65 assert_equal nil, @field.cast_value(nil)
48 assert_equal nil, @field.cast_value("")
66 assert_equal nil, @field.cast_value("")
49 end
67 end
50
68
51 def test_cast_valid_value
69 def test_cast_valid_value
52 user = @field.cast_value("2")
70 user = @field.cast_value("2")
53 assert_kind_of User, user
71 assert_kind_of User, user
54 assert_equal User.find(2), user
72 assert_equal User.find(2), user
55 end
73 end
56
74
57 def test_cast_invalid_value
75 def test_cast_invalid_value
58 assert_equal nil, @field.cast_value("187")
76 assert_equal nil, @field.cast_value("187")
59 end
77 end
60 end
78 end
General Comments 0
You need to be logged in to leave comments. Login now