summaryrefslogtreecommitdiffstats
path: root/test/json/test_json_fixtures.rb
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-04 12:31:26 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-04 12:31:26 +0000
commit4fac3a042baf75b31b7cc7d06ce9052d48ed9d92 (patch)
treefe952114fed9f49b11fa58533478ef130eddeba7 /test/json/test_json_fixtures.rb
parentacb1179cd8edcd48e74178acf7d65e6c71181199 (diff)
downloadruby-4fac3a042baf75b31b7cc7d06ce9052d48ed9d92.tar.gz
ruby-4fac3a042baf75b31b7cc7d06ce9052d48ed9d92.tar.xz
ruby-4fac3a042baf75b31b7cc7d06ce9052d48ed9d92.zip
* lib/json.rb, lib/json, ext/json, test/json:
import JSON library. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/json/test_json_fixtures.rb')
-rwxr-xr-xtest/json/test_json_fixtures.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/json/test_json_fixtures.rb b/test/json/test_json_fixtures.rb
new file mode 100755
index 000000000..665dcbd5e
--- /dev/null
+++ b/test/json/test_json_fixtures.rb
@@ -0,0 +1,30 @@
+#!/usr/bin/env ruby
+
+require 'test/unit'
+require 'json'
+
+class TC_JSONFixtures < Test::Unit::TestCase
+ def setup
+ $KCODE = 'UTF8'
+ fixtures = File.join(File.dirname(__FILE__), 'fixtures/*.json')
+ passed, failed = Dir[fixtures].partition { |f| f['pass'] }
+ @passed = passed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort
+ @failed = failed.inject([]) { |a, f| a << [ f, File.read(f) ] }.sort
+ end
+
+ def test_passing
+ for name, source in @passed
+ assert JSON.parse(source),
+ "Did not pass for fixture '#{name}'"
+ end
+ end
+
+ def test_failing
+ for name, source in @failed
+ assert_raises(JSON::ParserError, JSON::NestingError,
+ "Did not fail for fixture '#{name}'") do
+ JSON.parse(source)
+ end
+ end
+ end
+end