json-schema 2.2.4 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTFiZGMyMzcwNTE3MmZlNzliZjQ1MTZkOGY5NjcxMGM4NjhhNjZkYQ==
4
+ ZWEyNDAyZWRhMzlhYTFjZjdhNDA0NTFkOGE5NmY3OWVmN2JlYjFmOA==
5
5
  data.tar.gz: !binary |-
6
- Yzc3NTEwMjg3MzdlOGJkOTJlNWVmMGQzYjFhMjRhNzZjZjY3NzI3Mg==
6
+ NDg2MjAzYWUxZjYzM2JlNTVkNTY0YTcyNjUwYjk4MDI3OWQyZjVmOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MTk3ZjM3YWY4MTExOGI0OGFlOTdhNjc0Y2U1YjdiNzBhNzJiNzM4NjcyMjM4
10
- NDcwOGM4ZWMxOTgyM2U0NjY4MGZjMmYyMmQ2MDAyZDg4NzdjY2RjZWE0YmY5
11
- MjJlMjk0MGJlNmViM2VjOGU1NDAxNWYzZWVhMTNkOWIzOTdhZWY=
9
+ YmNjZDBkNjg0MTVmMmU0NDdkZmI0NjcyODgwNjZmMDIzMTBiMmJkYzUwZDYx
10
+ NGI3NTY5ZDFmNTI3NmIxMTQyOTVjODNjNWNjOWMyY2E1YmUyMzY5YjJhMmIz
11
+ MWUwNmJmOGE5YzMxOTNhMjU2ZjIwNjYzNGE1ODgzYzc4NWRkYWI=
12
12
  data.tar.gz: !binary |-
13
- NGExNmQzMDMxZWVjODhiZWQxMzY1MTZkOWZkMjU0ZDczZGY0ZDA3MjMxYzE2
14
- MDNiNDZkOTg5ZDE3ZmZlNTQxMjQwNTQ5ZmQ2ODUyOWEwNDg1YTFmNTUyMmFk
15
- N2Y3NzE2NzE2YzA5Y2Y5MDg3N2I1NDBlNTM5YjJmMDcyNDNiMTI=
13
+ YzQ0NTQ1NmNiOWUwNDZjNzIzNTY0OGIzMzM3MzRkYzFhNzQxMTVkYjdmYjQ1
14
+ OGRmYjUzNjhjZjlmMjc3ZGUyODlhYzU0ZjcwMGQ2YjU1NDU0NmYxMGRiNGZj
15
+ M2E5ZWIwMmMwMDJkNzhlNDQ2YzI0NTJjMDg1YWVkOTBjMjgwNDQ=
@@ -24,7 +24,7 @@ From the git repo:
24
24
 
25
25
  <pre>
26
26
  $ gem build json-schema.gemspec
27
- $ gem install json-schema-2.2.4.gem
27
+ $ gem install json-schema-2.2.5.gem
28
28
  </pre>
29
29
 
30
30
 
@@ -78,7 +78,7 @@ JSON::Validator.validate('user.json', data, :list => true)
78
78
 
79
79
  h3. Strictly validate an object's properties
80
80
 
81
- With the <code>:strict</code>code> option, validation fails when an object contains properties that are not defined in the schema's property list or doesn't match the <code>additionalProperties</code> property. Furthermore, all properties are treated as <code>required</code> by default.
81
+ With the <code>:strict</code> option, validation fails when an object contains properties that are not defined in the schema's property list or doesn't match the <code>additionalProperties</code> property. Furthermore, all properties are treated as <code>required</code> by default.
82
82
 
83
83
  <pre>
84
84
  require 'rubygems'
@@ -107,7 +107,7 @@ module JSON
107
107
  if data.is_a?(String)
108
108
  error_message = "The property '#{build_fragment(fragments)}' must be a valid URI"
109
109
  begin
110
- URI.parse(data)
110
+ URI.parse(URI.escape(data))
111
111
  rescue URI::InvalidURIError
112
112
  validation_error(processor, error_message, fragments, current_schema, self, options[:record_errors])
113
113
  end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'test/unit'
2
3
  require File.dirname(__FILE__) + '/../lib/json-schema'
3
4
 
@@ -1092,6 +1093,7 @@ class JSONSchemaDraft3Test < Test::Unit::TestCase
1092
1093
  def test_format_uri
1093
1094
  data1 = {"a" => "http://gitbuh.com"}
1094
1095
  data2 = {"a" => "::boo"}
1096
+ data3 = {"a" => "http://ja.wikipedia.org/wiki/メインページ"}
1095
1097
 
