| Index: tests/language/regex/multiline_test.dart
|
| diff --git a/tests/language/regex/multiline_test.dart b/tests/language/regex/multiline_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..507ffc8ba1ced91675f547005446abef8e1f6d34
|
| --- /dev/null
|
| +++ b/tests/language/regex/multiline_test.dart
|
| @@ -0,0 +1,94 @@
|
| +// Copyright (c) 2014, 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.
|
| +
|
| +/**
|
| + * @fileoverview Check that various regexp constructs work as intended.
|
| + * Particularly those regexps that use ^ and $.
|
| + */
|
| +
|
| +import 'util.dart';
|
| +import 'package:expect/expect.dart';
|
| +
|
| +void main() {
|
| + assertTrue(new RegExp(r"^bar").hasMatch("bar"));
|
| + assertTrue(new RegExp(r"^bar").hasMatch("bar\nfoo"));
|
| + assertFalse(new RegExp(r"^bar").hasMatch("foo\nbar"));
|
| + assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("bar"));
|
| + assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("bar\nfoo"));
|
| + assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("foo\nbar"));
|
| +
|
| + assertTrue(new RegExp(r"bar$").hasMatch("bar"));
|
| + assertFalse(new RegExp(r"bar$").hasMatch("bar\nfoo"));
|
| + assertTrue(new RegExp(r"bar$").hasMatch("foo\nbar"));
|
| + assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("bar"));
|
| + assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("bar\nfoo"));
|
| + assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("foo\nbar"));
|
| +
|
| + assertFalse(new RegExp(r"^bxr").hasMatch("bar"));
|
| + assertFalse(new RegExp(r"^bxr").hasMatch("bar\nfoo"));
|
| + assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("bar"));
|
| + assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("bar\nfoo"));
|
| + assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("foo\nbar"));
|
| +
|
| + assertFalse(new RegExp(r"bxr$").hasMatch("bar"));
|
| + assertFalse(new RegExp(r"bxr$").hasMatch("foo\nbar"));
|
| + assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("bar"));
|
| + assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("bar\nfoo"));
|
| + assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("foo\nbar"));
|
| +
|
| +
|
| + assertTrue(new RegExp(r"^.*$").hasMatch(""));
|
| + assertTrue(new RegExp(r"^.*$").hasMatch("foo"));
|
| + assertFalse(new RegExp(r"^.*$").hasMatch("\n"));
|
| + assertTrue(new RegExp(r"^.*$", multiLine: true).hasMatch("\n"));
|
| +
|
| + assertTrue(new RegExp(r"^[\s]*$").hasMatch(" "));
|
| + assertTrue(new RegExp(r"^[\s]*$").hasMatch("\n"));
|
| +
|
| + assertTrue(new RegExp(r"^[^]*$").hasMatch(""));
|
| + assertTrue(new RegExp(r"^[^]*$").hasMatch("foo"));
|
| + assertTrue(new RegExp(r"^[^]*$").hasMatch("\n"));
|
| +
|
| + assertTrue(new RegExp(r"^([()\s]|.)*$").hasMatch("()\n()"));
|
| + assertTrue(new RegExp(r"^([()\n]|.)*$").hasMatch("()\n()"));
|
| + assertFalse(new RegExp(r"^([()]|.)*$").hasMatch("()\n()"));
|
| + assertTrue(new RegExp(r"^([()]|.)*$", multiLine: true).hasMatch("()\n()"));
|
| + assertTrue(new RegExp(r"^([()]|.)*$", multiLine: true).hasMatch("()\n"));
|
| + assertTrue(new RegExp(r"^[()]*$", multiLine: true).hasMatch("()\n."));
|
| +
|
| + assertTrue(new RegExp(r"^[\].]*$").hasMatch("...]..."));
|
| +
|
| +
|
| + dynamic check_case(lc, uc) {
|
| + var a = new RegExp("^" + lc + r"$");
|
| + assertFalse(a.hasMatch(uc));
|
| + a = new RegExp("^" + lc + r"$", caseSensitive: false);
|
| + assertTrue(a.hasMatch(uc));
|
| +
|
| + var A = new RegExp("^" + uc + r"$");
|
| + assertFalse(A.hasMatch(lc));
|
| + A = new RegExp("^" + uc + r"$", caseSensitive: false);
|
| + assertTrue(A.hasMatch(lc));
|
| +
|
| + a = new RegExp("^[" + lc + r"]$");
|
| + assertFalse(a.hasMatch(uc));
|
| + a = new RegExp("^[" + lc + r"]$", caseSensitive: false);
|
| + assertTrue(a.hasMatch(uc));
|
| +
|
| + A = new RegExp("^[" + uc + r"]$");
|
| + assertFalse(A.hasMatch(lc));
|
| + A = new RegExp("^[" + uc + r"]$", caseSensitive: false);
|
| + assertTrue(A.hasMatch(lc));
|
| + }
|
| +
|
| +
|
| + check_case("a", "A");
|
| + // Aring
|
| + check_case(new String.fromCharCode(229), new String.fromCharCode(197));
|
| + // Russian G
|
| + check_case(new String.fromCharCode(0x413), new String.fromCharCode(0x433));
|
| +
|
| +
|
| + assertThrows(() => new RegExp('[z-a]'));
|
| +}
|
|
|