diff --git a/library/kernel/scanner/json_parser.e b/library/kernel/scanner/json_parser.e
index 089d28b5..a53e5a32 100644
--- a/library/kernel/scanner/json_parser.e
+++ b/library/kernel/scanner/json_parser.e
@@ -65,7 +65,7 @@ feature -- Commands
-- Parse JSON data `representation'
-- start ::= object | array
do
- if is_valid_start_symbol then
+ if is_valid_start_symbol then
Result := parse
if extra_elements then
is_parsed := False
diff --git a/test/autotest/test_suite/test_json_suite.e b/test/autotest/test_suite/test_json_suite.e
index f1b95a92..812fb391 100644
--- a/test/autotest/test_suite/test_json_suite.e
+++ b/test/autotest/test_suite/test_json_suite.e
@@ -24,351 +24,468 @@ feature {NONE} -- Events
create file_reader
end
-
feature -- Tests Pass
test_json_pass1
--
- do
- json_file:=file_reader.read_json_from (test_dir + "pass1.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("pass1.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("pass1.json",parse_json.is_parsed = True)
- end
+ assert ("pass1.json",parse_json.is_parsed = True)
+ end
+ end
test_json_pass2
--
- do
- json_file:=file_reader.read_json_from (test_dir +"pass2.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("pass2.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("pass2.json",parse_json.is_parsed = True)
- end
+ assert ("pass2.json",parse_json.is_parsed = True)
+ end
+ end
test_json_pass3
--
- do
- json_file:=file_reader.read_json_from (test_dir +"pass3.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("pass3.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("pass3.json",parse_json.is_parsed = True)
- end
+ assert ("pass3.json",parse_json.is_parsed = True)
+ end
+ end
feature -- Tests Failures
test_json_fail1
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail1.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail1.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail1.json",parse_json.is_parsed = False)
- end
+ assert ("fail1.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail2
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail2.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail2.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail2.json",parse_json.is_parsed = False)
- end
+ assert ("fail2.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail3
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail3.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail3.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail3.json",parse_json.is_parsed = False)
- end
+ assert ("fail3.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail4
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail4.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail4.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail4.json",parse_json.is_parsed = False)
- end
+ assert ("fail4.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail5
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail5.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail5.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail5.json",parse_json.is_parsed = False)
- end
+ assert ("fail5.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail6
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail6.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail6.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail6.json",parse_json.is_parsed = False )
- end
+ assert ("fail6.json",parse_json.is_parsed = False )
+ end
+ end
test_json_fail7
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail7.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail7.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail7.json",parse_json.is_parsed = False)
- end
+ assert ("fail7.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail8
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail8.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail8.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail8.json",parse_json.is_parsed = False )
- end
+ assert ("fail8.json",parse_json.is_parsed = False )
+ end
+ end
test_json_fail9
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail9.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail9.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail9.json",parse_json.is_parsed = False)
- end
+ assert ("fail9.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail10
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail10.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail10.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail10.json",parse_json.is_parsed = False)
- end
+ assert ("fail10.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail11
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail11.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail11.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail11.json",parse_json.is_parsed = False)
- end
+ assert ("fail11.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail12
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail12.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail12.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail12.json",parse_json.is_parsed = False)
- end
+ assert ("fail12.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail13
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail13.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail13.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail13.json",parse_json.is_parsed = False)
- end
+ assert ("fail13.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail14
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail14.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail14.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail14.json",parse_json.is_parsed = False)
- end
+ assert ("fail14.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail15
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail15.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail15.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail15.json",parse_json.is_parsed = False)
- end
+ assert ("fail15.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail16
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail16.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail16.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail16.json",parse_json.is_parsed = False)
- end
+ assert ("fail16.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail17
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail17.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail17.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail17.json",parse_json.is_parsed = False)
- end
+ assert ("fail17.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail18
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail18.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail18.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail18.json",parse_json.is_parsed = True)
- end
+ assert ("fail18.json",parse_json.is_parsed = True)
+ end
+ end
test_json_fail19
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail19.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail19.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail19.json",parse_json.is_parsed = False)
- end
+ assert ("fail19.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail20
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail20.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail20.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail20.json",parse_json.is_parsed = False)
- end
+ assert ("fail20.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail21
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail21.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail21.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail21.json",parse_json.is_parsed = False)
- end
+ assert ("fail21.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail22
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail22.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail22.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail22.json",parse_json.is_parsed = False)
- end
+ assert ("fail22.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail23
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail23.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail23.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail23.json",parse_json.is_parsed = False)
- end
+ assert ("fail23.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail24
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail24.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail24.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail24.json",parse_json.is_parsed = False)
- end
+ assert ("fail24.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail25
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail25.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail25.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail25.json",parse_json.is_parsed = False)
- end
+ assert ("fail25.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail26
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail26.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail26.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail26.json",parse_json.is_parsed = False)
- end
+ assert ("fail26.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail27
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail27.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail27.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail27.json",parse_json.is_parsed = False)
- end
+ assert ("fail27.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail28
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail28.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail28.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail28.json",parse_json.is_parsed = False)
- end
+ assert ("fail28.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail29
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail29.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail29.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail29.json",parse_json.is_parsed = False )
- end
+ assert ("fail29.json",parse_json.is_parsed = False )
+ end
+ end
test_json_fail30
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail30.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail30.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail30.json",parse_json.is_parsed = False)
- end
+ assert ("fail30.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail31
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail31.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail31.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail31.json",parse_json.is_parsed = False)
- end
+ assert ("fail31.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail32
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail32.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail32.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail32.json",parse_json.is_parsed = False)
- end
+ assert ("fail32.json",parse_json.is_parsed = False)
+ end
+ end
test_json_fail33
--
- do
- json_file:=file_reader.read_json_from (test_dir +"fail33.json")
- create parse_json.make_parser (json_file)
+ local
+ parse_json: like new_json_parser
+ do
+ if attached json_file_from ("fail33.json") as json_file then
+ parse_json := new_json_parser (json_file)
json_value := parse_json.parse_json
- assert ("fail33.json",parse_json.is_parsed = False)
- end
+ assert ("fail33.json",parse_json.is_parsed = False)
+ end
+ end
feature -- JSON_FROM_FILE
- json_file : STRING
- parse_json : JSON_PARSER
- json_object : JSON_OBJECT
- file_reader : JSON_FILE_READER
- json_value : JSON_VALUE
- test_dir : STRING
+ file_reader: JSON_FILE_READER
+
+ json_value: detachable JSON_VALUE
+
+ json_file_from (fn: STRING): detachable STRING
+ do
+ Result := file_reader.read_json_from (test_dir + fn)
+ assert ("File contains json data", Result /= Void)
+ end
+
+ new_json_parser (a_string: STRING): JSON_PARSER
+ do
+ create Result.make_parser (a_string)
+ end
+
+ test_dir: STRING
local
i: INTEGER
do
@@ -388,8 +505,10 @@ feature -- JSON_FROM_FILE
end
-- Result := "/home/jvelilla/work/project/Eiffel/ejson_dev/trunk/test/autotest/test_suite/"
end
- invariant
- file_reader /= Void
+
+invariant
+ file_reader /= Void
+
end
diff --git a/test/autotest/test_suite/test_suite-safe.ecf b/test/autotest/test_suite/test_suite-safe.ecf
index 35306669..83526831 100644
--- a/test/autotest/test_suite/test_suite-safe.ecf
+++ b/test/autotest/test_suite/test_suite-safe.ecf
@@ -7,7 +7,7 @@
/CVS$
/.svn$
-