aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/json/encoding_test.rb
diff options
context:
space:
mode:
authorGodfrey Chan <godfreykfc@gmail.com>2013-11-05 20:05:58 -0800
committerGodfrey Chan <godfreykfc@gmail.com>2013-11-05 22:26:45 -0800
commitff1192fea40c55a11c52e26f22a814d68d058170 (patch)
tree6cc0b55aeed8013c2bf9aa39dac0eb4f9733249d /activesupport/test/json/encoding_test.rb
parentdcee010ce8c05cd0180e691ca165d774fba60de7 (diff)
downloadrails-ff1192fea40c55a11c52e26f22a814d68d058170.tar.gz
rails-ff1192fea40c55a11c52e26f22a814d68d058170.tar.bz2
rails-ff1192fea40c55a11c52e26f22a814d68d058170.zip
Eliminate `JSON.{parse,load,generate,dump}` and `def to_json`
JSON.{dump,generate} offered by the JSON gem is not compatiable with Rails at the moment and can cause a lot of subtle bugs when passed certain data structures. This changed all direct usage of the JSON gem in internal Rails code to always go through AS::JSON.{decode,encode}. We also shouldn't be implementing `to_json` most of the time, and these occurances are replaced with an equivilent `as_json` implementation to avoid problems down the road. See [1] for all the juicy details. [1]: intridea/multi_json#138 (comment)
Diffstat (limited to 'activesupport/test/json/encoding_test.rb')
-rw-r--r--activesupport/test/json/encoding_test.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/activesupport/test/json/encoding_test.rb b/activesupport/test/json/encoding_test.rb
index ae8b8052ca..99120f1d2a 100644
--- a/activesupport/test/json/encoding_test.rb
+++ b/activesupport/test/json/encoding_test.rb
@@ -310,7 +310,7 @@ class TestJSONEncoding < ActiveSupport::TestCase
hash = {"foo" => f, "other_hash" => {"foo" => "other_foo", "test" => "other_test"}}
assert_equal({"foo"=>{"foo"=>"hello","bar"=>"world"},
- "other_hash" => {"foo"=>"other_foo","test"=>"other_test"}}, JSON.parse(hash.to_json))
+ "other_hash" => {"foo"=>"other_foo","test"=>"other_test"}}, ActiveSupport::JSON.decode(hash.to_json))
end
def test_struct_encoding
@@ -335,13 +335,13 @@ class TestJSONEncoding < ActiveSupport::TestCase
assert_equal({"name" => "David",
"sub" => {
"name" => "David",
- "date" => "2010-01-01" }}, JSON.parse(json_custom))
+ "date" => "2010-01-01" }}, ActiveSupport::JSON.decode(json_custom))
assert_equal({"name" => "David", "email" => "sample@example.com"},
- JSON.parse(json_strings))
+ ActiveSupport::JSON.decode(json_strings))
assert_equal({"name" => "David", "date" => "2010-01-01"},
- JSON.parse(json_string_and_date))
+ ActiveSupport::JSON.decode(json_string_and_date))
end
def test_opt_out_big_decimal_string_serialization