1096
1098
  schema = {
1097
1099
  "$schema" => "http://json-schema.org/draft-03/schema#",
@@ -1101,6 +1103,7 @@ class JSONSchemaDraft3Test < Test::Unit::TestCase
1101
1103
 
1102
1104
  assert(JSON::Validator.validate(schema,data1))
1103
1105
  assert(!JSON::Validator.validate(schema,data2))
1106
+ assert(JSON::Validator.validate(schema,data3))
1104
1107
  end
1105
1108
 
1106
1109
 
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'test/unit'
2
3
  require File.dirname(__FILE__) + '/../lib/json-schema'
3
4
 
@@ -1011,6 +1012,7 @@ class JSONSchemaDraft4Test < Test::Unit::TestCase
1011
1012
  def test_format_uri
1012
1013
  data1 = {"a" => "http://gitbuh.com"}
1013
1014
  data2 = {"a" => "::boo"}
1015
+ data3 = {"a" => "http://ja.wikipedia.org/wiki/メインページ"}
1014
1016
 
1015
1017
  schema = {
1016
1018
  "$schema" => "http://json-schema.org/draft-04/schema#",
@@ -1020,6 +1022,7 @@ class JSONSchemaDraft4Test < Test::Unit::TestCase
1020
1022
 
1021
1023
  assert(JSON::Validator.validate(schema,data1))
1022
1024
  assert(!JSON::Validator.validate(schema,data2))
1025
+ assert(JSON::Validator.validate(schema,data3))
1023
1026
  end
1024
1027
 
1025
1028
 
@@ -0,0 +1,71 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/json-schema'
3
+
4
+ class SuiteTest < Test::Unit::TestCase
5
+ def test_draft_4
6
+ print "\n\nDRAFT-04 SUITE TESTS\n"
7
+ print "--------------------\n"
8
+ tests = 0
9
+ passes = 0
10
+ Dir.glob(File.dirname(__FILE__) + "/suite/tests/draft4/*.json").each do |file_path|
11
+ data = JSON.parse(File.read(file_path))
12
+ data.each do |test_desc|
13
+ puts "Suite Test: #{test_desc["description"]}"
14
+ test_desc["tests"].each do |test|
15
+ tests = tests + 1
16
+ print " - #{test["description"]}: "
17
+ begin
18
+ if JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft4) == test["valid"]
19
+ puts green("pass")
20
+ passes = passes + 1
21
+ else
22
+ puts "#{red("fail")} - expected #{test["valid"]}, got #{JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft4)}"
23
+ end
24
+ rescue
25
+ puts "#{red("fail")} - exception thrown"
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
32
+ def test_draft_3
33
+ print "\n\nDRAFT-03 SUITE TESTS\n"
34
+ print "--------------------\n"
35
+
36
+ tests = 0
37
+ passes = 0
38
+ Dir.glob(File.dirname(__FILE__) + "/suite/tests/draft3/*.json").each do |file_path|
39
+ data = JSON.parse(File.read(file_path))
40
+ data.each do |test_desc|
41
+ puts "Suite Test: #{test_desc["description"]}"
42
+ test_desc["tests"].each do |test|
43
+ tests = tests + 1
44
+ print " - #{test["description"]}: "
45
+ begin
46
+ if JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft3) == test["valid"]
47
+ puts green("pass")
48
+ passes = passes + 1
49
+ else
50
+ puts "#{red("fail")} - expected #{test["valid"]}, got #{JSON::Validator.validate(test_desc["schema"], test["data"], :version => :draft3)}"
51
+ end
52
+ rescue
53
+ puts "#{red("fail")} - exception thrown"
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ def colorize(color_code,text)
61
+ "\e[#{color_code}m#{text}\e[0m"
62
+ end
63
+
64
+ def red(text)
65
+ colorize(31,text)
66
+ end
67
+
68
+ def green(text)
69
+ colorize(32,text)
70
+ end
71
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
4
+ version: 2.2.5
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-07-19 00:00:00.000000000 Z
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: hoxworth@gmail.com
@@ -88,6 +88,7 @@ files:
88
88
  - test/test_ruby_schema.rb
89
89
  - test/test_schema_type_attribute.rb
90
90
  - test/test_schema_validation.rb
91
+ - test/test_suite.rb
91
92
  - test/data/all_of_ref_data.json
92
93
  - test/data/any_of_ref_data.json
93
94
  - test/data/bad_data_1.json
@@ -153,6 +154,7 @@ test_files:
153
154
  - test/test_ruby_schema.rb
154
155
  - test/test_schema_type_attribute.rb
155
156
  - test/test_schema_validation.rb
157
+ - test/test_suite.rb
156
158
  - test/data/all_of_ref_data.json
157
159
  - test/data/any_of_ref_data.json
158
160
  - test/data/bad_data_1.json