##// END OF EJS Templates
Adds a test for #18584....
Jean-Philippe Lang -
r13340:9c173375c631
parent child
Show More
@@ -1,60 +1,78
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2014 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 20 class CustomFieldUserFormatTest < ActiveSupport::TestCase
21 21 fixtures :custom_fields, :projects, :members, :users, :member_roles, :trackers, :issues
22 22
23 23 def setup
24 24 @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user')
25 25 end
26 26
27 27 def test_possible_values_options_with_no_arguments
28 28 assert_equal [], @field.possible_values_options
29 29 assert_equal [], @field.possible_values_options(nil)
30 30 end
31 31
32 32 def test_possible_values_options_with_project_resource
33 33 project = Project.find(1)
34 34 possible_values_options = @field.possible_values_options(project.issues.first)
35 35 assert possible_values_options.any?
36 36 assert_equal project.users.sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
37 37 end
38 38
39 39 def test_possible_values_options_with_array
40 40 projects = Project.find([1, 2])
41 41 possible_values_options = @field.possible_values_options(projects)
42 42 assert possible_values_options.any?
43 43 assert_equal (projects.first.users & projects.last.users).sort.map {|u| [u.name, u.id.to_s]}, possible_values_options
44 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 64 def test_cast_blank_value
47 65 assert_equal nil, @field.cast_value(nil)
48 66 assert_equal nil, @field.cast_value("")
49 67 end
50 68
51 69 def test_cast_valid_value
52 70 user = @field.cast_value("2")
53 71 assert_kind_of User, user
54 72 assert_equal User.find(2), user
55 73 end
56 74
57 75 def test_cast_invalid_value
58 76 assert_equal nil, @field.cast_value("187")
59 77 end
60 78 end
General Comments 0
You need to be logged in to leave comments. Login now