aboutsummaryrefslogtreecommitdiffstats
path: root/test/json/json_fixtures_test.rb
diff options
context:
space:
mode:
authorhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-07-13 13:27:07 +0000
committerhsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-07-13 13:27:07 +0000
commit12de3530725e82542ef5fd6e3d75d4c72c65fc40 (patch)
treedde765297172e03671627888ffa8d38a69322c71 /test/json/json_fixtures_test.rb
parentbe72888d3d4aae3613b189090df7868afbf42a86 (diff)
downloadruby-12de3530725e82542ef5fd6e3d75d4c72c65fc40.tar.gz
* test/lib/test/unit.rb: added test files with `_test` suffix for json
upstream. * test/json: merge original test files from json upstream. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/json/json_fixtures_test.rb')
-rw-r--r--test/json/json_fixtures_test.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/json/json_fixtures_test.rb b/test/json/json_fixtures_test.rb
new file mode 100644
index 0000000000..01954fe707
--- /dev/null
+++ b/test/json/json_fixtures_test.rb
@@ -0,0 +1,32 @@
+#frozen_string_literal: false
+require 'test_helper'
+
+class JSONFixturesTest < Test::Unit::TestCase
+ def setup
+ fixtures = File.join(File.dirname(__FILE__), 'fixtures/{fail,pass}.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
+ begin
+ assert JSON.parse(source),
+ "Did not pass for fixture '#{name}': #{source.inspect}"
+ rescue => e
+ warn "\nCaught #{e.class}(#{e}) for fixture '#{name}': #{source.inspect}\n#{e.backtrace * "\n"}"
+ raise e
+ end
+ end
+ end
+
+ def test_failing
+ for name, source in @failed
+ assert_raise(JSON::ParserError, JSON::NestingError,
+ "Did not fail for fixture '#{name}': #{source.inspect}") do
+ JSON.parse(source)
+ end
+ end
+ end
+end