diff options
author | Florian Frank <flori@ping.de> | 2009-10-19 23:29:57 +0200 |
---|---|---|
committer | Florian Frank <flori@ping.de> | 2009-10-19 23:33:18 +0200 |
commit | 7bb08fc7dd1fb32baeb2a076a02885231a362fef (patch) | |
tree | 84ce80fce76f0117c71159d1926a775daf049bae /tests | |
parent | ed80ac83bca17c55aedfbc916b0431d81beeb521 (diff) | |
download | json-7bb08fc7dd1fb32baeb2a076a02885231a362fef.tar.gz |
added conversion to utf8 to generators as well
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_json_encoding.rb | 36 |
1 files changed, 23 insertions, 13 deletions
diff --git a/tests/test_json_encoding.rb b/tests/test_json_encoding.rb index f46b476..bfb3e60 100644 --- a/tests/test_json_encoding.rb +++ b/tests/test_json_encoding.rb @@ -14,7 +14,9 @@ class TC_JSONEncoding < Test::Unit::TestCase def setup @utf_8 = '["© ≠ €!"]' - @decoded = [ "© ≠ €!" ] + @parsed = [ "© ≠ €!" ] + @utf_16_data = Iconv.iconv('utf-16be', 'utf-8', @parsed.first) + @generated = '["\u00a9 \u2260 \u20ac!"]' if defined?(::Encoding) @utf_8_ascii_8bit = @utf_8.dup.force_encoding(Encoding::ASCII_8BIT) @utf_16be, = Iconv.iconv('utf-16be', 'utf-8', @utf_8) @@ -38,20 +40,28 @@ class TC_JSONEncoding < Test::Unit::TestCase end end - def test_decode - assert @decoded, JSON.parse(@utf_8) - assert @decoded, JSON.parse(@utf_16be) - assert @decoded, JSON.parse(@utf_16le) - assert @decoded, JSON.parse(@utf_32be) - assert @decoded, JSON.parse(@utf_32le) + def test_parse + assert_equal @parsed, JSON.parse(@utf_8) + assert_equal @parsed, JSON.parse(@utf_16be) + assert_equal @parsed, JSON.parse(@utf_16le) + assert_equal @parsed, JSON.parse(@utf_32be) + assert_equal @parsed, JSON.parse(@utf_32le) end - def test_decode_ascii_8bit - assert @decoded, JSON.parse(@utf_8_ascii_8bit) - assert @decoded, JSON.parse(@utf_16be_ascii_8bit) - assert @decoded, JSON.parse(@utf_16le_ascii_8bit) - assert @decoded, JSON.parse(@utf_32be_ascii_8bit) - assert @decoded, JSON.parse(@utf_32le_ascii_8bit) + def test_parse_ascii_8bit + assert_equal @parsed, JSON.parse(@utf_8_ascii_8bit) + assert_equal @parsed, JSON.parse(@utf_16be_ascii_8bit) + assert_equal @parsed, JSON.parse(@utf_16le_ascii_8bit) + assert_equal @parsed, JSON.parse(@utf_32be_ascii_8bit) + assert_equal @parsed, JSON.parse(@utf_32le_ascii_8bit) end + def test_generate + assert_equal @generated, JSON.generate(@parsed) + if defined?(::Encoding) + assert_equal @generated, JSON.generate(@utf_16_data) + else + assert_raises(JSON::GeneratorError) { JSON.generate(@utf_16_data) } + end + end end |