summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2009-10-19 23:29:57 +0200
committerFlorian Frank <flori@ping.de>2009-10-19 23:33:18 +0200
commit7bb08fc7dd1fb32baeb2a076a02885231a362fef (patch)
tree84ce80fce76f0117c71159d1926a775daf049bae /tests
parented80ac83bca17c55aedfbc916b0431d81beeb521 (diff)
downloadjson-7bb08fc7dd1fb32baeb2a076a02885231a362fef.tar.gz
added conversion to utf8 to generators as well
Diffstat (limited to 'tests')
-rw-r--r--tests/test_json_encoding.rb36
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