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

Side by Side Diff: tests/language/regex/multiline_test.dart

Issue 539153002: Port and integrate the irregexp engine from V8 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed Ivan's comments. Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 /**
6 * @fileoverview Check that various regexp constructs work as intended.
7 * Particularly those regexps that use ^ and $.
8 */
9
10 import 'util.dart';
11 import 'package:expect/expect.dart';
12
13 void main() {
14 assertTrue(new RegExp(r"^bar").hasMatch("bar"));
15 assertTrue(new RegExp(r"^bar").hasMatch("bar\nfoo"));
16 assertFalse(new RegExp(r"^bar").hasMatch("foo\nbar"));
17 assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("bar"));
18 assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("bar\nfoo"));
19 assertTrue(new RegExp(r"^bar", multiLine: true).hasMatch("foo\nbar"));
20
21 assertTrue(new RegExp(r"bar$").hasMatch("bar"));
22 assertFalse(new RegExp(r"bar$").hasMatch("bar\nfoo"));
23 assertTrue(new RegExp(r"bar$").hasMatch("foo\nbar"));
24 assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("bar"));
25 assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("bar\nfoo"));
26 assertTrue(new RegExp(r"bar$", multiLine: true).hasMatch("foo\nbar"));
27
28 assertFalse(new RegExp(r"^bxr").hasMatch("bar"));
29 assertFalse(new RegExp(r"^bxr").hasMatch("bar\nfoo"));
30 assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("bar"));
31 assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("bar\nfoo"));
32 assertFalse(new RegExp(r"^bxr", multiLine: true).hasMatch("foo\nbar"));
33
34 assertFalse(new RegExp(r"bxr$").hasMatch("bar"));
35 assertFalse(new RegExp(r"bxr$").hasMatch("foo\nbar"));
36 assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("bar"));
37 assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("bar\nfoo"));
38 assertFalse(new RegExp(r"bxr$", multiLine: true).hasMatch("foo\nbar"));
39
40
41 assertTrue(new RegExp(r"^.*$").hasMatch(""));
42 assertTrue(new RegExp(r"^.*$").hasMatch("foo"));
43 assertFalse(new RegExp(r"^.*$").hasMatch("\n"));
44 assertTrue(new RegExp(r"^.*$", multiLine: true).hasMatch("\n"));
45
46 assertTrue(new RegExp(r"^[\s]*$").hasMatch(" "));
47 assertTrue(new RegExp(r"^[\s]*$").hasMatch("\n"));
48
49 assertTrue(new RegExp(r"^[^]*$").hasMatch(""));
50 assertTrue(new RegExp(r"^[^]*$").hasMatch("foo"));
51 assertTrue(new RegExp(r"^[^]*$").hasMatch("\n"));
52
53 assertTrue(new RegExp(r"^([()\s]|.)*$").hasMatch("()\n()"));
54 assertTrue(new RegExp(r"^([()\n]|.)*$").hasMatch("()\n()"));
55 assertFalse(new RegExp(r"^([()]|.)*$").hasMatch("()\n()"));
56 assertTrue(new RegExp(r"^([()]|.)*$", multiLine: true).hasMatch("()\n()"));
57 assertTrue(new RegExp(r"^([()]|.)*$", multiLine: true).hasMatch("()\n"));
58 assertTrue(new RegExp(r"^[()]*$", multiLine: true).hasMatch("()\n."));
59
60 assertTrue(new RegExp(r"^[\].]*$").hasMatch("...]..."));
61
62
63 dynamic check_case(lc, uc) {
64 var a = new RegExp("^" + lc + r"$");
65 assertFalse(a.hasMatch(uc));
66 a = new RegExp("^" + lc + r"$", caseSensitive: false);
67 assertTrue(a.hasMatch(uc));
68
69 var A = new RegExp("^" + uc + r"$");
70 assertFalse(A.hasMatch(lc));
71 A = new RegExp("^" + uc + r"$", caseSensitive: false);
72 assertTrue(A.hasMatch(lc));
73
74 a = new RegExp("^[" + lc + r"]$");
75 assertFalse(a.hasMatch(uc));
76 a = new RegExp("^[" + lc + r"]$", caseSensitive: false);
77 assertTrue(a.hasMatch(uc));
78
79 A = new RegExp("^[" + uc + r"]$");
80 assertFalse(A.hasMatch(lc));
81 A = new RegExp("^[" + uc + r"]$", caseSensitive: false);
82 assertTrue(A.hasMatch(lc));
83 }
84
85
86 check_case("a", "A");
87 // Aring
88 check_case(new String.fromCharCode(229), new String.fromCharCode(197));
89 // Russian G
90 check_case(new String.fromCharCode(0x413), new String.fromCharCode(0x433));
91
92
93 assertThrows(() => new RegExp('[z-a]'));
94 }
OLDNEW
« no previous file with comments | « tests/language/regex/many-brackets_test.dart ('k') | tests/language/regex/negative-special-characters_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698