Add test for define_attribute_method using as name an invalid identifier
This commit is contained in:
parent
0eae625256
commit
cb44e99de4
@ -36,6 +36,21 @@ def attribute(name)
|
||||
end
|
||||
end
|
||||
|
||||
class ModelWithWeirdNamesAttributes
|
||||
include ActiveModel::AttributeMethods
|
||||
|
||||
attribute_method_suffix ''
|
||||
|
||||
def attributes
|
||||
{ :'a?b' => 'value of a?b' }
|
||||
end
|
||||
|
||||
private
|
||||
def attribute(name)
|
||||
attributes[name.to_sym]
|
||||
end
|
||||
end
|
||||
|
||||
class AttributeMethodsTest < ActiveModel::TestCase
|
||||
test 'unrelated classes should not share attribute method matchers' do
|
||||
assert_not_equal ModelWithAttributes.send(:attribute_method_matchers),
|
||||
@ -49,6 +64,14 @@ class AttributeMethodsTest < ActiveModel::TestCase
|
||||
assert_equal "value of foo", ModelWithAttributes.new.foo
|
||||
end
|
||||
|
||||
test '#define_attribute_method generates attribute method with invalid identifier characters' do
|
||||
ModelWithWeirdNamesAttributes.define_attribute_method(:'a?b')
|
||||
ModelWithWeirdNamesAttributes.define_attribute_method(:'a?b')
|
||||
|
||||
assert_respond_to ModelWithWeirdNamesAttributes.new, :'a?b'
|
||||
assert_equal "value of a?b", ModelWithWeirdNamesAttributes.new.send('a?b')
|
||||
end
|
||||
|
||||
test '#define_attribute_methods generates attribute methods' do
|
||||
ModelWithAttributes.define_attribute_methods([:foo])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user