diff options
author | Emilio Tagua <miloops@gmail.com> | 2009-06-09 10:29:55 -0300 |
---|---|---|
committer | Emilio Tagua <miloops@gmail.com> | 2009-06-09 10:29:55 -0300 |
commit | 103b282130dd340143654801430aed787da4c9c6 (patch) | |
tree | eddbe800d02f1a3c23f6266b808e74656af31f82 /activesupport/test/json | |
parent | fd3c55f09fdfb45c33a5383af2c0b9ddf8f63e90 (diff) | |
parent | a94e7d7897a300a95d5d5a00c5efc573b42bcb58 (diff) | |
download | rails-103b282130dd340143654801430aed787da4c9c6.tar.gz rails-103b282130dd340143654801430aed787da4c9c6.tar.bz2 rails-103b282130dd340143654801430aed787da4c9c6.zip |
Merge commit 'rails/master'
Diffstat (limited to 'activesupport/test/json')
-rw-r--r-- | activesupport/test/json/encoding_test.rb | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/activesupport/test/json/encoding_test.rb b/activesupport/test/json/encoding_test.rb index 1a0e6d543c..983235d06c 100644 --- a/activesupport/test/json/encoding_test.rb +++ b/activesupport/test/json/encoding_test.rb @@ -9,6 +9,12 @@ class TestJSONEncoding < Test::Unit::TestCase end end + class Custom + def as_json(options) + 'custom' + end + end + TrueTests = [[ true, %(true) ]] FalseTests = [[ false, %(false) ]] NilTests = [[ nil, %(null) ]] @@ -27,6 +33,7 @@ class TestJSONEncoding < Test::Unit::TestCase [ :"a b", %("a b") ]] ObjectTests = [[ Foo.new(1, 2), %({\"a\":1,\"b\":2}) ]] + CustomTests = [[ Custom.new, '"custom"' ]] VariableTests = [[ ActiveSupport::JSON::Variable.new('foo'), 'foo'], [ ActiveSupport::JSON::Variable.new('alert("foo")'), 'alert("foo")']] @@ -76,7 +83,7 @@ class TestJSONEncoding < Test::Unit::TestCase def test_exception_raised_when_encoding_circular_reference a = [1] a << a - assert_raise(ActiveSupport::JSON::CircularReferenceError) { ActiveSupport::JSON.encode(a) } + assert_raise(ActiveSupport::JSON::Encoding::CircularReferenceError) { ActiveSupport::JSON.encode(a) } end def test_hash_key_identifiers_are_always_quoted @@ -129,11 +136,9 @@ end class JsonOptionsTests < Test::Unit::TestCase def test_enumerable_should_passthrough_options_to_elements - json_options = { :include => :posts } - ActiveSupport::JSON.expects(:encode).with(1, json_options) - ActiveSupport::JSON.expects(:encode).with(2, json_options) - ActiveSupport::JSON.expects(:encode).with('foo', json_options) - - [1, 2, 'foo'].send(:rails_to_json, json_options) + value, options = Object.new, Object.new + def value.as_json(options) options end + def options.encode_json(encoder) self end + assert_equal options, ActiveSupport::JSON.encode(value, options) end end |