| Index: test/codegen/expect/lib/convert/json_lib_test.js
|
| diff --git a/test/codegen/expect/lib/convert/json_lib_test.js b/test/codegen/expect/lib/convert/json_lib_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e4dbe1f07c79ad627a262998da37636e4ad8e04e
|
| --- /dev/null
|
| +++ b/test/codegen/expect/lib/convert/json_lib_test.js
|
| @@ -0,0 +1,163 @@
|
| +dart_library.library('lib/convert/json_lib_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'unittest'
|
| +], function load__json_lib_test(exports, dart_sdk, unittest) {
|
| + 'use strict';
|
| + const core = dart_sdk.core;
|
| + const convert = dart_sdk.convert;
|
| + const _interceptors = dart_sdk._interceptors;
|
| + const dart = dart_sdk.dart;
|
| + const dartx = dart_sdk.dartx;
|
| + const unittest$ = unittest.unittest;
|
| + const src__matcher__expect = unittest.src__matcher__expect;
|
| + const src__matcher__core_matchers = unittest.src__matcher__core_matchers;
|
| + const src__matcher__iterable_matchers = unittest.src__matcher__iterable_matchers;
|
| + const src__matcher__throws_matcher = unittest.src__matcher__throws_matcher;
|
| + const json_lib_test = Object.create(null);
|
| + let JSArrayOfObject = () => (JSArrayOfObject = dart.constFn(_interceptors.JSArray$(core.Object)))();
|
| + let JSArrayOfList = () => (JSArrayOfList = dart.constFn(_interceptors.JSArray$(core.List)))();
|
| + let JSArrayOfint = () => (JSArrayOfint = dart.constFn(_interceptors.JSArray$(core.int)))();
|
| + let ListOfObject = () => (ListOfObject = dart.constFn(core.List$(core.Object)))();
|
| + let JSArrayOfListOfObject = () => (JSArrayOfListOfObject = dart.constFn(_interceptors.JSArray$(ListOfObject())))();
|
| + let JSArrayOfMap = () => (JSArrayOfMap = dart.constFn(_interceptors.JSArray$(core.Map)))();
|
| + let JSArrayOfToJson = () => (JSArrayOfToJson = dart.constFn(_interceptors.JSArray$(json_lib_test.ToJson)))();
|
| + let isInstanceOfOfJsonUnsupportedObjectError = () => (isInstanceOfOfJsonUnsupportedObjectError = dart.constFn(src__matcher__core_matchers.isInstanceOf$(convert.JsonUnsupportedObjectError)))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let VoidToString = () => (VoidToString = dart.constFn(dart.definiteFunctionType(core.String, [])))();
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + json_lib_test.main = function() {
|
| + unittest$.test('Parse', dart.fn(() => {
|
| + src__matcher__expect.expect(convert.JSON.decode(' 5 '), src__matcher__core_matchers.equals(5));
|
| + src__matcher__expect.expect(convert.JSON.decode(' -42 '), src__matcher__core_matchers.equals(-42));
|
| + src__matcher__expect.expect(convert.JSON.decode(' 3e0 '), src__matcher__core_matchers.equals(3));
|
| + src__matcher__expect.expect(convert.JSON.decode(' 3.14 '), src__matcher__core_matchers.equals(3.14));
|
| + src__matcher__expect.expect(convert.JSON.decode('true '), src__matcher__core_matchers.isTrue);
|
| + src__matcher__expect.expect(convert.JSON.decode(' false'), src__matcher__core_matchers.isFalse);
|
| + src__matcher__expect.expect(convert.JSON.decode(' null '), src__matcher__core_matchers.isNull);
|
| + src__matcher__expect.expect(convert.JSON.decode('\n\rnull\t'), src__matcher__core_matchers.isNull);
|
| + src__matcher__expect.expect(convert.JSON.decode(' "hi there\\" bob" '), src__matcher__core_matchers.equals('hi there" bob'));
|
| + src__matcher__expect.expect(convert.JSON.decode(' "" '), src__matcher__core_matchers.isEmpty);
|
| + src__matcher__expect.expect(convert.JSON.decode(' [] '), src__matcher__core_matchers.isEmpty);
|
| + src__matcher__expect.expect(convert.JSON.decode('[ ]'), src__matcher__core_matchers.isEmpty);
|
| + src__matcher__expect.expect(convert.JSON.decode(' [3, -4.5, true, "hi", false] '), src__matcher__core_matchers.equals(JSArrayOfObject().of([3, -4.5, true, 'hi', false])));
|
| + src__matcher__expect.expect(convert.JSON.decode('[null]'), src__matcher__iterable_matchers.orderedEquals([null]));
|
| + src__matcher__expect.expect(convert.JSON.decode(' [3, -4.5, null, true, "hi", false] '), src__matcher__core_matchers.equals(JSArrayOfObject().of([3, -4.5, null, true, 'hi', false])));
|
| + src__matcher__expect.expect(convert.JSON.decode('[[null]]'), src__matcher__core_matchers.equals(JSArrayOfList().of([[null]])));
|
| + src__matcher__expect.expect(convert.JSON.decode(' [ [3], [], [null], ["hi", true]] '), src__matcher__core_matchers.equals(JSArrayOfListOfObject().of([JSArrayOfint().of([3]), [], [null], JSArrayOfObject().of(['hi', true])])));
|
| + src__matcher__expect.expect(convert.JSON.decode(' {} '), src__matcher__core_matchers.isEmpty);
|
| + src__matcher__expect.expect(convert.JSON.decode('{ }'), src__matcher__core_matchers.isEmpty);
|
| + src__matcher__expect.expect(convert.JSON.decode(' {"x":3, "y": -4.5, "z" : "hi","u" : true, "v": false } '), src__matcher__core_matchers.equals(dart.map({x: 3, y: -4.5, z: "hi", u: true, v: false})));
|
| + src__matcher__expect.expect(convert.JSON.decode(' {"x":3, "y": -4.5, "z" : "hi" } '), src__matcher__core_matchers.equals(dart.map({x: 3, y: -4.5, z: "hi"})));
|
| + src__matcher__expect.expect(convert.JSON.decode(' {"y": -4.5, "z" : "hi" ,"x":3 } '), src__matcher__core_matchers.equals(dart.map({y: -4.5, z: "hi", x: 3})));
|
| + src__matcher__expect.expect(convert.JSON.decode('{ " hi bob " :3, "": 4.5}'), src__matcher__core_matchers.equals(dart.map({" hi bob ": 3, "": 4.5})));
|
| + src__matcher__expect.expect(convert.JSON.decode(' { "x" : { } } '), src__matcher__core_matchers.equals(dart.map({x: dart.map()})));
|
| + src__matcher__expect.expect(convert.JSON.decode('{"x":{}}'), src__matcher__core_matchers.equals(dart.map({x: dart.map()})));
|
| + src__matcher__expect.expect(convert.JSON.decode('{"w":null}'), src__matcher__core_matchers.equals(dart.map({w: null})));
|
| + src__matcher__expect.expect(convert.JSON.decode('{"x":{"w":null}}'), src__matcher__core_matchers.equals(dart.map({x: dart.map({w: null})})));
|
| + src__matcher__expect.expect(convert.JSON.decode(' {"x":3, "y": -4.5, "z" : "hi",' + '"w":null, "u" : true, "v": false } '), src__matcher__core_matchers.equals(dart.map({x: 3, y: -4.5, z: "hi", w: null, u: true, v: false})));
|
| + src__matcher__expect.expect(convert.JSON.decode('{"x": {"a":3, "b": -4.5}, "y":[{}], ' + '"z":"hi","w":{"c":null,"d":true}, "v":null}'), src__matcher__core_matchers.equals(dart.map({x: dart.map({a: 3, b: -4.5}), y: JSArrayOfMap().of([dart.map()]), z: "hi", w: dart.map({c: null, d: true}), v: null})));
|
| + }, VoidTodynamic()));
|
| + unittest$.test('stringify', dart.fn(() => {
|
| + src__matcher__expect.expect(convert.JSON.encode(5), src__matcher__core_matchers.equals('5'));
|
| + src__matcher__expect.expect(convert.JSON.encode(-42), src__matcher__core_matchers.equals('-42'));
|
| + json_lib_test.validateRoundTrip(3.14);
|
| + src__matcher__expect.expect(convert.JSON.encode(true), src__matcher__core_matchers.equals('true'));
|
| + src__matcher__expect.expect(convert.JSON.encode(false), src__matcher__core_matchers.equals('false'));
|
| + src__matcher__expect.expect(convert.JSON.encode(null), src__matcher__core_matchers.equals('null'));
|
| + src__matcher__expect.expect(convert.JSON.encode(' hi there" bob '), src__matcher__core_matchers.equals('" hi there\\" bob "'));
|
| + src__matcher__expect.expect(convert.JSON.encode('hi\\there'), src__matcher__core_matchers.equals('"hi\\\\there"'));
|
| + src__matcher__expect.expect(convert.JSON.encode('hi\nthere'), src__matcher__core_matchers.equals('"hi\\nthere"'));
|
| + src__matcher__expect.expect(convert.JSON.encode('hi\r\nthere'), src__matcher__core_matchers.equals('"hi\\r\\nthere"'));
|
| + src__matcher__expect.expect(convert.JSON.encode(''), src__matcher__core_matchers.equals('""'));
|
| + src__matcher__expect.expect(convert.JSON.encode([]), src__matcher__core_matchers.equals('[]'));
|
| + src__matcher__expect.expect(convert.JSON.encode(core.List.new(0)), src__matcher__core_matchers.equals('[]'));
|
| + src__matcher__expect.expect(convert.JSON.encode(core.List.new(3)), src__matcher__core_matchers.equals('[null,null,null]'));
|
| + json_lib_test.validateRoundTrip(JSArrayOfObject().of([3, -4.5, null, true, 'hi', false]));
|
| + src__matcher__expect.expect(convert.JSON.encode(JSArrayOfListOfObject().of([JSArrayOfint().of([3]), [], [null], JSArrayOfObject().of(['hi', true])])), src__matcher__core_matchers.equals('[[3],[],[null],["hi",true]]'));
|
| + src__matcher__expect.expect(convert.JSON.encode(dart.map()), src__matcher__core_matchers.equals('{}'));
|
| + src__matcher__expect.expect(convert.JSON.encode(core.Map.new()), src__matcher__core_matchers.equals('{}'));
|
| + src__matcher__expect.expect(convert.JSON.encode(dart.map({x: dart.map()})), src__matcher__core_matchers.equals('{"x":{}}'));
|
| + src__matcher__expect.expect(convert.JSON.encode(dart.map({x: dart.map({a: 3})})), src__matcher__core_matchers.equals('{"x":{"a":3}}'));
|
| + json_lib_test.validateRoundTrip(dart.map({x: 3, y: -4.5, z: 'hi', w: null, u: true, v: false}));
|
| + json_lib_test.validateRoundTrip(dart.map({x: 3, y: -4.5, z: 'hi'}));
|
| + json_lib_test.validateRoundTrip(dart.map({' hi bob ': 3, '': 4.5}));
|
| + json_lib_test.validateRoundTrip(dart.map({x: dart.map({a: 3, b: -4.5}), y: JSArrayOfMap().of([dart.map()]), z: 'hi', w: dart.map({c: null, d: true}), v: null}));
|
| + src__matcher__expect.expect(convert.JSON.encode(new json_lib_test.ToJson(4)), "4");
|
| + src__matcher__expect.expect(convert.JSON.encode(new json_lib_test.ToJson(JSArrayOfObject().of([4, "a"]))), '[4,"a"]');
|
| + src__matcher__expect.expect(convert.JSON.encode(new json_lib_test.ToJson(JSArrayOfObject().of([4, new json_lib_test.ToJson(dart.map({x: 42}))]))), '[4,{"x":42}]');
|
| + src__matcher__expect.expect(dart.fn(() => {
|
| + convert.JSON.encode(JSArrayOfToJson().of([new json_lib_test.ToJson(new json_lib_test.ToJson(4))]));
|
| + }, VoidTodynamic()), json_lib_test.throwsJsonError);
|
| + src__matcher__expect.expect(dart.fn(() => {
|
| + convert.JSON.encode(JSArrayOfObject().of([new core.Object()]));
|
| + }, VoidTodynamic()), json_lib_test.throwsJsonError);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('stringify throws if argument cannot be converted', dart.fn(() => {
|
| + src__matcher__expect.expect(dart.fn(() => convert.JSON.encode(new json_lib_test.TestClass()), VoidToString()), json_lib_test.throwsJsonError);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('stringify throws if toJson throws', dart.fn(() => {
|
| + src__matcher__expect.expect(dart.fn(() => convert.JSON.encode(new json_lib_test.ToJsoner("bad", {throws: true})), VoidToString()), json_lib_test.throwsJsonError);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('stringify throws if toJson returns non-serializable value', dart.fn(() => {
|
| + src__matcher__expect.expect(dart.fn(() => convert.JSON.encode(new json_lib_test.ToJsoner(new json_lib_test.TestClass())), VoidToString()), json_lib_test.throwsJsonError);
|
| + }, VoidTodynamic()));
|
| + unittest$.test('stringify throws on cyclic values', dart.fn(() => {
|
| + let a = [];
|
| + let b = a;
|
| + for (let i = 0; i < 50; i++) {
|
| + b = JSArrayOfList().of([b]);
|
| + }
|
| + a[dartx.add](b);
|
| + src__matcher__expect.expect(dart.fn(() => convert.JSON.encode(a), VoidToString()), json_lib_test.throwsJsonError);
|
| + }, VoidTodynamic()));
|
| + };
|
| + dart.fn(json_lib_test.main, VoidTodynamic());
|
| + json_lib_test.TestClass = class TestClass extends core.Object {
|
| + new() {
|
| + this.x = 3;
|
| + this.y = 'joe';
|
| + }
|
| + };
|
| + dart.setSignature(json_lib_test.TestClass, {
|
| + constructors: () => ({new: dart.definiteFunctionType(json_lib_test.TestClass, [])})
|
| + });
|
| + json_lib_test.ToJsoner = class ToJsoner extends core.Object {
|
| + new(returnValue, opts) {
|
| + let throws = opts && 'throws' in opts ? opts.throws : null;
|
| + this.returnValue = returnValue;
|
| + this.throws = throws;
|
| + }
|
| + toJson() {
|
| + if (dart.test(this.throws)) dart.throw(this.returnValue);
|
| + return this.returnValue;
|
| + }
|
| + };
|
| + dart.setSignature(json_lib_test.ToJsoner, {
|
| + constructors: () => ({new: dart.definiteFunctionType(json_lib_test.ToJsoner, [core.Object], {throws: core.bool})}),
|
| + methods: () => ({toJson: dart.definiteFunctionType(core.Object, [])})
|
| + });
|
| + json_lib_test.ToJson = class ToJson extends core.Object {
|
| + new(object) {
|
| + this.object = object;
|
| + }
|
| + toJson() {
|
| + return this.object;
|
| + }
|
| + };
|
| + dart.setSignature(json_lib_test.ToJson, {
|
| + constructors: () => ({new: dart.definiteFunctionType(json_lib_test.ToJson, [dart.dynamic])}),
|
| + methods: () => ({toJson: dart.definiteFunctionType(dart.dynamic, [])})
|
| + });
|
| + dart.defineLazy(json_lib_test, {
|
| + get throwsJsonError() {
|
| + return src__matcher__throws_matcher.throwsA(new (isInstanceOfOfJsonUnsupportedObjectError())());
|
| + },
|
| + set throwsJsonError(_) {}
|
| + });
|
| + json_lib_test.validateRoundTrip = function(expected) {
|
| + src__matcher__expect.expect(convert.JSON.decode(convert.JSON.encode(expected)), src__matcher__core_matchers.equals(expected));
|
| + };
|
| + dart.fn(json_lib_test.validateRoundTrip, dynamicTodynamic());
|
| + // Exports:
|
| + exports.json_lib_test = json_lib_test;
|
| +});
|
|
|