json-schema 2.4.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +6 -14
- data/README.textile +58 -7
- data/lib/json-schema.rb +3 -1
- data/lib/json-schema/attributes/additionalitems.rb +14 -11
- data/lib/json-schema/attributes/additionalproperties.rb +33 -43
- data/lib/json-schema/attributes/anyof.rb +4 -0
- data/lib/json-schema/attributes/dependencies.rb +31 -19
- data/lib/json-schema/attributes/disallow.rb +2 -3
- data/lib/json-schema/attributes/divisibleby.rb +11 -7
- data/lib/json-schema/attributes/enum.rb +14 -16
- data/lib/json-schema/attributes/format.rb +4 -7
- data/lib/json-schema/attributes/formats/date_time_v4.rb +5 -8
- data/lib/json-schema/attributes/formats/ip.rb +41 -0
- data/lib/json-schema/attributes/formats/uri.rb +10 -8
- data/lib/json-schema/attributes/items.rb +15 -16
- data/lib/json-schema/attributes/limit.rb +179 -0
- data/lib/json-schema/attributes/maxdecimal.rb +7 -6
- data/lib/json-schema/attributes/multipleof.rb +4 -11
- data/lib/json-schema/attributes/not.rb +1 -1
- data/lib/json-schema/attributes/oneof.rb +15 -6
- data/lib/json-schema/attributes/pattern.rb +7 -6
- data/lib/json-schema/attributes/patternproperties.rb +9 -12
- data/lib/json-schema/attributes/properties.rb +55 -39
- data/lib/json-schema/attributes/properties_optional.rb +13 -12
- data/lib/json-schema/attributes/ref.rb +4 -4
- data/lib/json-schema/attributes/required.rb +16 -13
- data/lib/json-schema/attributes/type.rb +13 -18
- data/lib/json-schema/attributes/type_v4.rb +11 -18
- data/lib/json-schema/attributes/uniqueitems.rb +5 -7
- data/lib/json-schema/schema.rb +8 -8
- data/lib/json-schema/schema/#validator.rb# +37 -0
- data/lib/json-schema/schema/reader.rb +113 -0
- data/lib/json-schema/util/uri.rb +16 -0
- data/lib/json-schema/validator.rb +123 -128
- data/lib/json-schema/validators/draft1.rb +1 -1
- data/lib/json-schema/validators/draft2.rb +1 -1
- data/lib/json-schema/validators/draft3.rb +1 -1
- data/lib/json-schema/validators/draft4.rb +1 -1
- data/lib/json-schema/validators/hyper-draft4.rb +1 -1
- data/test/schemas/address_microformat.json +18 -0
- data/test/schemas/definition_schema.json +15 -0
- data/test/schemas/ref john with spaces schema.json +11 -0
- data/test/schemas/relative_definition_schema.json +8 -0
- data/test/test_all_of_ref_schema.rb +12 -15
- data/test/test_any_of_ref_schema.rb +7 -9
- data/test/test_bad_schema_ref.rb +18 -12
- data/test/test_common_test_suite.rb +45 -29
- data/test/test_custom_format.rb +2 -3
- data/test/test_definition.rb +15 -0
- data/test/test_extended_schema.rb +25 -31
- data/test/test_extends_and_additionalProperties.rb +23 -21
- data/test/test_files_v3.rb +14 -23
- data/test/test_fragment_resolution.rb +6 -7
- data/test/test_fragment_validation_with_ref.rb +2 -8
- data/test/test_full_validation.rb +2 -3
- data/test/test_helper.rb +46 -1
- data/test/test_initialize_data.rb +118 -0
- data/test/test_jsonschema_draft1.rb +48 -600
- data/test/test_jsonschema_draft2.rb +48 -699
- data/test/test_jsonschema_draft3.rb +91 -861
- data/test/test_jsonschema_draft4.rb +173 -812
- data/test/test_list_option.rb +6 -7
- data/test/{test_merge_misisng_values.rb → test_merge_missing_values.rb} +2 -3
- data/test/test_minitems.rb +2 -4
- data/test/test_one_of.rb +9 -19
- data/test/test_ruby_schema.rb +5 -14
- data/test/test_schema_loader.rb +74 -0
- data/test/test_schema_type_attribute.rb +2 -3
- data/test/test_schema_validation.rb +4 -5
- data/test/test_stringify.rb +2 -3
- data/test/test_uri_related.rb +67 -0
- data/test/test_validator.rb +53 -0
- metadata +129 -51
- data/lib/json-schema/attributes/dependencies_v4.rb +0 -27
- data/lib/json-schema/attributes/formats/ip4.rb +0 -20
- data/lib/json-schema/attributes/formats/ip6.rb +0 -20
- data/lib/json-schema/attributes/maximum.rb +0 -17
- data/lib/json-schema/attributes/maximum_inclusive.rb +0 -17
- data/lib/json-schema/attributes/maxitems.rb +0 -14
- data/lib/json-schema/attributes/maxlength.rb +0 -16
- data/lib/json-schema/attributes/maxproperties.rb +0 -14
- data/lib/json-schema/attributes/minimum.rb +0 -17
- data/lib/json-schema/attributes/minimum_inclusive.rb +0 -17
- data/lib/json-schema/attributes/minitems.rb +0 -14
- data/lib/json-schema/attributes/minlength.rb +0 -16
- data/lib/json-schema/attributes/minproperties.rb +0 -14
- data/lib/json-schema/attributes/properties_v4.rb +0 -58
- data/lib/json-schema/uri/file.rb +0 -36
    
        data/test/test_list_option.rb
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class ListOptionTest < Test | 
| 3 | 
            +
            class ListOptionTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_list_option_reusing_schemas
         | 
