aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/json/encoding_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/test/json/encoding_test.rb')
-rw-r--r--activesupport/test/json/encoding_test.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/activesupport/test/json/encoding_test.rb b/activesupport/test/json/encoding_test.rb
index fc3af02cbc..e745f5e190 100644
--- a/activesupport/test/json/encoding_test.rb
+++ b/activesupport/test/json/encoding_test.rb
@@ -432,6 +432,28 @@ EXPECTED
assert_equal '"foo"', ActiveSupport::JSON.encode(exception)
end
+ class InfiniteNumber
+ def as_json(options = nil)
+ { "number" => 1.0 / 0 }
+ end
+ end
+
+ def test_to_json_works_when_as_json_returns_infinite_number
+ expected = { number: nil }.to_json
+ assert_equal expected, InfiniteNumber.new.to_json
+ end
+
+ class NaNNumber
+ def as_json(options = nil)
+ { "number" => 0.0 / 0 }
+ end
+ end
+
+ def test_to_json_works_when_as_json_returns_NaN_number
+ expected = { number: nil }.to_json
+ assert_equal expected, NaNNumber.new.to_json
+ end
+
protected
def object_keys(json_object)