##// END OF EJS Templates
Validate custom field regexp (#8865)....
Jean-Philippe Lang -
r6178:4f92276654fe
parent child
Show More
@@ -42,6 +42,14 class CustomField < ActiveRecord::Base
42 errors.add(:possible_values, :invalid) unless self.possible_values.is_a? Array
42 errors.add(:possible_values, :invalid) unless self.possible_values.is_a? Array
43 end
43 end
44
44
45 if regexp.present?
46 begin
47 Regexp.new(regexp)
48 rescue
49 errors.add(:regexp, :invalid)
50 end
51 end
52
45 # validate default value
53 # validate default value
46 v = CustomValue.new(:custom_field => self.clone, :value => default_value, :customized => nil)
54 v = CustomValue.new(:custom_field => self.clone, :value => default_value, :customized => nil)
47 v.custom_field.is_required = false
55 v.custom_field.is_required = false
@@ -1,5 +1,5
1 # redMine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2007 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
@@ -25,6 +25,15 class CustomFieldTest < ActiveSupport::TestCase
25 assert field.save
25 assert field.save
26 end
26 end
27
27
28 def test_regexp_validation
29 field = IssueCustomField.new(:name => 'regexp', :field_format => 'text', :regexp => '[a-z0-9')
30 assert !field.save
31 assert_equal I18n.t('activerecord.errors.messages.invalid'), field.errors.on(:regexp)
32
33 field.regexp = '[a-z0-9]'
34 assert field.save
35 end
36
28 def test_possible_values_should_accept_an_array
37 def test_possible_values_should_accept_an_array
29 field = CustomField.new
38 field = CustomField.new
30 field.possible_values = ["One value", ""]
39 field.possible_values = ["One value", ""]
General Comments 0
You need to be logged in to leave comments. Login now