| 6 5 | 
             
                schema_hash = {
         | 
| 7 6 | 
             
                  "$schema" => "http://json-schema.org/draft-04/schema#",
         | 
| @@ -9,14 +8,14 @@ class ListOptionTest < Test::Unit::TestCase | |
| 9 8 | 
             
                  "properties" => { "a" => { "type" => "integer" } }
         | 
| 10 9 | 
             
                }
         | 
| 11 10 |  | 
| 12 | 
            -
                uri = URI.parse('http://example.com/item')
         | 
| 11 | 
            +
                uri = Addressable::URI.parse('http://example.com/item')
         | 
| 13 12 | 
             
                schema = JSON::Schema.new(schema_hash, uri)
         | 
| 14 13 | 
             
                JSON::Validator.add_schema(schema)
         | 
| 15 14 |  | 
| 16 15 | 
             
                data = {"a" => 1}
         | 
| 17 | 
            -
                 | 
| 16 | 
            +
                assert_valid uri.to_s, data
         | 
| 18 17 |  | 
| 19 18 | 
             
                data = [{"a" => 1}]
         | 
| 20 | 
            -
                 | 
| 19 | 
            +
                assert_valid uri.to_s, data, :list => true
         | 
| 21 20 | 
             
              end
         | 
| 22 | 
            -
            end
         | 
| 21 | 
            +
            end
         | 
| @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class MergeMissingValuesTest < Test | 
| 3 | 
            +
            class MergeMissingValuesTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_merge_missing_values_for_string
         | 
| 6 5 | 
             
                original = 'foo'
         | 
| 7 6 | 
             
                updated = 'foo'
         | 
    
        data/test/test_minitems.rb
    CHANGED
    
    | @@ -1,14 +1,12 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class MinItemsTest < Test | 
| 3 | 
            +
            class MinItemsTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_minitems_nils
         | 
| 6 5 | 
             
                schema = {
         | 
| 7 6 | 
             
                  "type" => "array",
         | 
| 8 7 | 
             
                  "minItems" => 1,
         | 
| 9 8 | 
             
                  "items" => { "type" => "object" }
         | 
| 10 9 | 
             
                }
         | 
| 11 | 
            -
                data = [nil]
         | 
| 12 10 |  | 
| 13 11 | 
             
                errors = JSON::Validator.fully_validate(schema, [nil])
         | 
| 14 12 | 
             
                assert_equal(errors.length, 1)
         | 
    
        data/test/test_one_of.rb
    CHANGED
    
    | @@ -1,15 +1,12 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class OneOfTest < Test | 
| 3 | 
            +
            class OneOfTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_one_of_links_schema
         | 
| 6 | 
            -
                schema =  | 
| 7 | 
            -
                data | 
| 8 | 
            -
                 | 
| 9 | 
            -
                assert(errors.empty?, errors.map{|e| e[:message] }.join("\n"))
         | 
| 5 | 
            +
                schema = schema_fixture_path('one_of_ref_links_schema.json')
         | 
| 6 | 
            +
                data   = data_fixture_path('one_of_ref_links_data.json')
         | 
| 7 | 
            +
                assert_valid schema, data
         | 
| 10 8 | 
             
              end
         | 
| 11 9 |  | 
| 12 | 
            -
             | 
| 13 10 | 
             
              def test_one_of_with_string_patterns
         | 
| 14 11 | 
             
                schema = {
         | 
| 15 12 | 
             
                  "$schema" => "http://json-schema.org/draft-04/schema#",
         | 
| @@ -26,17 +23,10 @@ class OneOfTest < Test::Unit::TestCase | |
| 26 23 | 
             
                  ]
         | 
| 27 24 | 
             
                }
         | 
| 28 25 |  | 
| 29 | 
            -
                 | 
| 30 | 
            -
                 | 
| 31 | 
            -
             | 
| 32 | 
            -
                 | 
| 33 | 
            -
                assert(!JSON::Validator.validate(schema,data))
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                data = {"a" => "baz"}
         | 
| 36 | 
            -
                assert(JSON::Validator.validate(schema,data))
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                data = {"a" => 5}
         | 
| 39 | 
            -
                assert(!JSON::Validator.validate(schema,data))
         | 
| 26 | 
            +
                assert_valid schema, { "a" => "foo" }
         | 
| 27 | 
            +
                refute_valid schema, { "a" => "foobar" }
         | 
| 28 | 
            +
                assert_valid schema, { "a" => "baz" }
         | 
| 29 | 
            +
                refute_valid schema, { "a" => 5 }
         | 
| 40 30 | 
             
              end
         | 
| 41 31 |  | 
| 42 32 | 
             
            end
         | 
    
        data/test/test_ruby_schema.rb
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class RubySchemaTest < Test | 
| 3 | 
            +
            class RubySchemaTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_string_keys
         | 
| 6 5 | 
             
                schema = {
         | 
| 7 6 | 
             
                  "type" => 'object',
         | 
| @@ -12,11 +11,7 @@ class RubySchemaTest < Test::Unit::TestCase | |
| 12 11 | 
             
                  }
         | 
| 13 12 | 
             
                }
         | 
| 14 13 |  | 
| 15 | 
            -
                 | 
| 16 | 
            -
                  "a" => 5
         | 
| 17 | 
            -
                }
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                assert(JSON::Validator.validate(schema, data))
         | 
| 14 | 
            +
                assert_valid schema, { "a" => 5 }
         | 
