Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1263)

Unified Diff: tests/utils/json_test.dart

Issue 136373002: Fix JSON encoder accepting NaN and Infinity. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/lib/json/json_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/utils/json_test.dart
diff --git a/tests/utils/json_test.dart b/tests/utils/json_test.dart
deleted file mode 100644
index ad811d792614a303ce251db2085dcb1420663267..0000000000000000000000000000000000000000
--- a/tests/utils/json_test.dart
+++ /dev/null
@@ -1,178 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library jsonTest;
-
-import "package:expect/expect.dart";
-import 'dart:convert';
-
-main() {
- testEscaping();
- testParse();
- testParseInvalid();
-}
-
-void testParse() {
- // Scalars.
- Expect.equals(5, JSON.decode(' 5 '));
- Expect.equals(-42, JSON.decode(' -42 '));
- Expect.equals(3, JSON.decode(' 3e0 '));
- Expect.equals(3.14, JSON.decode(' 3.14 '));
- Expect.equals(1.0E-06, JSON.decode(' 1.0E-06 '));
- Expect.equals(0, JSON.decode("0"));
- Expect.equals(1, JSON.decode("1"));
- Expect.equals(0.1, JSON.decode("0.1"));
- Expect.equals(1.1, JSON.decode("1.1"));
- Expect.equals(1.1, JSON.decode("1.100000"));
- Expect.equals(1.111111, JSON.decode("1.111111"));
- Expect.equals(-0, JSON.decode("-0"));
- Expect.equals(-1, JSON.decode("-1"));
- Expect.equals(-0.1, JSON.decode("-0.1"));
- Expect.equals(-1.1, JSON.decode("-1.1"));
- Expect.equals(-1.1, JSON.decode("-1.100000"));
- Expect.equals(-1.111111, JSON.decode("-1.111111"));
- Expect.equals(11, JSON.decode("1.1e1"));
- Expect.equals(11, JSON.decode("1.1e+1"));
- Expect.equals(0.11, JSON.decode("1.1e-1"));
- Expect.equals(11, JSON.decode("1.1E1"));
- Expect.equals(11, JSON.decode("1.1E+1"));
- Expect.equals(0.11, JSON.decode("1.1E-1"));
- Expect.equals(1E0, JSON.decode(" 1E0"));
- Expect.equals(1E+0, JSON.decode(" 1E+0"));
- Expect.equals(1E-0, JSON.decode(" 1E-0"));
- Expect.equals(1E00, JSON.decode(" 1E00"));
- Expect.equals(1E+00, JSON.decode(" 1E+00"));
- Expect.equals(1E-00, JSON.decode(" 1E-00"));
- Expect.equals(1E+10, JSON.decode(" 1E+10"));
- Expect.equals(1E+010, JSON.decode(" 1E+010"));
- Expect.equals(1E+0010, JSON.decode(" 1E+0010"));
- Expect.equals(1E10, JSON.decode(" 1E10"));
- Expect.equals(1E010, JSON.decode(" 1E010"));
- Expect.equals(1E0010, JSON.decode(" 1E0010"));
- Expect.equals(1E-10, JSON.decode(" 1E-10"));
- Expect.equals(1E-0010, JSON.decode(" 1E-0010"));
- Expect.equals(1E0, JSON.decode(" 1e0"));
- Expect.equals(1E+0, JSON.decode(" 1e+0"));
- Expect.equals(1E-0, JSON.decode(" 1e-0"));
- Expect.equals(1E00, JSON.decode(" 1e00"));
- Expect.equals(1E+00, JSON.decode(" 1e+00"));
- Expect.equals(1E-00, JSON.decode(" 1e-00"));
- Expect.equals(1E+10, JSON.decode(" 1e+10"));
- Expect.equals(1E+010, JSON.decode(" 1e+010"));
- Expect.equals(1E+0010, JSON.decode(" 1e+0010"));
- Expect.equals(1E10, JSON.decode(" 1e10"));
- Expect.equals(1E010, JSON.decode(" 1e010"));
- Expect.equals(1E0010, JSON.decode(" 1e0010"));
- Expect.equals(1E-10, JSON.decode(" 1e-10"));
- Expect.equals(1E-0010, JSON.decode(" 1e-0010"));
- Expect.equals(true, JSON.decode(' true '));
- Expect.equals(false, JSON.decode(' false'));
- Expect.equals(null, JSON.decode(' null '));
- Expect.equals(null, JSON.decode('\n\rnull\t'));
- Expect.equals('hi there" bob', JSON.decode(' "hi there\\" bob" '));
- Expect.equals('', JSON.decode(' "" '));
-
- // Lists.
- Expect.listEquals([], JSON.decode(' [] '));
- Expect.listEquals(["entry"], JSON.decode(' ["entry"] '));
- Expect.listEquals([true, false], JSON.decode(' [true, false] '));
- Expect.listEquals([1, 2, 3], JSON.decode(' [ 1 , 2 , 3 ] '));
-
- // Maps.
- Expect.mapEquals({}, JSON.decode(' {} '));
- Expect.mapEquals({"key": "value"}, JSON.decode(' {"key": "value" } '));
- Expect.mapEquals({"key1": 1, "key2": 2},
- JSON.decode(' {"key1": 1, "key2": 2} '));
- Expect.mapEquals({"key1": 1},
- JSON.decode(' { "key1" : 1 } '));
-}
-
-void testParseInvalid() {
- void testString(String s) {
- Expect.throws(() => JSON.decode(s), (e) => e is FormatException);
- }
- // Scalars
- testString("");
- testString("-");
- testString("-.");
- testString("3.a");
- testString("{ key: value }");
- testString("tru");
- testString("1E--6");
- testString("1E-+6");
- testString("1E+-6");
- testString("1E++6");
- testString("1E6.6");
- testString("1E-6.6");
- testString("1E+6.6");
-
- // JavaScript number literals not valid in JSON.
- testString('[01]');
- testString('[.1]');
- testString('[1.]');
- testString('[1.e1]');
- testString('[-.1]');
- testString('[-1.]');
-
- // Plain invalid number literals.
- testString('-');
- testString('--1');
- testString('-1e');
- testString('1e--1]');
- testString('1e+-1');
- testString('1e-+1');
- testString('1e++1');
-
- // Lists
- testString('[, ]');
- testString('["", ]');
- testString('["", "]');
- testString('["" ""]');
-
- // Maps
- testString('{"" ""}');
- testString('{"": "",}');
-}
-
-void testEscaping() {
- Expect.stringEquals('""', JSON.encode(''));
- Expect.stringEquals('"\\u0000"', JSON.encode('\u0000'));
- Expect.stringEquals('"\\u0001"', JSON.encode('\u0001'));
- Expect.stringEquals('"\\u0002"', JSON.encode('\u0002'));
- Expect.stringEquals('"\\u0003"', JSON.encode('\u0003'));
- Expect.stringEquals('"\\u0004"', JSON.encode('\u0004'));
- Expect.stringEquals('"\\u0005"', JSON.encode('\u0005'));
- Expect.stringEquals('"\\u0006"', JSON.encode('\u0006'));
- Expect.stringEquals('"\\u0007"', JSON.encode('\u0007'));
- Expect.stringEquals('"\\b"', JSON.encode('\u0008'));
- Expect.stringEquals('"\\t"', JSON.encode('\u0009'));
- Expect.stringEquals('"\\n"', JSON.encode('\u000a'));
- Expect.stringEquals('"\\u000b"', JSON.encode('\u000b'));
- Expect.stringEquals('"\\f"', JSON.encode('\u000c'));
- Expect.stringEquals('"\\r"', JSON.encode('\u000d'));
- Expect.stringEquals('"\\u000e"', JSON.encode('\u000e'));
- Expect.stringEquals('"\\u000f"', JSON.encode('\u000f'));
- Expect.stringEquals('"\\u0010"', JSON.encode('\u0010'));
- Expect.stringEquals('"\\u0011"', JSON.encode('\u0011'));
- Expect.stringEquals('"\\u0012"', JSON.encode('\u0012'));
- Expect.stringEquals('"\\u0013"', JSON.encode('\u0013'));
- Expect.stringEquals('"\\u0014"', JSON.encode('\u0014'));
- Expect.stringEquals('"\\u0015"', JSON.encode('\u0015'));
- Expect.stringEquals('"\\u0016"', JSON.encode('\u0016'));
- Expect.stringEquals('"\\u0017"', JSON.encode('\u0017'));
- Expect.stringEquals('"\\u0018"', JSON.encode('\u0018'));
- Expect.stringEquals('"\\u0019"', JSON.encode('\u0019'));
- Expect.stringEquals('"\\u001a"', JSON.encode('\u001a'));
- Expect.stringEquals('"\\u001b"', JSON.encode('\u001b'));
- Expect.stringEquals('"\\u001c"', JSON.encode('\u001c'));
- Expect.stringEquals('"\\u001d"', JSON.encode('\u001d'));
- Expect.stringEquals('"\\u001e"', JSON.encode('\u001e'));
- Expect.stringEquals('"\\u001f"', JSON.encode('\u001f'));
- Expect.stringEquals('"\\\""', JSON.encode('"'));
- Expect.stringEquals('"\\\\"', JSON.encode('\\'));
- Expect.stringEquals('"Got \\b, \\f, \\n, \\r, \\t, \\u0000, \\\\, and \\"."',
- JSON.encode('Got \b, \f, \n, \r, \t, \u0000, \\, and ".'));
- Expect.stringEquals('"Got \\b\\f\\n\\r\\t\\u0000\\\\\\"."',
- JSON.encode('Got \b\f\n\r\t\u0000\\".'));
-}
« no previous file with comments | « tests/lib/json/json_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698