Enumerations can now have custom fields defined on them. #4077
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2945 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
require File.dirname(__FILE__) + '/../test_helper'
|
||||
|
||||
class EnumerationTest < ActiveSupport::TestCase
|
||||
fixtures :enumerations, :issues
|
||||
fixtures :enumerations, :issues, :custom_fields, :custom_values
|
||||
|
||||
def setup
|
||||
end
|
||||
@@ -81,4 +81,9 @@ class EnumerationTest < ActiveSupport::TestCase
|
||||
assert_nil Issue.find(:first, :conditions => {:priority_id => 4})
|
||||
assert_equal 5, Enumeration.find(6).objects_count
|
||||
end
|
||||
|
||||
def test_should_be_customizable
|
||||
assert Enumeration.included_modules.include?(Redmine::Acts::Customizable::InstanceMethods)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -32,5 +32,54 @@ class TimeEntryActivityTest < ActiveSupport::TestCase
|
||||
def test_option_name
|
||||
assert_equal :enumeration_activities, TimeEntryActivity.new.option_name
|
||||
end
|
||||
|
||||
def test_create_with_custom_field
|
||||
field = TimeEntryActivityCustomField.find_by_name('Billable')
|
||||
e = TimeEntryActivity.new(:name => 'Custom Data')
|
||||
e.custom_field_values = {field.id => "1"}
|
||||
assert e.save
|
||||
|
||||
e.reload
|
||||
assert_equal "1", e.custom_value_for(field).value
|
||||
end
|
||||
|
||||
def test_create_without_required_custom_field_should_fail
|
||||
field = TimeEntryActivityCustomField.find_by_name('Billable')
|
||||
field.update_attribute(:is_required, true)
|
||||
|
||||
e = TimeEntryActivity.new(:name => 'Custom Data')
|
||||
assert !e.save
|
||||
assert_equal I18n.translate('activerecord.errors.messages.invalid'), e.errors.on(:custom_values)
|
||||
end
|
||||
|
||||
def test_create_with_required_custom_field_should_succeed
|
||||
field = TimeEntryActivityCustomField.find_by_name('Billable')
|
||||
field.update_attribute(:is_required, true)
|
||||
|
||||
e = TimeEntryActivity.new(:name => 'Custom Data')
|
||||
e.custom_field_values = {field.id => "1"}
|
||||
assert e.save
|
||||
end
|
||||
|
||||
def test_update_issue_with_required_custom_field_change
|
||||
field = TimeEntryActivityCustomField.find_by_name('Billable')
|
||||
field.update_attribute(:is_required, true)
|
||||
|
||||
e = TimeEntryActivity.find(10)
|
||||
assert e.available_custom_fields.include?(field)
|
||||
# No change to custom field, record can be saved
|
||||
assert e.save
|
||||
# Blanking custom field, save should fail
|
||||
e.custom_field_values = {field.id => ""}
|
||||
assert !e.save
|
||||
assert e.errors.on(:custom_values)
|
||||
|
||||
# Update custom field to valid value, save should succeed
|
||||
e.custom_field_values = {field.id => "0"}
|
||||
assert e.save
|
||||
e.reload
|
||||
assert_equal "0", e.custom_value_for(field).value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user