| 20 15 | 
             
              end
         | 
| 21 16 |  | 
| 22 17 | 
             
              def test_symbol_keys
         | 
| @@ -29,11 +24,7 @@ class RubySchemaTest < Test::Unit::TestCase | |
| 29 24 | 
             
                  }
         | 
| 30 25 | 
             
                }
         | 
| 31 26 |  | 
| 32 | 
            -
                 | 
| 33 | 
            -
                  :a => 5
         | 
| 34 | 
            -
                }
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                assert(JSON::Validator.validate(schema, data))
         | 
| 27 | 
            +
                assert_valid schema, { :a => 5 }
         | 
| 37 28 | 
             
              end
         | 
| 38 29 |  | 
| 39 30 | 
             
              def test_symbol_keys_in_hash_within_array
         | 
| @@ -63,6 +54,6 @@ class RubySchemaTest < Test::Unit::TestCase | |
| 63 54 | 
             
                  ]
         | 
| 64 55 | 
             
                }
         | 
| 65 56 |  | 
| 66 | 
            -
                 | 
| 57 | 
            +
                assert_valid schema, data, :validate_schema => true
         | 
| 67 58 | 
             
              end
         | 
| 68 59 | 
             
            end
         | 
| @@ -0,0 +1,74 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class TestSchemaReader < Minitest::Test
         | 
| 4 | 
            +
              ADDRESS_SCHEMA_URI  = 'http://json-schema.org/address'
         | 
| 5 | 
            +
              ADDRESS_SCHEMA_PATH = File.expand_path('../schemas/address_microformat.json', __FILE__)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              def stub_address_request(body = File.read(ADDRESS_SCHEMA_PATH))
         | 
| 8 | 
            +
                stub_request(:get, ADDRESS_SCHEMA_URI).
         | 
| 9 | 
            +
                  to_return(:body => body, :status => 200)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              def test_accept_all_uris
         | 
| 13 | 
            +
                stub_address_request
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                reader = JSON::Schema::Reader.new
         | 
| 16 | 
            +
                schema = reader.read(ADDRESS_SCHEMA_URI)
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                assert_equal schema.uri, Addressable::URI.parse("#{ADDRESS_SCHEMA_URI}#")
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def test_accept_all_files
         | 
| 22 | 
            +
                reader = JSON::Schema::Reader.new
         | 
| 23 | 
            +
                schema = reader.read(ADDRESS_SCHEMA_PATH)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                assert_equal schema.uri, Addressable::URI.convert_path(ADDRESS_SCHEMA_PATH + '#')
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              def test_refuse_all_uris
         | 
| 29 | 
            +
                reader = JSON::Schema::Reader.new(:accept_uri => false)
         | 
| 30 | 
            +
                refute reader.accept_uri?(Addressable::URI.parse('http://foo.com'))
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              def test_refuse_all_files
         | 
| 34 | 
            +
                reader = JSON::Schema::Reader.new(:accept_file => false)
         | 
| 35 | 
            +
                refute reader.accept_file?(Pathname.new('/foo/bar/baz'))
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              def test_accept_uri_proc
         | 
| 39 | 
            +
                reader = JSON::Schema::Reader.new(
         | 
| 40 | 
            +
                  :accept_uri => proc { |uri| uri.host == 'json-schema.org' }
         | 
| 41 | 
            +
                )
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                assert reader.accept_uri?(Addressable::URI.parse('http://json-schema.org/address'))
         | 
| 44 | 
            +
                refute reader.accept_uri?(Addressable::URI.parse('http://sub.json-schema.org/address'))
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              def test_accept_file_proc
         | 
| 48 | 
            +
                test_root = Pathname.new(__FILE__).expand_path.dirname
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                reader = JSON::Schema::Reader.new(
         | 
| 51 | 
            +
                  :accept_file => proc { |path| path.to_s.start_with?(test_root.to_s) }
         | 
| 52 | 
            +
                )
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                assert reader.accept_file?(test_root.join('anything.json'))
         | 
| 55 | 
            +
                refute reader.accept_file?(test_root.join('..', 'anything.json'))
         | 
| 56 | 
            +
              end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
              def test_file_scheme
         | 
| 59 | 
            +
                reader = JSON::Schema::Reader.new(:accept_uri => true, :accept_file => false)
         | 
| 60 | 
            +
                assert_raises(JSON::Schema::ReadRefused) do
         | 
| 61 | 
            +
                  reader.read('file://' + ADDRESS_SCHEMA_PATH)
         | 
| 62 | 
            +
                end
         | 
| 63 | 
            +
              end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              def test_parse_error
         | 
| 66 | 
            +
                stub_address_request('this is totally not valid JSON!')
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                reader = JSON::Schema::Reader.new
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                assert_raises(parser_error) do
         | 
| 71 | 
            +
                  reader.read(ADDRESS_SCHEMA_URI)
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
              end
         | 
| 74 | 
            +
            end
         | 
| @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class TestSchemaTypeAttribute < Test | 
| 3 | 
            +
            class TestSchemaTypeAttribute < Minitest::Test
         | 
| 5 4 | 
             
              def test_type_of_data
         | 
| 6 5 | 
             
                assert_equal(type_of_data(String.new), 'string')
         | 
| 7 6 | 
             
                assert_equal(type_of_data(Numeric.new), 'number')
         | 
| @@ -1,8 +1,7 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 2 2 | 
             
            require 'tmpdir'
         | 
| 3 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 4 3 |  | 
| 5 | 
            -
            class JSONSchemaValidation < Test | 
