json_pure 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -40,7 +40,7 @@ EOT
40
40
 
41
41
  def test_unparse
42
42
  json = unparse(@hash)
43
- assert_equal(@json2, json)
43
+ assert_equal(JSON.parse(@json2), JSON.parse(json))
44
44
  parsed_json = parse(json)
45
45
  assert_equal(@hash, parsed_json)
46
46
  json = generate({1=>2})
@@ -51,7 +51,7 @@ EOT
51
51
 
52
52
  def test_unparse_pretty
53
53
  json = pretty_unparse(@hash)
54
- assert_equal(@json3, json)
54
+ assert_equal(JSON.parse(@json3), JSON.parse(json))
55
55
  parsed_json = parse(json)
56
56
  assert_equal(@hash, parsed_json)
57
57
  json = pretty_generate({1=>2})
@@ -71,6 +71,7 @@ EOT
71
71
  #assert s.check_circular
72
72
  h = { 1=>2 }
73
73
  h[3] = h
74
+ assert_raises(JSON::CircularDatastructure) { generate(h) }
74
75
  assert_raises(JSON::CircularDatastructure) { generate(h, s) }
75
76
  s = JSON.state.new(:check_circular => true)
76
77
  #assert s.check_circular
@@ -78,4 +79,22 @@ EOT
78
79
  a << a
79
80
  assert_raises(JSON::CircularDatastructure) { generate(a, s) }
80
81
  end
82
+
83
+ def test_allow_nan
84
+ assert_raises(GeneratorError) { generate([JSON::NaN]) }
85
+ assert_equal '[NaN]', generate([JSON::NaN], :allow_nan => true)
86
+ assert_equal '[NaN]', fast_generate([JSON::NaN])
87
+ assert_raises(GeneratorError) { pretty_generate([JSON::NaN]) }
88
+ assert_equal "[\n NaN\n]", pretty_generate([JSON::NaN], :allow_nan => true)
89
+ assert_raises(GeneratorError) { generate([JSON::Infinity]) }
90
+ assert_equal '[Infinity]', generate([JSON::Infinity], :allow_nan => true)
91
+ assert_equal '[Infinity]', fast_generate([JSON::Infinity])
92
+ assert_raises(GeneratorError) { pretty_generate([JSON::Infinity]) }
93
+ assert_equal "[\n Infinity\n]", pretty_generate([JSON::Infinity], :allow_nan => true)
94
+ assert_raises(GeneratorError) { generate([JSON::MinusInfinity]) }
95
+ assert_equal '[-Infinity]', generate([JSON::MinusInfinity], :allow_nan => true)
96
+ assert_equal '[-Infinity]', fast_generate([JSON::MinusInfinity])
97
+ assert_raises(GeneratorError) { pretty_generate([JSON::MinusInfinity]) }
98
+ assert_equal "[\n -Infinity\n]", pretty_generate([JSON::MinusInfinity], :allow_nan => true)
99
+ end
81
100
  end
@@ -40,13 +40,16 @@ class TC_JSONUnicode < Test::Unit::TestCase
40
40
  def test_chars
41
41
  (0..0x7f).each do |i|
42
42
  json = '["\u%04x"]' % i
43
+ if RUBY_VERSION >= "1.9."
44
+ i = i.chr
45
+ end
43
46
  assert_equal i, JSON.parse(json).first[0]
44
47
  if i == ?\b
45
48
  generated = JSON.generate(["" << i])
46
49
  assert '["\b"]' == generated || '["\10"]' == generated
47
50
  elsif [?\n, ?\r, ?\t, ?\f].include?(i)
48
51
  assert_equal '[' << ('' << i).dump << ']', JSON.generate(["" << i])
49
- elsif i < 0x20
52
+ elsif i.chr < 0x20.chr
50
53
  assert_equal json, JSON.generate(["" << i])
51
54
  end
52
55
  end
data/tools/fuzz.rb CHANGED
@@ -84,7 +84,8 @@ class MyState < JSON.state
84
84
  :space => make_spaces,
85
85
  :space_before => make_spaces,
86
86
  :object_nl => make_spaces,
87
- :array_nl => make_spaces
87
+ :array_nl => make_spaces,
88
+ :max_nesting => false
88
89
  )
89
90
  end
90
91
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: json_pure
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.0
7
- date: 2007-06-04 00:00:00 +02:00
6
+ version: 1.1.1
7
+ date: 2007-07-06 00:00:00 +02:00
8
8
  summary: A JSON implementation in Ruby
9
9
  require_paths:
10
10
  - lib
@@ -92,7 +92,6 @@ files:
92
92
  - ext/json/ext/generator/unicode.h
93
93
  - ext/json/ext/generator/extconf.rb
94
94
  - ext/json/ext/generator/generator.c
95
- - ext/json/ext/parser/parser.c
96
95
  - ext/json/ext/parser/unicode.c
97
96
  - ext/json/ext/parser/parser.rl
98
97
  - ext/json/ext/parser/unicode.h
@@ -108,6 +107,7 @@ files:
108
107
  - lib/json.rb
109
108
  - lib/json/FalseClass.xpm
110
109
  - lib/json/TrueClass.xpm
110
+ - lib/json/add
111
111
  - lib/json/ext.rb
112
112
  - lib/json/common.rb
113
113
  - lib/json/Hash.xpm
@@ -121,10 +121,13 @@ files:
121
121
  - lib/json/NilClass.xpm
122
122
  - lib/json/version.rb
123
123
  - lib/json/json.xpm
124
+ - lib/json/add/core.rb
125
+ - lib/json/add/rails.rb
124
126
  - lib/json/pure/parser.rb
125
127
  - lib/json/pure/generator.rb
126
128
  - tools/server.rb
127
129
  - tools/fuzz.rb
130
+ - ext/json/ext/parser/parser.c
128
131
  test_files:
129
132
  - tests/runner.rb
130
133
  rdoc_options: