Index: tests/corelib/regexp/standalones_test.dart |
diff --git a/tests/corelib/regexp/standalones_test.dart b/tests/corelib/regexp/standalones_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c5460e2d3e5f47cd59f42c285e10f371cd31aa60 |
--- /dev/null |
+++ b/tests/corelib/regexp/standalones_test.dart |
@@ -0,0 +1,60 @@ |
+// 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. |
+ |
+import 'util.dart'; |
+import 'package:expect/expect.dart'; |
+ |
+void main() { |
+ /* Many of the Mozilla regexp tests used 'toSource' to test their |
+ * results. Since we don't currently support toSource, those tests |
+ * are disabled and standalone versions are included here. |
+ */ |
+ |
+ // Tests from ecma_3/RegExp/regress-78156.js |
+ var string = 'aaa\n789\r\nccc\r\n345'; |
+ var pattern = new RegExp(r"^\d", multiLine: true); |
+ var result = pattern.allMatches(string).toList(); |
+ assertEquals(2, result.length, "1"); |
+ assertEquals('7', result[0].group(0), "2"); |
+ assertEquals('3', result[1].group(0), "3"); |
+ |
+ pattern = new RegExp(r"\d$", multiLine: true); |
+ result = pattern.allMatches(string).toList(); |
+ assertEquals(2, result.length, "4"); |
+ assertEquals('9', result[0].group(0), "5"); |
+ assertEquals('5', result[1].group(0), "6"); |
+ |
+ string = 'aaa\n789\r\nccc\r\nddd'; |
+ pattern = new RegExp(r"^\d", multiLine: true); |
+ result = pattern.allMatches(string).toList(); |
+ assertEquals(1, result.length, "7"); |
+ assertEquals('7', result[0].group(0), "8"); |
+ |
+ pattern = new RegExp(r"\d$", multiLine: true); |
+ result = pattern.allMatches(string).toList(); |
+ assertEquals(1, result.length, "9"); |
+ assertEquals('9', result[0].group(0), "10"); |
+ |
+ // Tests from ecma_3/RegExp/regress-72964.js |
+ pattern = new RegExp(r"[\S]+"); |
+ string = '\u00BF\u00CD\u00BB\u00A7'; |
+ result = pattern.firstMatch(string); |
+ assertEquals(1, result.groupCount + 1, "11"); |
+ assertEquals(string, result.group(0), "12"); |
+ |
+ string = '\u00BF\u00CD \u00BB\u00A7'; |
+ result = pattern.firstMatch(string); |
+ assertEquals(1, result.groupCount + 1, "13"); |
+ assertEquals('\u00BF\u00CD', result.group(0), "14"); |
+ |
+ string = '\u4e00\uac00\u4e03\u4e00'; |
+ result = pattern.firstMatch(string); |
+ assertEquals(1, result.groupCount + 1, "15"); |
+ assertEquals(string, result.group(0), "16"); |
+ |
+ string = '\u4e00\uac00 \u4e03\u4e00'; |
+ result = pattern.firstMatch(string); |
+ assertEquals(1, result.groupCount + 1, "17"); |
+ assertEquals('\u4e00\uac00', result.group(0), "18"); |
+} |