| 4 | 
            +
            class JSONSchemaValidation < Minitest::Test
         | 
| 6 5 | 
             
              def valid_schema_v3
         | 
| 7 6 | 
             
                {
         | 
| 8 7 | 
             
                  "$schema" => "http://json-schema.org/draft-03/schema#",
         | 
| @@ -135,7 +134,7 @@ class JSONSchemaValidation < Test::Unit::TestCase | |
| 135 134 |  | 
| 136 135 | 
             
                errors = JSON::Validator.fully_validate_schema(invalid_schema_v3, :version => :draft3)
         | 
| 137 136 | 
             
                assert_equal 1, errors.size
         | 
| 138 | 
            -
                assert_match | 
| 137 | 
            +
                assert_match(/the property .*required.*did not match/i, errors.first)
         | 
| 139 138 | 
             
              end
         | 
| 140 139 |  | 
| 141 140 |  | 
| @@ -151,7 +150,7 @@ class JSONSchemaValidation < Test::Unit::TestCase | |
| 151 150 |  | 
| 152 151 | 
             
                errors = JSON::Validator.fully_validate_schema(invalid_schema_v4, :version => :draft4)
         | 
| 153 152 | 
             
                assert_equal 1, errors.size
         | 
| 154 | 
            -
                assert_match | 
| 153 | 
            +
                assert_match(/the property .*required.*did not match/i, errors.first)
         | 
| 155 154 | 
             
              end
         | 
| 156 155 |  | 
| 157 156 | 
             
              def test_validate_schema_3_without_version_option
         | 
    
        data/test/test_stringify.rb
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 | 
            -
            require ' | 
| 2 | 
            -
            require File.dirname(__FILE__) + '/../lib/json-schema'
         | 
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 2 |  | 
| 4 | 
            -
            class StringifyTest < Test | 
| 3 | 
            +
            class StringifyTest < Minitest::Test
         | 
| 5 4 | 
             
              def test_stringify_on_hash
         | 
| 6 5 | 
             
                hash = {
         | 
| 7 6 | 
             
                  :a => 'foo',
         | 
| @@ -0,0 +1,67 @@ | |
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class UriRelatedTest < Minitest::Test
         | 
| 5 | 
            +
              def test_asian_characters
         | 
| 6 | 
            +
                schema = {
         | 
| 7 | 
            +
                  "$schema"=> "http://json-schema.org/draft-04/schema#",
         | 
| 8 | 
            +
                  "id"=> "http://俺:鍵@例え.テスト/p?条件#ここ#",
         | 
| 9 | 
            +
                  "type" => "object",
         | 
| 10 | 
            +
                  "required" => ["a"],
         | 
| 11 | 
            +
                  "properties" => {
         | 
| 12 | 
            +
                    "a" => {
         | 
| 13 | 
            +
                      "id" => "a",
         | 
| 14 | 
            +
                      "type" => "integer"
         | 
| 15 | 
            +
                    }
         | 
| 16 | 
            +
                  }
         | 
| 17 | 
            +
                }
         | 
| 18 | 
            +
                data = { "a" => 5 }
         | 
| 19 | 
            +
                assert_valid schema, data
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              def test_schema_ref_with_empty_fragment
         | 
| 23 | 
            +
                schema = {
         | 
| 24 | 
            +
                  "$schema" => "http://json-schema.org/draft-04/schema#",
         | 
| 25 | 
            +
                  "type" => "object",
         | 
| 26 | 
            +
                  "required" => ["names"],
         | 
| 27 | 
            +
                  "properties"=> {
         | 
| 28 | 
            +
                    "names"=> {
         | 
| 29 | 
            +
                      "type"=> "array",
         | 
| 30 | 
            +
                      "items"=> {
         | 
| 31 | 
            +
                        "anyOf"=> [
         | 
| 32 | 
            +
                          { "$ref" => "test/schemas/ref john with spaces schema.json#" },
         | 
| 33 | 
            +
                        ]
         | 
| 34 | 
            +
                      }
         | 
| 35 | 
            +
                    }
         | 
| 36 | 
            +
                  }
         | 
| 37 | 
            +
                }
         | 
| 38 | 
            +
                data = {"names" => [{"first" => "john"}]}
         | 
| 39 | 
            +
                assert_valid schema, data
         | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              def test_schema_ref_from_file_with_spaces
         | 
| 43 | 
            +
                schema = {
         | 
| 44 | 
            +
                  "$schema" => "http://json-schema.org/draft-04/schema#",
         | 
| 45 | 
            +
                  "type" => "object",
         | 
| 46 | 
            +
                  "required" => ["names"],
         | 
| 47 | 
            +
                  "properties"=> {
         | 
| 48 | 
            +
                    "names"=> {
         | 
| 49 | 
            +
                      "type"=> "array",
         | 
| 50 | 
            +
                      "items"=> {
         | 
| 51 | 
            +
                        "anyOf"=> [
         | 
| 52 | 
            +
                          { "$ref" => "test/schemas/ref john with spaces schema.json" }
         | 
| 53 | 
            +
                        ]
         | 
| 54 | 
            +
                      }
         | 
| 55 | 
            +
                    }
         | 
| 56 | 
            +
                  }
         | 
| 57 | 
            +
                }
         | 
| 58 | 
            +
                data = {"names" => [{"first" => "john"}]}
         | 
| 59 | 
            +
                assert_valid schema, data
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              def test_schema_from_file_with_spaces
         | 
| 63 | 
            +
                data = {"first" => "john"}
         | 
| 64 | 
            +
                schema = "test/schemas/ref john with spaces schema.json"
         | 
| 65 | 
            +
                assert_valid schema, data
         | 
| 66 | 
            +
              end
         | 
| 67 | 
            +
            end
         | 
| @@ -0,0 +1,53 @@ | |
| 1 | 
            +
            require File.expand_path('../test_helper', __FILE__)
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            class TestValidator < Minitest::Test
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              class MockReader
         | 
| 6 | 
            +
                def read(location)
         | 
| 7 | 
            +
                  schema = {
         | 
| 8 | 
            +
                    '$schema' => 'http://json-schema.org/draft-04/schema#',
         | 
| 9 | 
            +
                    'type' => 'string',
         | 
| 10 | 
            +
                    'minLength' => 2
         | 
| 11 | 
            +
                  }
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  JSON::Schema.new(schema, Addressable::URI.parse(location.to_s))
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              def setup
         | 
| 18 | 
            +
                @original_reader = JSON::Validator.schema_reader
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              def teardown
         | 
| 22 | 
            +
                JSON::Validator.schema_reader = @original_reader
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              def test_default_schema_reader
         | 
| 26 | 
            +
                reader = JSON::Validator.schema_reader
         | 
| 27 | 
            +
                assert reader.accept_uri?(Addressable::URI.parse('http://example.com'))
         | 
| 28 | 
            +
                assert reader.accept_file?(Pathname.new('/etc/passwd'))
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              def test_set_default_schema_reader
         | 
| 32 | 
            +
                JSON::Validator.schema_reader = MockReader.new
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                schema = { '$ref' => 'http://any.url/at/all' }
         | 
| 35 | 
            +
                assert_valid schema, 'abc'
         | 
| 36 | 
            +
                refute_valid schema, 'a'
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              def test_validate_with_reader
         | 
| 40 | 
            +
                reader = MockReader.new
         | 
| 41 | 
            +
                schema = { '$ref' => 'http://any.url/at/all' }
         | 
| 42 | 
            +
                assert_valid schema, 'abc', :schema_reader => reader
         | 
| 43 | 
            +
                refute_valid schema, 'a', :schema_reader => reader
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              def test_validate_list_with_reader
         | 
| 47 | 
            +
                reader = MockReader.new
         | 
| 48 | 
            +
                schema = { '$ref' => 'http://what.ever/schema' }
         | 
| 49 | 
            +
                assert_valid schema, ['abc', 'def'], :schema_reader => reader, :list => true
         | 
| 50 | 
            +
                refute_valid schema, ['abc', 'a'], :schema_reader => reader, :list => true
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,15 +1,85 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: json-schema
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2. | 
| 4 | 
            +
              version: 2.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Kenny Hoxworth
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 12 | 
            -
            dependencies: | 
| 11 | 
            +
            date: 2014-12-03 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: rake
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ">="
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 20 | 
            +
              type: :development
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ">="
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: minitest
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - "~>"
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '5.0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - "~>"
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '5.0'
         | 
| 41 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 42 | 
            +
              name: webmock
         | 
| 43 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 | 
            +
                requirements:
         | 
| 45 | 
            +
                - - ">="
         | 
| 46 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            +
                    version: '0'
         | 
| 48 | 
            +
              type: :development
         | 
| 49 | 
            +
              prerelease: false
         | 
| 50 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - ">="
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: '0'
         | 
| 55 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            +
              name: bundler
         | 
| 57 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ">="
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0'
         | 
| 62 | 
            +
              type: :development
         | 
| 63 | 
            +
              prerelease: false
         | 
| 64 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 | 
            +
                requirements:
         | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            +
                    version: '0'
         | 
| 69 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 70 | 
            +
              name: addressable
         | 
| 71 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 | 
            +
                requirements:
         | 
| 73 | 
            +
                - - "~>"
         | 
| 74 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            +
                    version: '2.3'
         | 
| 76 | 
            +
              type: :runtime
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - "~>"
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: '2.3'
         | 
| 13 83 | 
             
            description: 
         | 
| 14 84 | 
             
            email: hoxworth@gmail.com
         | 
| 15 85 | 
             
            executables: []
         | 
| @@ -18,13 +88,15 @@ extra_rdoc_files: | |
| 18 88 | 
             
            - README.textile
         | 
| 19 89 | 
             
            - LICENSE.md
         | 
| 20 90 | 
             
            files:
         | 
| 91 | 
            +
            - LICENSE.md
         | 
| 92 | 
            +
            - README.textile
         | 
| 93 | 
            +
            - lib/json-schema.rb
         | 
| 21 94 | 
             
            - lib/json-schema/attribute.rb
         | 
| 22 95 | 
             
            - lib/json-schema/attributes/additionalitems.rb
         | 
| 23 96 | 
             
            - lib/json-schema/attributes/additionalproperties.rb
         | 
| 24 97 | 
             
            - lib/json-schema/attributes/allof.rb
         | 
| 25 98 | 
             
            - lib/json-schema/attributes/anyof.rb
         | 
| 26 99 | 
             
            - lib/json-schema/attributes/dependencies.rb
         | 
| 27 | 
            -
            - lib/json-schema/attributes/dependencies_v4.rb
         | 
| 28 100 | 
             
            - lib/json-schema/attributes/disallow.rb
         | 
| 29 101 | 
             
            - lib/json-schema/attributes/divisibleby.rb
         | 
| 30 102 | 
             
            - lib/json-schema/attributes/enum.rb
         | 
| @@ -34,22 +106,12 @@ files: | |
| 34 106 | 
             
            - lib/json-schema/attributes/formats/date.rb
         | 
| 35 107 | 
             
            - lib/json-schema/attributes/formats/date_time.rb
         | 
| 36 108 | 
             
            - lib/json-schema/attributes/formats/date_time_v4.rb
         | 
| 37 | 
            -
            - lib/json-schema/attributes/formats/ | 
| 38 | 
            -
            - lib/json-schema/attributes/formats/ip6.rb
         | 
| 109 | 
            +
            - lib/json-schema/attributes/formats/ip.rb
         | 
| 39 110 | 
             
            - lib/json-schema/attributes/formats/time.rb
         | 
| 40 111 | 
             
            - lib/json-schema/attributes/formats/uri.rb
         | 
| 41 112 | 
             
            - lib/json-schema/attributes/items.rb
         | 
| 113 | 
            +
            - lib/json-schema/attributes/limit.rb
         | 
| 42 114 | 
             
            - lib/json-schema/attributes/maxdecimal.rb
         | 
| 43 | 
            -
            - lib/json-schema/attributes/maximum.rb
         | 
| 44 | 
            -
            - lib/json-schema/attributes/maximum_inclusive.rb
         | 
| 45 | 
            -
            - lib/json-schema/attributes/maxitems.rb
         | 
| 46 | 
            -
            - lib/json-schema/attributes/maxlength.rb
         | 
| 47 | 
            -
            - lib/json-schema/attributes/maxproperties.rb
         | 
| 48 | 
            -
            - lib/json-schema/attributes/minimum.rb
         | 
| 49 | 
            -
            - lib/json-schema/attributes/minimum_inclusive.rb
         | 
| 50 | 
            -
            - lib/json-schema/attributes/minitems.rb
         | 
| 51 | 
            -
            - lib/json-schema/attributes/minlength.rb
         | 
| 52 | 
            -
            - lib/json-schema/attributes/minproperties.rb
         | 
| 53 115 | 
             
            - lib/json-schema/attributes/multipleof.rb
         | 
| 54 116 | 
             
            - lib/json-schema/attributes/not.rb
         | 
| 55 117 | 
             
            - lib/json-schema/attributes/oneof.rb
         | 
| @@ -57,7 +119,6 @@ files: | |
| 57 119 | 
             
            - lib/json-schema/attributes/patternproperties.rb
         | 
| 58 120 | 
             
            - lib/json-schema/attributes/properties.rb
         | 
| 59 121 | 
             
            - lib/json-schema/attributes/properties_optional.rb
         | 
| 60 | 
            -
            - lib/json-schema/attributes/properties_v4.rb
         | 
| 61 122 | 
             
            - lib/json-schema/attributes/ref.rb
         | 
| 62 123 | 
             
            - lib/json-schema/attributes/required.rb
         | 
| 63 124 | 
             
            - lib/json-schema/attributes/type.rb
         | 
| @@ -67,10 +128,12 @@ files: | |
| 67 128 | 
             
            - lib/json-schema/errors/json_parse_error.rb
         | 
| 68 129 | 
             
            - lib/json-schema/errors/schema_error.rb
         | 
| 69 130 | 
             
            - lib/json-schema/errors/validation_error.rb
         | 
| 70 | 
            -
            - lib/json-schema/schema/validator.rb
         | 
| 71 131 | 
             
            - lib/json-schema/schema.rb
         | 
| 72 | 
            -
            - lib/json-schema/ | 
| 132 | 
            +
            - lib/json-schema/schema/#validator.rb#
         | 
| 133 | 
            +
            - lib/json-schema/schema/reader.rb
         | 
| 134 | 
            +
            - lib/json-schema/schema/validator.rb
         | 
| 73 135 | 
             
            - lib/json-schema/util/array_set.rb
         | 
| 136 | 
            +
            - lib/json-schema/util/uri.rb
         | 
| 74 137 | 
             
            - lib/json-schema/util/uuid.rb
         | 
| 75 138 | 
             
            - lib/json-schema/validator.rb
         | 
| 76 139 | 
             
            - lib/json-schema/validators/draft1.rb
         | 
| @@ -78,48 +141,23 @@ files: | |
| 78 141 | 
             
            - lib/json-schema/validators/draft3.rb
         | 
| 79 142 | 
             
            - lib/json-schema/validators/draft4.rb
         | 
| 80 143 | 
             
            - lib/json-schema/validators/hyper-draft4.rb
         | 
| 81 | 
            -
            - lib/json-schema.rb
         | 
| 82 144 | 
             
            - resources/draft-01.json
         | 
| 83 145 | 
             
            - resources/draft-02.json
         | 
| 84 146 | 
             
            - resources/draft-03.json
         | 
| 85 147 | 
             
            - resources/draft-04.json
         | 
| 86 | 
            -
            - README.textile
         | 
| 87 | 
            -
            - LICENSE.md
         | 
| 88 | 
            -
            - test/test_all_of_ref_schema.rb
         | 
| 89 | 
            -
            - test/test_any_of_ref_schema.rb
         | 
| 90 | 
            -
            - test/test_bad_schema_ref.rb
         | 
| 91 | 
            -
            - test/test_common_test_suite.rb
         | 
| 92 | 
            -
            - test/test_custom_format.rb
         | 
| 93 | 
            -
            - test/test_extended_schema.rb
         | 
| 94 | 
            -
            - test/test_extends_and_additionalProperties.rb
         | 
| 95 | 
            -
            - test/test_files_v3.rb
         | 
| 96 | 
            -
            - test/test_fragment_resolution.rb
         | 
| 97 | 
            -
            - test/test_fragment_validation_with_ref.rb
         | 
| 98 | 
            -
            - test/test_full_validation.rb
         | 
| 99 | 
            -
            - test/test_helper.rb
         | 
| 100 | 
            -
            - test/test_jsonschema_draft1.rb
         | 
| 101 | 
            -
            - test/test_jsonschema_draft2.rb
         | 
| 102 | 
            -
            - test/test_jsonschema_draft3.rb
         | 
| 103 | 
            -
            - test/test_jsonschema_draft4.rb
         | 
| 104 | 
            -
            - test/test_list_option.rb
         | 
| 105 | 
            -
            - test/test_merge_misisng_values.rb
         | 
| 106 | 
            -
            - test/test_minitems.rb
         | 
| 107 | 
            -
            - test/test_one_of.rb
         | 
| 108 | 
            -
            - test/test_ruby_schema.rb
         | 
| 109 | 
            -
            - test/test_schema_type_attribute.rb
         | 
| 110 | 
            -
            - test/test_schema_validation.rb
         | 
| 111 | 
            -
            - test/test_stringify.rb
         | 
| 112 148 | 
             
            - test/data/all_of_ref_data.json
         | 
| 113 149 | 
             
            - test/data/any_of_ref_data.json
         | 
| 114 150 | 
             
            - test/data/bad_data_1.json
         | 
| 115 151 | 
             
            - test/data/good_data_1.json
         | 
| 116 152 | 
             
            - test/data/one_of_ref_links_data.json
         | 
| 153 | 
            +
            - test/schemas/address_microformat.json
         | 
| 117 154 | 
             
            - test/schemas/all_of_ref_base_schema.json
         | 
| 118 155 | 
             
            - test/schemas/all_of_ref_schema.json
         | 
| 119 156 | 
             
            - test/schemas/any_of_ref_jane_schema.json
         | 
| 120 157 | 
             
            - test/schemas/any_of_ref_jimmy_schema.json
         | 
| 121 158 | 
             
            - test/schemas/any_of_ref_john_schema.json
         | 
| 122 159 | 
             
            - test/schemas/any_of_ref_schema.json
         | 
| 160 | 
            +
            - test/schemas/definition_schema.json
         | 
| 123 161 | 
             
            - test/schemas/extends_and_additionalProperties-1-filename.schema.json
         | 
| 124 162 | 
             
            - test/schemas/extends_and_additionalProperties-1-ref.schema.json
         | 
| 125 163 | 
             
            - test/schemas/extends_and_additionalProperties-2-filename.schema.json
         | 
| @@ -130,9 +168,40 @@ files: | |
| 130 168 | 
             
            - test/schemas/good_schema_extends2.json
         | 
| 131 169 | 
             
            - test/schemas/inner.schema.json
         | 
| 132 170 | 
             
            - test/schemas/one_of_ref_links_schema.json
         | 
| 171 | 
            +
            - test/schemas/ref john with spaces schema.json
         | 
| 172 | 
            +
            - test/schemas/relative_definition_schema.json
         | 
| 133 173 | 
             
            - test/schemas/self_link_schema.json
         | 
| 134 174 | 
             
            - test/schemas/up_link_schema.json
         | 
| 135 | 
            -
             | 
| 175 | 
            +
            - test/test_all_of_ref_schema.rb
         | 
| 176 | 
            +
            - test/test_any_of_ref_schema.rb
         | 
| 177 | 
            +
            - test/test_bad_schema_ref.rb
         | 
| 178 | 
            +
            - test/test_common_test_suite.rb
         | 
| 179 | 
            +
            - test/test_custom_format.rb
         | 
| 180 | 
            +
            - test/test_definition.rb
         | 
| 181 | 
            +
            - test/test_extended_schema.rb
         | 
| 182 | 
            +
            - test/test_extends_and_additionalProperties.rb
         | 
| 183 | 
            +
            - test/test_files_v3.rb
         | 
| 184 | 
            +
            - test/test_fragment_resolution.rb
         | 
| 185 | 
            +
            - test/test_fragment_validation_with_ref.rb
         | 
| 186 | 
            +
            - test/test_full_validation.rb
         | 
| 187 | 
            +
            - test/test_helper.rb
         | 
| 188 | 
            +
            - test/test_initialize_data.rb
         | 
| 189 | 
            +
            - test/test_jsonschema_draft1.rb
         | 
| 190 | 
            +
            - test/test_jsonschema_draft2.rb
         | 
| 191 | 
            +
            - test/test_jsonschema_draft3.rb
         | 
| 192 | 
            +
            - test/test_jsonschema_draft4.rb
         | 
| 193 | 
            +
            - test/test_list_option.rb
         | 
| 194 | 
            +
            - test/test_merge_missing_values.rb
         | 
| 195 | 
            +
            - test/test_minitems.rb
         | 
| 196 | 
            +
            - test/test_one_of.rb
         | 
| 197 | 
            +
            - test/test_ruby_schema.rb
         | 
| 198 | 
            +
            - test/test_schema_loader.rb
         | 
| 199 | 
            +
            - test/test_schema_type_attribute.rb
         | 
| 200 | 
            +
            - test/test_schema_validation.rb
         | 
| 201 | 
            +
            - test/test_stringify.rb
         | 
| 202 | 
            +
            - test/test_uri_related.rb
         | 
| 203 | 
            +
            - test/test_validator.rb
         | 
| 204 | 
            +
            homepage: http://github.com/ruby-json-schema/json-schema/tree/master
         | 
| 136 205 | 
             
            licenses:
         | 
| 137 206 | 
             
            - MIT
         | 
| 138 207 | 
             
            metadata: {}
         | 
| @@ -142,17 +211,17 @@ require_paths: | |
| 142 211 | 
             
            - lib
         | 
| 143 212 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 144 213 | 
             
              requirements:
         | 
| 145 | 
            -
              - -  | 
| 214 | 
            +
              - - ">="
         | 
| 146 215 | 
             
                - !ruby/object:Gem::Version
         | 
| 147 216 | 
             
                  version: 1.8.7
         | 
| 148 217 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 149 218 | 
             
              requirements:
         | 
| 150 | 
            -
              - -  | 
| 219 | 
            +
              - - ">="
         | 
| 151 220 | 
             
                - !ruby/object:Gem::Version
         | 
| 152 221 | 
             
                  version: '1.8'
         | 
| 153 222 | 
             
            requirements: []
         | 
| 154 223 | 
             
            rubyforge_project: 
         | 
| 155 | 
            -
            rubygems_version: 2. | 
| 224 | 
            +
            rubygems_version: 2.2.2
         | 
| 156 225 | 
             
            signing_key: 
         | 
| 157 226 | 
             
            specification_version: 4
         | 
| 158 227 | 
             
            summary: Ruby JSON Schema Validator
         | 
| @@ -162,6 +231,7 @@ test_files: | |
| 162 231 | 
             
            - test/test_bad_schema_ref.rb
         | 
| 163 232 | 
             
            - test/test_common_test_suite.rb
         | 
| 164 233 | 
             
            - test/test_custom_format.rb
         | 
| 234 | 
            +
            - test/test_definition.rb
         | 
| 165 235 | 
             
            - test/test_extended_schema.rb
         | 
| 166 236 | 
             
            - test/test_extends_and_additionalProperties.rb
         | 
| 167 237 | 
             
            - test/test_files_v3.rb
         | 
| @@ -169,29 +239,35 @@ test_files: | |
| 169 239 | 
             
            - test/test_fragment_validation_with_ref.rb
         | 
| 170 240 | 
             
            - test/test_full_validation.rb
         | 
| 171 241 | 
             
            - test/test_helper.rb
         | 
| 242 | 
            +
            - test/test_initialize_data.rb
         | 
| 172 243 | 
             
            - test/test_jsonschema_draft1.rb
         | 
| 173 244 | 
             
            - test/test_jsonschema_draft2.rb
         | 
| 174 245 | 
             
            - test/test_jsonschema_draft3.rb
         | 
| 175 246 | 
             
            - test/test_jsonschema_draft4.rb
         | 
| 176 247 | 
             
            - test/test_list_option.rb
         | 
| 177 | 
            -
            - test/ | 
| 248 | 
            +
            - test/test_merge_missing_values.rb
         | 
| 178 249 | 
             
            - test/test_minitems.rb
         | 
| 179 250 | 
             
            - test/test_one_of.rb
         | 
| 180 251 | 
             
            - test/test_ruby_schema.rb
         | 
| 252 | 
            +
            - test/test_schema_loader.rb
         | 
| 181 253 | 
             
            - test/test_schema_type_attribute.rb
         | 
| 182 254 | 
             
            - test/test_schema_validation.rb
         | 
| 183 255 | 
             
            - test/test_stringify.rb
         | 
| 256 | 
            +
            - test/test_uri_related.rb
         | 
| 257 | 
            +
            - test/test_validator.rb
         | 
| 184 258 | 
             
            - test/data/all_of_ref_data.json
         | 
| 185 259 | 
             
            - test/data/any_of_ref_data.json
         | 
| 186 260 | 
             
            - test/data/bad_data_1.json
         | 
| 187 261 | 
             
            - test/data/good_data_1.json
         | 
| 188 262 | 
             
            - test/data/one_of_ref_links_data.json
         | 
| 263 | 
            +
            - test/schemas/address_microformat.json
         | 
| 189 264 | 
             
            - test/schemas/all_of_ref_base_schema.json
         | 
| 190 265 | 
             
            - test/schemas/all_of_ref_schema.json
         | 
| 191 266 | 
             
            - test/schemas/any_of_ref_jane_schema.json
         | 
| 192 267 | 
             
            - test/schemas/any_of_ref_jimmy_schema.json
         | 
| 193 268 | 
             
            - test/schemas/any_of_ref_john_schema.json
         | 
| 194 269 | 
             
            - test/schemas/any_of_ref_schema.json
         | 
| 270 | 
            +
            - test/schemas/definition_schema.json
         | 
| 195 271 | 
             
            - test/schemas/extends_and_additionalProperties-1-filename.schema.json
         | 
| 196 272 | 
             
            - test/schemas/extends_and_additionalProperties-1-ref.schema.json
         | 
| 197 273 | 
             
            - test/schemas/extends_and_additionalProperties-2-filename.schema.json
         | 
| @@ -202,5 +278,7 @@ test_files: | |
| 202 278 | 
             
            - test/schemas/good_schema_extends2.json
         | 
| 203 279 | 
             
            - test/schemas/inner.schema.json
         | 
| 204 280 | 
             
            - test/schemas/one_of_ref_links_schema.json
         | 
| 281 | 
            +
            - test/schemas/ref john with spaces schema.json
         | 
| 282 | 
            +
            - test/schemas/relative_definition_schema.json
         | 
| 205 283 | 
             
            - test/schemas/self_link_schema.json
         | 
| 206 284 | 
             
            - test/schemas/up_link_schema.json
         |