summaryrefslogtreecommitdiff
path: root/tests/json_parser_test.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2016-04-24 02:04:34 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2016-04-24 02:53:38 +0900
commitd5a77c8af98d9be4df53cecc4d876a23d7688f74 (patch)
treed6f8ee151d6daadda4cb7ec71b80282126606bd5 /tests/json_parser_test.rb
parentb94f1aa5d1708168ed2acdea0ee01269290666c5 (diff)
downloadjson-d5a77c8af98d9be4df53cecc4d876a23d7688f74.tar.gz
Exception encoding
Raise with messages in UTF-8 encoding.
Diffstat (limited to 'tests/json_parser_test.rb')
-rw-r--r--tests/json_parser_test.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/json_parser_test.rb b/tests/json_parser_test.rb
index 46fa47c..ee28578 100644
--- a/tests/json_parser_test.rb
+++ b/tests/json_parser_test.rb
@@ -17,6 +17,16 @@ class JSONParserTest < Test::Unit::TestCase
assert_equal Encoding::UTF_16, source.encoding
end if defined?(Encoding::UTF_16)
+ def test_error_message_encoding
+ bug10705 = '[ruby-core:67386] [Bug #10705]'
+ json = ".\"\xE2\x88\x9A\"".force_encoding(Encoding::UTF_8)
+ e = assert_raise(JSON::ParserError) {
+ JSON::Ext::Parser.new(json).parse
+ }
+ assert_equal(Encoding::UTF_8, e.message.encoding, bug10705)
+ assert_include(e.message, json, bug10705)
+ end if defined?(Encoding::UTF_8) and defined?(JSON::Ext::Parser)
+
def test_parsing
parser = JSON::Parser.new('"test"')
assert_equal 'test', parser.parse