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

Unified Diff: test/span_scanner_test.dart

Issue 1318603008: Add new SpanScanner.eager(). (Closed) Base URL: git@github.com:dart-lang/string_scanner@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/span_scanner_test.dart
diff --git a/test/span_scanner_test.dart b/test/span_scanner_test.dart
index a6249b719e6a52d62655c9307c29522e161618ed..114bff72669c6c8b4878c1c6c8c642cc279b7b57 100644
--- a/test/span_scanner_test.dart
+++ b/test/span_scanner_test.dart
@@ -8,53 +8,63 @@ import 'package:string_scanner/string_scanner.dart';
import 'package:test/test.dart';
void main() {
- var scanner;
- setUp(() {
- scanner = new SpanScanner('foo\nbar\nbaz', sourceUrl: 'source');
+ testForImplementation("lazy", () {
+ return new SpanScanner('foo\nbar\nbaz', sourceUrl: 'source');
});
- test("tracks the span for the last match", () {
- scanner.scan('fo');
- scanner.scan('o\nba');
+ testForImplementation("eager", () {
+ return new SpanScanner.eager('foo\nbar\nbaz', sourceUrl: 'source');
+ });
+}
- var span = scanner.lastSpan;
- expect(span.start.offset, equals(2));
- expect(span.start.line, equals(0));
- expect(span.start.column, equals(2));
- expect(span.start.sourceUrl, equals(Uri.parse('source')));
+void testForImplementation(String name, SpanScanner create()) {
+ group("for a $name scanner", () {
+ var scanner;
+ setUp(() => scanner = create());
- expect(span.end.offset, equals(6));
- expect(span.end.line, equals(1));
- expect(span.end.column, equals(2));
- expect(span.start.sourceUrl, equals(Uri.parse('source')));
+ test("tracks the span for the last match", () {
+ scanner.scan('fo');
+ scanner.scan('o\nba');
- expect(span.text, equals('o\nba'));
- });
+ var span = scanner.lastSpan;
+ expect(span.start.offset, equals(2));
+ expect(span.start.line, equals(0));
+ expect(span.start.column, equals(2));
+ expect(span.start.sourceUrl, equals(Uri.parse('source')));
- test(".spanFrom() returns a span from a previous state", () {
- scanner.scan('fo');
- var state = scanner.state;
- scanner.scan('o\nba');
- scanner.scan('r\nba');
+ expect(span.end.offset, equals(6));
+ expect(span.end.line, equals(1));
+ expect(span.end.column, equals(2));
+ expect(span.start.sourceUrl, equals(Uri.parse('source')));
- var span = scanner.spanFrom(state);
- expect(span.text, equals('o\nbar\nba'));
- });
+ expect(span.text, equals('o\nba'));
+ });
+
+ test(".spanFrom() returns a span from a previous state", () {
+ scanner.scan('fo');
+ var state = scanner.state;
+ scanner.scan('o\nba');
+ scanner.scan('r\nba');
+
+ var span = scanner.spanFrom(state);
+ expect(span.text, equals('o\nbar\nba'));
+ });
- test(".emptySpan returns an empty span at the current location", () {
- scanner.scan('foo\nba');
+ test(".emptySpan returns an empty span at the current location", () {
+ scanner.scan('foo\nba');
- var span = scanner.emptySpan;
- expect(span.start.offset, equals(6));
- expect(span.start.line, equals(1));
- expect(span.start.column, equals(2));
- expect(span.start.sourceUrl, equals(Uri.parse('source')));
+ var span = scanner.emptySpan;
+ expect(span.start.offset, equals(6));
+ expect(span.start.line, equals(1));
+ expect(span.start.column, equals(2));
+ expect(span.start.sourceUrl, equals(Uri.parse('source')));
- expect(span.end.offset, equals(6));
- expect(span.end.line, equals(1));
- expect(span.end.column, equals(2));
- expect(span.start.sourceUrl, equals(Uri.parse('source')));
+ expect(span.end.offset, equals(6));
+ expect(span.end.line, equals(1));
+ expect(span.end.column, equals(2));
+ expect(span.start.sourceUrl, equals(Uri.parse('source')));
- expect(span.text, equals(''));
+ expect(span.text, equals(''));
+ });
});
}
« no previous file with comments | « pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698