| Index: test/codegen/expect/lib/convert/json_chunk_test.js
|
| diff --git a/test/codegen/expect/lib/convert/json_chunk_test.js b/test/codegen/expect/lib/convert/json_chunk_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..778e7b27fa240994292cbe22feab0f27c6630ad0
|
| --- /dev/null
|
| +++ b/test/codegen/expect/lib/convert/json_chunk_test.js
|
| @@ -0,0 +1,190 @@
|
| +dart_library.library('lib/convert/json_chunk_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__json_chunk_test(exports, dart_sdk, expect) {
|
| + '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 expect$ = expect.expect;
|
| + const json_chunk_test = Object.create(null);
|
| + let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.functionType(dart.dynamic, [dart.dynamic])))();
|
| + let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
|
| + let JSArrayOfbool = () => (JSArrayOfbool = dart.constFn(_interceptors.JSArray$(core.bool)))();
|
| + let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
|
| + let ListTovoid = () => (ListTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.List])))();
|
| + let dynamicAnddynamicAndFnTodynamic = () => (dynamicAnddynamicAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic, dynamicTodynamic()])))();
|
| + let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
|
| + let dynamicAndFnTodynamic = () => (dynamicAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dynamicTodynamic()])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let dynamicTodynamic$ = () => (dynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic])))();
|
| + let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
|
| + json_chunk_test.badFormat = function(e) {
|
| + return core.FormatException.is(e);
|
| + };
|
| + dart.fn(json_chunk_test.badFormat, dynamicTobool());
|
| + json_chunk_test.jsonTest = function(testName, expect, action) {
|
| + let sink = convert.ChunkedConversionSink.withCallback(dart.fn(values => {
|
| + let value = values[dartx.get](0);
|
| + expect$.Expect.equals(expect, value, dart.str`${testName}:${value}`);
|
| + }, ListTovoid()));
|
| + let decoderSink = convert.JSON.decoder.startChunkedConversion(sink);
|
| + dart.dcall(action, decoderSink);
|
| + };
|
| + dart.fn(json_chunk_test.jsonTest, dynamicAnddynamicAndFnTodynamic());
|
| + json_chunk_test.jsonThrowsTest = function(testName, action) {
|
| + let sink = convert.ChunkedConversionSink.withCallback(dart.fn(values => {
|
| + expect$.Expect.fail(dart.str`Should have thrown: ${testName}`);
|
| + }, ListTovoid()));
|
| + let decoderSink = convert.JSON.decoder.startChunkedConversion(sink);
|
| + expect$.Expect.throws(dart.fn(() => {
|
| + dart.dcall(action, decoderSink);
|
| + }, VoidTovoid()), dart.fn(e => core.FormatException.is(e), dynamicTobool()), core.String._check(testName));
|
| + };
|
| + dart.fn(json_chunk_test.jsonThrowsTest, dynamicAndFnTodynamic());
|
| + json_chunk_test.main = function() {
|
| + json_chunk_test.testNumbers();
|
| + json_chunk_test.testStrings();
|
| + json_chunk_test.testKeywords();
|
| + };
|
| + dart.fn(json_chunk_test.main, VoidTodynamic());
|
| + json_chunk_test.testStrings = function() {
|
| + let s = '"abc\\f\\n\\r\\t\\b\\"\\/\\\\\\u0001\\u9999\\uffff"';
|
| + let expected = "abc\f\n\r\t\b\"/\\香";
|
| + for (let i = 1; i < dart.notNull(s[dartx.length]) - 1; i++) {
|
| + let s1 = s[dartx.substring](0, i);
|
| + let s2 = s[dartx.substring](i);
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', s1);
|
| + dart.dsend(sink, 'add', s2);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'addSlice', s, 0, i, false);
|
| + dart.dsend(sink, 'addSlice', s, i, s[dartx.length], true);
|
| + }, dynamicTodynamic$()));
|
| + for (let j = i; j < dart.notNull(s[dartx.length]) - 1; j++) {
|
| + let s2a = s[dartx.substring](i, j);
|
| + let s2b = s[dartx.substring](j);
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2a}|${s2b}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', s1);
|
| + dart.dsend(sink, 'add', s2a);
|
| + dart.dsend(sink, 'add', s2b);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + }
|
| + }
|
| + };
|
| + dart.fn(json_chunk_test.testStrings, VoidTovoid());
|
| + json_chunk_test.testNumbers = function() {
|
| + function testNumber(number) {
|
| + let expected = core.num.parse(core.String._check(number));
|
| + for (let i = 1; i < dart.notNull(core.num._check(dart.dsend(dart.dload(number, 'length'), '-', 1))); i++) {
|
| + let p1 = dart.dsend(number, 'substring', 0, i);
|
| + let p2 = dart.dsend(number, 'substring', i);
|
| + json_chunk_test.jsonTest(dart.str`${p1}|${p2}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', p1);
|
| + dart.dsend(sink, 'add', p2);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + json_chunk_test.jsonTest(dart.str`${p1}|${p2}/slice`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'addSlice', number, 0, i, false);
|
| + dart.dsend(sink, 'addSlice', number, i, dart.dload(number, 'length'), true);
|
| + }, dynamicTodynamic$()));
|
| + for (let j = i; j < dart.notNull(core.num._check(dart.dsend(dart.dload(number, 'length'), '-', 1))); j++) {
|
| + let p2a = dart.dsend(number, 'substring', i, j);
|
| + let p2b = dart.dsend(number, 'substring', j);
|
| + json_chunk_test.jsonTest(dart.str`${p1}|${p2a}|${p2b}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', p1);
|
| + dart.dsend(sink, 'add', p2a);
|
| + dart.dsend(sink, 'add', p2b);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + }
|
| + }
|
| + }
|
| + dart.fn(testNumber, dynamicTovoid());
|
| + for (let sign of JSArrayOfString().of(["-", ""])) {
|
| + for (let intPart of JSArrayOfString().of(["0", "1", "99"])) {
|
| + for (let decimalPoint of JSArrayOfString().of([".", ""])) {
|
| + for (let decimals of dart.test(decimalPoint[dartx.isEmpty]) ? JSArrayOfString().of([""]) : JSArrayOfString().of(["0", "99"])) {
|
| + for (let e of JSArrayOfString().of(["e", "e-", "e+", ""])) {
|
| + for (let exp of dart.test(e[dartx.isEmpty]) ? JSArrayOfString().of([""]) : JSArrayOfString().of(["0", "2", "22", "34"])) {
|
| + testNumber(dart.str`${sign}${intPart}${decimalPoint}${decimals}${e}${exp}`);
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
| + }
|
| + function negativeTest(number) {
|
| + for (let i = 1; i < dart.notNull(core.num._check(dart.dsend(dart.dload(number, 'length'), '-', 1))); i++) {
|
| + let p1 = dart.dsend(number, 'substring', 0, i);
|
| + let p2 = dart.dsend(number, 'substring', i);
|
| + json_chunk_test.jsonThrowsTest(dart.str`${p1}|${p2}`, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', p1);
|
| + dart.dsend(sink, 'add', p2);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + json_chunk_test.jsonThrowsTest(dart.str`${p1}|${p2}/slice`, dart.fn(sink => {
|
| + dart.dsend(sink, 'addSlice', number, 0, i, false);
|
| + dart.dsend(sink, 'addSlice', number, i, dart.dload(number, 'length'), true);
|
| + }, dynamicTodynamic$()));
|
| + for (let j = i; j < dart.notNull(core.num._check(dart.dsend(dart.dload(number, 'length'), '-', 1))); j++) {
|
| + let p2a = dart.dsend(number, 'substring', i, j);
|
| + let p2b = dart.dsend(number, 'substring', j);
|
| + json_chunk_test.jsonThrowsTest(dart.str`${p1}|${p2a}|${p2b}`, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', p1);
|
| + dart.dsend(sink, 'add', p2a);
|
| + dart.dsend(sink, 'add', p2b);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + }
|
| + }
|
| + }
|
| + dart.fn(negativeTest, dynamicTovoid());
|
| + negativeTest("+1e");
|
| + negativeTest("-00");
|
| + negativeTest("01");
|
| + negativeTest(".1");
|
| + negativeTest("0.");
|
| + negativeTest("0.e1");
|
| + negativeTest("1e");
|
| + negativeTest("1e+");
|
| + negativeTest("1e-");
|
| + };
|
| + dart.fn(json_chunk_test.testNumbers, VoidTovoid());
|
| + json_chunk_test.testKeywords = function() {
|
| + for (let expected of JSArrayOfbool().of([null, true, false])) {
|
| + let s = dart.str`${expected}`;
|
| + for (let i = 1; i < dart.notNull(s[dartx.length]) - 1; i++) {
|
| + let s1 = s[dartx.substring](0, i);
|
| + let s2 = s[dartx.substring](i);
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', s1);
|
| + dart.dsend(sink, 'add', s2);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'addSlice', s, 0, i, false);
|
| + dart.dsend(sink, 'addSlice', s, i, s[dartx.length], true);
|
| + }, dynamicTodynamic$()));
|
| + for (let j = i; j < dart.notNull(s[dartx.length]) - 1; j++) {
|
| + let s2a = s[dartx.substring](i, j);
|
| + let s2b = s[dartx.substring](j);
|
| + json_chunk_test.jsonTest(dart.str`${s1}|${s2a}|${s2b}`, expected, dart.fn(sink => {
|
| + dart.dsend(sink, 'add', s1);
|
| + dart.dsend(sink, 'add', s2a);
|
| + dart.dsend(sink, 'add', s2b);
|
| + dart.dsend(sink, 'close');
|
| + }, dynamicTodynamic$()));
|
| + }
|
| + }
|
| + }
|
| + };
|
| + dart.fn(json_chunk_test.testKeywords, VoidTovoid());
|
| + // Exports:
|
| + exports.json_chunk_test = json_chunk_test;
|
| +});
|
|
|