| Index: test/codegen/expect/corelib/string_pattern_test.js
|
| diff --git a/test/codegen/expect/corelib/string_pattern_test.js b/test/codegen/expect/corelib/string_pattern_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a6a68dc5c3ace023f258d684ca499bfb03662755
|
| --- /dev/null
|
| +++ b/test/codegen/expect/corelib/string_pattern_test.js
|
| @@ -0,0 +1,119 @@
|
| +dart_library.library('corelib/string_pattern_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__string_pattern_test(exports, dart_sdk, expect) {
|
| + 'use strict';
|
| + const core = dart_sdk.core;
|
| + const dart = dart_sdk.dart;
|
| + const dartx = dart_sdk.dartx;
|
| + const expect$ = expect.expect;
|
| + const string_pattern_test = Object.create(null);
|
| + let IterableOfMatch = () => (IterableOfMatch = dart.constFn(core.Iterable$(core.Match)))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + let VoidToMatch = () => (VoidToMatch = dart.constFn(dart.definiteFunctionType(core.Match, [])))();
|
| + let VoidToIterableOfMatch = () => (VoidToIterableOfMatch = dart.constFn(dart.definiteFunctionType(IterableOfMatch(), [])))();
|
| + string_pattern_test.str = "this is a string with hello here and hello there";
|
| + string_pattern_test.main = function() {
|
| + string_pattern_test.testNoMatch();
|
| + string_pattern_test.testOneMatch();
|
| + string_pattern_test.testTwoMatches();
|
| + string_pattern_test.testEmptyPattern();
|
| + string_pattern_test.testEmptyString();
|
| + string_pattern_test.testEmptyPatternAndString();
|
| + string_pattern_test.testMatchAsPrefix();
|
| + string_pattern_test.testAllMatchesStart();
|
| + };
|
| + dart.fn(string_pattern_test.main, VoidTodynamic());
|
| + string_pattern_test.testNoMatch = function() {
|
| + let helloPattern = "with (hello)";
|
| + let matches = helloPattern[dartx.allMatches](string_pattern_test.str);
|
| + expect$.Expect.isFalse(matches[dartx.iterator].moveNext());
|
| + };
|
| + dart.fn(string_pattern_test.testNoMatch, VoidTodynamic());
|
| + string_pattern_test.testOneMatch = function() {
|
| + let helloPattern = "with hello";
|
| + let matches = helloPattern[dartx.allMatches](string_pattern_test.str);
|
| + let iterator = matches[dartx.iterator];
|
| + expect$.Expect.isTrue(iterator.moveNext());
|
| + let match = iterator.current;
|
| + expect$.Expect.isFalse(iterator.moveNext());
|
| + expect$.Expect.equals(string_pattern_test.str[dartx.indexOf]('with', 0), match.start);
|
| + expect$.Expect.equals(dart.notNull(string_pattern_test.str[dartx.indexOf]('with', 0)) + dart.notNull(helloPattern[dartx.length]), match.end);
|
| + expect$.Expect.equals(helloPattern, match.pattern);
|
| + expect$.Expect.equals(string_pattern_test.str, match.input);
|
| + expect$.Expect.equals(helloPattern, match.get(0));
|
| + expect$.Expect.equals(0, match.groupCount);
|
| + };
|
| + dart.fn(string_pattern_test.testOneMatch, VoidTodynamic());
|
| + string_pattern_test.testTwoMatches = function() {
|
| + let helloPattern = "hello";
|
| + let matches = helloPattern[dartx.allMatches](string_pattern_test.str);
|
| + let count = 0;
|
| + let start = 0;
|
| + for (let match of matches) {
|
| + count++;
|
| + expect$.Expect.equals(string_pattern_test.str[dartx.indexOf]('hello', start), match.start);
|
| + expect$.Expect.equals(dart.notNull(string_pattern_test.str[dartx.indexOf]('hello', start)) + dart.notNull(helloPattern[dartx.length]), match.end);
|
| + expect$.Expect.equals(helloPattern, match.pattern);
|
| + expect$.Expect.equals(string_pattern_test.str, match.input);
|
| + expect$.Expect.equals(helloPattern, match.get(0));
|
| + expect$.Expect.equals(0, match.groupCount);
|
| + start = match.end;
|
| + }
|
| + expect$.Expect.equals(2, count);
|
| + };
|
| + dart.fn(string_pattern_test.testTwoMatches, VoidTodynamic());
|
| + string_pattern_test.testEmptyPattern = function() {
|
| + let pattern = "";
|
| + let matches = pattern[dartx.allMatches](string_pattern_test.str);
|
| + expect$.Expect.isTrue(matches[dartx.iterator].moveNext());
|
| + };
|
| + dart.fn(string_pattern_test.testEmptyPattern, VoidTodynamic());
|
| + string_pattern_test.testEmptyString = function() {
|
| + let pattern = "foo";
|
| + let str = "";
|
| + let matches = pattern[dartx.allMatches](str);
|
| + expect$.Expect.isFalse(matches[dartx.iterator].moveNext());
|
| + };
|
| + dart.fn(string_pattern_test.testEmptyString, VoidTodynamic());
|
| + string_pattern_test.testEmptyPatternAndString = function() {
|
| + let pattern = "";
|
| + let str = "";
|
| + let matches = pattern[dartx.allMatches](str);
|
| + expect$.Expect.isTrue(matches[dartx.iterator].moveNext());
|
| + };
|
| + dart.fn(string_pattern_test.testEmptyPatternAndString, VoidTodynamic());
|
| + string_pattern_test.testMatchAsPrefix = function() {
|
| + let pattern = "an";
|
| + let str = "banana";
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str));
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str, 0));
|
| + let m = pattern[dartx.matchAsPrefix](str, 1);
|
| + expect$.Expect.equals("an", m.get(0));
|
| + expect$.Expect.equals(1, m.start);
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str, 2));
|
| + m = pattern[dartx.matchAsPrefix](str, 3);
|
| + expect$.Expect.equals("an", m.get(0));
|
| + expect$.Expect.equals(3, m.start);
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str, 4));
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str, 5));
|
| + expect$.Expect.isNull(pattern[dartx.matchAsPrefix](str, 6));
|
| + expect$.Expect.throws(dart.fn(() => pattern[dartx.matchAsPrefix](str, -1), VoidToMatch()));
|
| + expect$.Expect.throws(dart.fn(() => pattern[dartx.matchAsPrefix](str, 7), VoidToMatch()));
|
| + };
|
| + dart.fn(string_pattern_test.testMatchAsPrefix, VoidTodynamic());
|
| + string_pattern_test.testAllMatchesStart = function() {
|
| + let p = "ass";
|
| + let s = "assassin";
|
| + expect$.Expect.equals(2, p[dartx.allMatches](s)[dartx.length]);
|
| + expect$.Expect.equals(2, p[dartx.allMatches](s, 0)[dartx.length]);
|
| + expect$.Expect.equals(1, p[dartx.allMatches](s, 1)[dartx.length]);
|
| + expect$.Expect.equals(0, p[dartx.allMatches](s, 4)[dartx.length]);
|
| + expect$.Expect.equals(0, p[dartx.allMatches](s, s[dartx.length])[dartx.length]);
|
| + expect$.Expect.throws(dart.fn(() => p[dartx.allMatches](s, -1), VoidToIterableOfMatch()));
|
| + expect$.Expect.throws(dart.fn(() => p[dartx.allMatches](s, dart.notNull(s[dartx.length]) + 1), VoidToIterableOfMatch()));
|
| + };
|
| + dart.fn(string_pattern_test.testAllMatchesStart, VoidTodynamic());
|
| + // Exports:
|
| + exports.string_pattern_test = string_pattern_test;
|
| +});
|
|
|