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

Side by Side Diff: tests/corelib/string_pattern_test.dart

Issue 460613002: Add optional start index to Pattern.allMatches. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add extra test. Created 6 years, 4 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
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 String.allMatches. 4 // Dart test for testing String.allMatches.
5 5
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 7
8 String str = "this is a string with hello here and hello there"; 8 String str = "this is a string with hello here and hello there";
9 9
10 main() { 10 main() {
11 testNoMatch(); 11 testNoMatch();
12 testOneMatch(); 12 testOneMatch();
13 testTwoMatches(); 13 testTwoMatches();
14 testEmptyPattern(); 14 testEmptyPattern();
15 testEmptyString(); 15 testEmptyString();
16 testEmptyPatternAndString(); 16 testEmptyPatternAndString();
17 testMatchAsPrefix(); 17 testMatchAsPrefix();
18 testAllMatchesStart();
18 } 19 }
19 20
20 testNoMatch() { 21 testNoMatch() {
21 // Also tests that RegExp groups don't work. 22 // Also tests that RegExp groups don't work.
22 String helloPattern = "with (hello)"; 23 String helloPattern = "with (hello)";
23 Iterable<Match> matches = helloPattern.allMatches(str); 24 Iterable<Match> matches = helloPattern.allMatches(str);
24 Expect.isFalse(matches.iterator.moveNext()); 25 Expect.isFalse(matches.iterator.moveNext());
25 } 26 }
26 27
27 testOneMatch() { 28 testOneMatch() {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 Expect.isNull(pattern.matchAsPrefix(str, 2)); 91 Expect.isNull(pattern.matchAsPrefix(str, 2));
91 m = pattern.matchAsPrefix(str, 3); 92 m = pattern.matchAsPrefix(str, 3);
92 Expect.equals("an", m[0]); 93 Expect.equals("an", m[0]);
93 Expect.equals(3, m.start); 94 Expect.equals(3, m.start);
94 Expect.isNull(pattern.matchAsPrefix(str, 4)); 95 Expect.isNull(pattern.matchAsPrefix(str, 4));
95 Expect.isNull(pattern.matchAsPrefix(str, 5)); 96 Expect.isNull(pattern.matchAsPrefix(str, 5));
96 Expect.isNull(pattern.matchAsPrefix(str, 6)); 97 Expect.isNull(pattern.matchAsPrefix(str, 6));
97 Expect.throws(() => pattern.matchAsPrefix(str, -1)); 98 Expect.throws(() => pattern.matchAsPrefix(str, -1));
98 Expect.throws(() => pattern.matchAsPrefix(str, 7)); 99 Expect.throws(() => pattern.matchAsPrefix(str, 7));
99 } 100 }
101
102 testAllMatchesStart() {
103 String p = "ass";
104 String s = "assassin";
105 Expect.equals(2, p.allMatches(s).length);
106 Expect.equals(2, p.allMatches(s, 0).length);
107 Expect.equals(1, p.allMatches(s, 1).length);
108 Expect.equals(0, p.allMatches(s, 4).length);
109 Expect.equals(0, p.allMatches(s, s.length).length);
110 Expect.throws(() => p.allMatches(s, -1));
111 Expect.throws(() => p.allMatches(s, s.length + 1));
112 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698