##// END OF EJS Templates
Remove some inline styling and some depreciated table cell attributes and replace them with proper class names....
Remove some inline styling and some depreciated table cell attributes and replace them with proper class names. Contributed by Andrew Smith. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9252 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8988:aa9238912b97
r9132:103cd46f7814
Show More
custom_field_test.rb
194 lines | 6.2 KiB | text/x-ruby | RubyLexer
/ test / unit / custom_field_test.rb
Jean-Philippe Lang
Validate custom field regexp (#8865)....
r6178 # Redmine - project management software
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 # Copyright (C) 2006-2012 Jean-Philippe Lang
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602 #
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602 #
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Added "Float" as a custom field format....
r857
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class CustomFieldTest < ActiveSupport::TestCase
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 fixtures :custom_fields
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 def test_create
field = UserCustomField.new(:name => 'Money money money', :field_format => 'float')
assert field.save
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Toshi MARUYAMA
add unit test of CustomField model before_validation...
r8070 def test_before_validation
field = CustomField.new(:name => 'test_before_validation', :field_format => 'int')
field.searchable = true
assert field.save
assert_equal false, field.searchable
field.searchable = true
assert field.save
assert_equal false, field.searchable
end
Jean-Philippe Lang
Validate custom field regexp (#8865)....
r6178 def test_regexp_validation
field = IssueCustomField.new(:name => 'regexp', :field_format => 'text', :regexp => '[a-z0-9')
assert !field.save
Jean-Philippe Lang
Changed assertions to make them work with Rails2/3 ruby1.8/1.9 different behaviours....
r8988 assert_include I18n.t('activerecord.errors.messages.invalid'),
field.errors[:regexp]
Jean-Philippe Lang
Validate custom field regexp (#8865)....
r6178 field.regexp = '[a-z0-9]'
assert field.save
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597 def test_default_value_should_be_validated
field = CustomField.new(:name => 'Test', :field_format => 'int')
field.default_value = 'abc'
assert !field.valid?
field.default_value = '6'
assert field.valid?
end
Jean-Philippe Lang
Do not validate blank default custom field value....
r8602 def test_default_value_should_not_be_validated_when_blank
field = CustomField.new(:name => 'Test', :field_format => 'list', :possible_values => ['a', 'b'], :is_required => true, :default_value => '')
assert field.valid?
end
Jean-Philippe Lang
Use a textarea for custom fields possible values (#2472)....
r2265 def test_possible_values_should_accept_an_array
field = CustomField.new
field.possible_values = ["One value", ""]
assert_equal ["One value"], field.possible_values
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Jean-Philippe Lang
Use a textarea for custom fields possible values (#2472)....
r2265 def test_possible_values_should_accept_a_string
field = CustomField.new
field.possible_values = "One value"
assert_equal ["One value"], field.possible_values
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Jean-Philippe Lang
Use a textarea for custom fields possible values (#2472)....
r2265 def test_possible_values_should_accept_a_multiline_string
field = CustomField.new
field.possible_values = "One value\nAnd another one \r\n \n"
assert_equal ["One value", "And another one"], field.possible_values
end
Toshi MARUYAMA
remove trailing white-spaces from test/unit/custom_field_test.rb....
r6602
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 def test_destroy
field = CustomField.find(1)
assert field.destroy
end
Jean-Philippe Lang
Resourcified custom fields....
r8024
def test_new_subclass_instance_should_return_an_instance
f = CustomField.new_subclass_instance('IssueCustomField')
assert_kind_of IssueCustomField, f
end
def test_new_subclass_instance_should_set_attributes
f = CustomField.new_subclass_instance('IssueCustomField', :name => 'Test')
assert_kind_of IssueCustomField, f
assert_equal 'Test', f.name
end
def test_new_subclass_instance_with_invalid_class_name_should_return_nil
assert_nil CustomField.new_subclass_instance('WrongClassName')
end
def test_new_subclass_instance_with_non_subclass_name_should_return_nil
assert_nil CustomField.new_subclass_instance('Project')
end
Jean-Philippe Lang
Extracts custom field values validation from CustomValue so that they can be validated globally from the customized object (#1189)....
r8597
def test_string_field_validation_with_blank_value
f = CustomField.new(:field_format => 'string')
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
f.is_required = true
assert !f.valid_field_value?(nil)
assert !f.valid_field_value?('')
end
def test_string_field_validation_with_min_and_max_lengths
f = CustomField.new(:field_format => 'string', :min_length => 2, :max_length => 5)
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('a' * 2)
assert !f.valid_field_value?('a')
assert !f.valid_field_value?('a' * 6)
end
def test_string_field_validation_with_regexp
f = CustomField.new(:field_format => 'string', :regexp => '^[A-Z0-9]*$')
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('ABC')
assert !f.valid_field_value?('abc')
end
def test_date_field_validation
f = CustomField.new(:field_format => 'date')
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('1975-07-14')
assert !f.valid_field_value?('1975-07-33')
assert !f.valid_field_value?('abc')
end
def test_list_field_validation
f = CustomField.new(:field_format => 'list', :possible_values => ['value1', 'value2'])
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('value2')
assert !f.valid_field_value?('abc')
end
def test_int_field_validation
f = CustomField.new(:field_format => 'int')
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('123')
assert f.valid_field_value?('+123')
assert f.valid_field_value?('-123')
assert !f.valid_field_value?('6abc')
end
def test_float_field_validation
f = CustomField.new(:field_format => 'float')
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?('11.2')
assert f.valid_field_value?('-6.250')
assert f.valid_field_value?('5')
assert !f.valid_field_value?('6abc')
end
Jean-Philippe Lang
Adds support for multiselect custom fields (#1189)....
r8601
def test_multi_field_validation
f = CustomField.new(:field_format => 'list', :multiple => 'true', :possible_values => ['value1', 'value2'])
assert f.valid_field_value?(nil)
assert f.valid_field_value?('')
assert f.valid_field_value?([])
assert f.valid_field_value?([nil])
assert f.valid_field_value?([''])
assert f.valid_field_value?('value2')
assert !f.valid_field_value?('abc')
assert f.valid_field_value?(['value2'])
assert !f.valid_field_value?(['abc'])
assert f.valid_field_value?(['', 'value2'])
assert !f.valid_field_value?(['', 'abc'])
assert f.valid_field_value?(['value1', 'value2'])
assert !f.valid_field_value?(['value1', 'abc'])
end
Jean-Philippe Lang
Added "Float" as a custom field format....
r857 end