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

Unified Diff: test/codegen/expect/lib/convert/line_splitter_test.js

Issue 2128353002: Check in codegen test expectations. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 5 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
Index: test/codegen/expect/lib/convert/line_splitter_test.js
diff --git a/test/codegen/expect/lib/convert/line_splitter_test.js b/test/codegen/expect/lib/convert/line_splitter_test.js
new file mode 100644
index 0000000000000000000000000000000000000000..2cd494804f41cef95ed9b4475a6f162fb546184d
--- /dev/null
+++ b/test/codegen/expect/lib/convert/line_splitter_test.js
@@ -0,0 +1,180 @@
+dart_library.library('lib/convert/line_splitter_test', null, /* Imports */[
+ 'dart_sdk',
+ 'expect'
+], function load__line_splitter_test(exports, dart_sdk, expect) {
+ 'use strict';
+ const core = dart_sdk.core;
+ const convert = dart_sdk.convert;
+ const math = dart_sdk.math;
+ const _interceptors = dart_sdk._interceptors;
+ const async = dart_sdk.async;
+ const dart = dart_sdk.dart;
+ const dartx = dart_sdk.dartx;
+ const expect$ = expect.expect;
+ const line_splitter_test = Object.create(null);
+ let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSArray$(core.String)))();
+ let SinkOfString = () => (SinkOfString = dart.constFn(core.Sink$(core.String)))();
+ let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
+ let dynamicAndStringTodynamic = () => (dynamicAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.String])))();
+ let StringToString = () => (StringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String])))();
+ let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
+ let StringTovoid = () => (StringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
+ line_splitter_test.lineTerminators = dart.constList(['\n', '\r', '\r\n'], core.String);
+ line_splitter_test.main = function() {
+ line_splitter_test.testSimpleConvert();
+ line_splitter_test.testSplit();
+ line_splitter_test.testSplitWithOffsets();
+ line_splitter_test.testManyLines();
+ line_splitter_test.testReadLine1();
+ line_splitter_test.testReadLine2();
+ line_splitter_test.testChunkedConversion();
+ };
+ dart.fn(line_splitter_test.main, VoidTovoid());
+ let const$;
+ line_splitter_test.testManyLines = function() {
+ let breakIndex = 0;
+ let inputs = const$ || (const$ = dart.constList(['line1', 'line2', 'long line 3', ' line 4 ', 'l5'], core.String));
+ let buffer = inputs[dartx.fold](dart.dynamic)(new core.StringBuffer(), dart.fn((buff, e) => {
+ dart.dsend(buff, 'write', e);
+ dart.dsend(buff, 'write', line_splitter_test.lineTerminators[dartx.get](breakIndex));
+ breakIndex++;
+ breakIndex = breakIndex[dartx['%']](line_splitter_test.lineTerminators[dartx.length]);
+ return buff;
+ }, dynamicAndStringTodynamic()));
+ let foo = line_splitter_test._getLinesSliced(dart.toString(buffer));
+ expect$.Expect.equals(inputs[dartx.join](), foo);
+ };
+ dart.fn(line_splitter_test.testManyLines, VoidTovoid());
+ line_splitter_test._getLinesSliced = function(str) {
+ let lines = null;
+ let stringSink = convert.StringConversionSink.withCallback(dart.fn(result => lines = result, StringToString()));
+ let sink = new convert.LineSplitter().startChunkedConversion(stringSink);
+ let chunkSize = 3;
+ let index = 0;
+ while (index < dart.notNull(str[dartx.length])) {
+ let end = math.min(core.int)(str[dartx.length], index + chunkSize);
+ sink.addSlice(str, index, end, false);
+ index = index + chunkSize;
+ }
+ sink.close();
+ return lines;
+ };
+ dart.fn(line_splitter_test._getLinesSliced, StringToString());
+ line_splitter_test.testSimpleConvert = function() {
+ let decoder = new convert.LineSplitter();
+ for (let lf of line_splitter_test.lineTerminators) {
+ let test = dart.str`line1${lf}line2${lf}line3`;
+ let result = decoder.convert(test);
+ expect$.Expect.listEquals(JSArrayOfString().of(['line1', 'line2', 'line3']), result);
+ }
+ let test = "Line1\nLine2\r\nLine3\rLine4\n\n\n\r\n\r\n\r\r";
+ let result = decoder.convert(test);
+ expect$.Expect.listEquals(JSArrayOfString().of(['Line1', 'Line2', 'Line3', 'Line4', '', '', '', '', '', '']), result);
+ };
+ dart.fn(line_splitter_test.testSimpleConvert, VoidTovoid());
+ let const$0;
+ line_splitter_test.testReadLine1 = function() {
+ let controller = async.StreamController.new({sync: true});
+ let stream = controller.stream.transform(core.String)(convert.UTF8.decoder).transform(core.String)(const$0 || (const$0 = dart.const(new convert.LineSplitter())));
+ let stage = 0;
+ let done = false;
+ function stringData(line) {
+ expect$.Expect.equals(stage, 0);
+ expect$.Expect.equals("Line", line);
+ stage++;
+ }
+ dart.fn(stringData, dynamicTovoid());
+ function streamClosed() {
+ expect$.Expect.equals(1, stage);
+ done = true;
+ }
+ dart.fn(streamClosed, VoidTovoid());
+ stream.listen(stringData, {onDone: streamClosed});
+ controller.add("Line"[dartx.codeUnits]);
+ controller.close();
+ expect$.Expect.isTrue(done, 'should be done by now');
+ };
+ dart.fn(line_splitter_test.testReadLine1, VoidTovoid());
+ let const$1;
+ line_splitter_test.testReadLine2 = function() {
+ let controller = async.StreamController.new({sync: true});
+ let stream = controller.stream.transform(core.String)(convert.UTF8.decoder).transform(core.String)(const$1 || (const$1 = dart.const(new convert.LineSplitter())));
+ let expectedLines = JSArrayOfString().of(['Line1', 'Line2', 'Line3', 'Line4', '', '', '', '', '', '', 'Line5', 'Line6']);
+ let index = 0;
+ stream.listen(dart.fn(line => {
+ expect$.Expect.equals(expectedLines[dartx.get](index++), line);
+ }, StringTovoid()));
+ controller.add("Line1\nLine2\r\nLine3\rLi"[dartx.codeUnits]);
+ controller.add("ne4\n"[dartx.codeUnits]);
+ controller.add("\n\n\r\n\r\n\r\r"[dartx.codeUnits]);
+ controller.add("Line5\r"[dartx.codeUnits]);
+ controller.add("\nLine6\n"[dartx.codeUnits]);
+ controller.close();
+ expect$.Expect.equals(expectedLines[dartx.length], index);
+ };
+ dart.fn(line_splitter_test.testReadLine2, VoidTovoid());
+ line_splitter_test.testSplit = function() {
+ for (let lf of line_splitter_test.lineTerminators) {
+ let test = dart.str`line1${lf}line2${lf}line3`;
+ let result = convert.LineSplitter.split(test)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['line1', 'line2', 'line3']), result);
+ }
+ let test = "Line1\nLine2\r\nLine3\rLine4\n\n\n\r\n\r\n\r\r";
+ let result = convert.LineSplitter.split(test)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['Line1', 'Line2', 'Line3', 'Line4', '', '', '', '', '', '']), result);
+ };
+ dart.fn(line_splitter_test.testSplit, VoidTovoid());
+ line_splitter_test.testSplitWithOffsets = function() {
+ for (let lf of line_splitter_test.lineTerminators) {
+ let test = dart.str`line1${lf}line2${lf}line3`;
+ let i2 = 5 + dart.notNull(lf[dartx.length]);
+ expect$.Expect.equals(5 + dart.notNull(lf[dartx.length]), i2);
+ let result = convert.LineSplitter.split(test, 4)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['1', 'line2', 'line3']), result);
+ result = convert.LineSplitter.split(test, 5)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['', 'line2', 'line3']), result);
+ result = convert.LineSplitter.split(test, i2)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['line2', 'line3']), result);
+ result = convert.LineSplitter.split(test, 0, i2 + 2)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['line1', 'li']), result);
+ result = convert.LineSplitter.split(test, i2, i2 + 5)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['line2']), result);
+ }
+ let test = "Line1\nLine2\r\nLine3\rLine4\n\n\n\r\n\r\n\r\r";
+ let result = convert.LineSplitter.split(test)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(['Line1', 'Line2', 'Line3', 'Line4', '', '', '', '', '', '']), result);
+ test = "a\n\nb\r\nc\n\rd\r\re\r\n\nf\r\n";
+ result = convert.LineSplitter.split(test)[dartx.toList]();
+ expect$.Expect.listEquals(JSArrayOfString().of(["a", "", "b", "c", "", "d", "", "e", "", "f"]), result);
+ };
+ dart.fn(line_splitter_test.testSplitWithOffsets, VoidTovoid());
+ line_splitter_test.testChunkedConversion = function() {
+ let test = "a\n\nb\r\nc\n\rd\r\re\r\n\nf\rg\nh\r\n";
+ let result = JSArrayOfString().of(["a", "", "b", "c", "", "d", "", "e", "", "f", "g", "h"]);
+ for (let i = 0; i < dart.notNull(test[dartx.length]); i++) {
+ let output = [];
+ let splitter = new convert.LineSplitter();
+ let outSink = convert.ChunkedConversionSink.withCallback(dart.bind(output, dartx.addAll));
+ let sink = splitter.startChunkedConversion(SinkOfString()._check(outSink));
+ sink.addSlice(test, 0, i, false);
+ sink.addSlice(test, i, test[dartx.length], false);
+ sink.close();
+ expect$.Expect.listEquals(result, output);
+ }
+ for (let i = 0; i < dart.notNull(test[dartx.length]); i++) {
+ for (let j = i; j < dart.notNull(test[dartx.length]); j++) {
+ let output = [];
+ let splitter = new convert.LineSplitter();
+ let outSink = convert.ChunkedConversionSink.withCallback(dart.bind(output, dartx.addAll));
+ let sink = splitter.startChunkedConversion(SinkOfString()._check(outSink));
+ sink.addSlice(test, 0, i, false);
+ sink.addSlice(test, i, j, false);
+ sink.addSlice(test, j, test[dartx.length], true);
+ expect$.Expect.listEquals(result, output);
+ }
+ }
+ };
+ dart.fn(line_splitter_test.testChunkedConversion, VoidTovoid());
+ // Exports:
+ exports.line_splitter_test = line_splitter_test;
+});

Powered by Google App Engine
This is Rietveld 408576698