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

Side by Side Diff: tests/language/reg_exp_test.dart

Issue 15709018: Proof-of-concept matchPrefix on Pattern. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed other comments. Created 7 years, 6 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
« no previous file with comments | « tests/corelib/string_pattern_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 // Dart test for testing regular expressions in Dart. 4 // Dart test for testing regular expressions in Dart.
5 5
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 7
8 void main() { 8 void main() {
9 RegExp exp = new RegExp(r"(\w+)"); 9 RegExp exp = new RegExp(r"(\w+)");
10 String str = "Parse my string"; 10 String str = "Parse my string";
11 List<Match> matches = exp.allMatches(str).toList(); 11 List<Match> matches = exp.allMatches(str).toList();
12 Expect.equals(3, matches.length); 12 Expect.equals(3, matches.length);
13 Expect.equals("Parse", matches[0].group(0)); 13 Expect.equals("Parse", matches[0].group(0));
14 Expect.equals("my", matches[1].group(0)); 14 Expect.equals("my", matches[1].group(0));
15 Expect.equals("string", matches[2].group(0)); 15 Expect.equals("string", matches[2].group(0));
16 16
17 // Check that allMatches progresses correctly for empty matches, and that 17 // Check that allMatches progresses correctly for empty matches, and that
18 // it includes the empty match at the end position. 18 // it includes the empty match at the end position.
19 exp = new RegExp("a?"); 19 exp = new RegExp("a?");
20 str = "babba"; 20 str = "babba";
21 Expect.listEquals(["", "a", "", "", "a", ""], 21 Expect.listEquals(["", "a", "", "", "a", ""],
22 exp.allMatches(str).map((x)=>x[0]).toList()); 22 exp.allMatches(str).map((x)=>x[0]).toList());
23 23
24 // Regression test for http://dartbug.com/2980 24 // Regression test for http://dartbug.com/2980
25 exp = new RegExp("^", multiLine: true); // Any zero-length match will work. 25 exp = new RegExp("^", multiLine: true); // Any zero-length match will work.
26 str = "foo\nbar\nbaz"; 26 str = "foo\nbar\nbaz";
27 Expect.equals(" foo\n bar\n baz", str.replaceAll(exp, " ")); 27 Expect.equals(" foo\n bar\n baz", str.replaceAll(exp, " "));
28
29 exp = new RegExp(r"(\w+)");
30 Expect.isNull(exp.matchAsPrefix(" xyz ab"));
31 Expect.isNull(exp.matchAsPrefix(" xyz ab", 0));
32
33 var m = exp.matchAsPrefix(" xyz ab", 1);
34 Expect.equals("xyz", m[0]);
35 Expect.equals("xyz", m[1]);
36 Expect.equals(1, m.groupCount);
37
38 m = exp.matchAsPrefix(" xyz ab", 2);
39 Expect.equals("yz", m[0]);
40 Expect.equals("yz", m[1]);
41 Expect.equals(1, m.groupCount);
42
43 m = exp.matchAsPrefix(" xyz ab", 3);
44 Expect.equals("z", m[0]);
45 Expect.equals("z", m[1]);
46 Expect.equals(1, m.groupCount);
47
48 Expect.isNull(exp.matchAsPrefix(" xyz ab", 4));
49
50 m = exp.matchAsPrefix(" xyz ab", 5);
51 Expect.equals("ab", m[0]);
52 Expect.equals("ab", m[1]);
53 Expect.equals(1, m.groupCount);
54
55 m = exp.matchAsPrefix(" xyz ab", 6);
56 Expect.equals("b", m[0]);
57 Expect.equals("b", m[1]);
58 Expect.equals(1, m.groupCount);
59
60 Expect.isNull(exp.matchAsPrefix(" xyz ab", 7));
61
62 Expect.throws(() => exp.matchAsPrefix(" xyz ab", -1));
63 Expect.throws(() => exp.matchAsPrefix(" xyz ab", 8));
28 } 64 }
OLDNEW
« no previous file with comments | « tests/corelib/string_pattern_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698