OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 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 | 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 | 4 |
5 library string_scanner.error_test; | |
6 | |
7 import 'package:string_scanner/string_scanner.dart'; | 5 import 'package:string_scanner/string_scanner.dart'; |
8 import 'package:test/test.dart'; | 6 import 'package:test/test.dart'; |
9 | 7 |
10 import 'utils.dart'; | 8 import 'utils.dart'; |
11 | 9 |
12 void main() { | 10 void main() { |
13 test('defaults to the last match', () { | 11 test('defaults to the last match', () { |
14 var scanner = new StringScanner('foo bar baz'); | 12 var scanner = new StringScanner('foo bar baz'); |
15 scanner.expect('foo '); | 13 scanner.expect('foo '); |
16 scanner.expect('bar'); | 14 scanner.expect('bar'); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 scanner.expect('foo '); | 52 scanner.expect('foo '); |
55 scanner.expect('bar'); | 53 scanner.expect('bar'); |
56 var match = scanner.lastMatch; | 54 var match = scanner.lastMatch; |
57 scanner.position = 0; | 55 scanner.position = 0; |
58 expect(() => scanner.error('oh no!', match: match), | 56 expect(() => scanner.error('oh no!', match: match), |
59 throwsStringScannerException('bar')); | 57 throwsStringScannerException('bar')); |
60 }); | 58 }); |
61 }); | 59 }); |
62 | 60 |
63 group("with position and/or length", () { | 61 group("with position and/or length", () { |
64 test('defaults to length 1', () { | 62 test('defaults to length 0', () { |
65 var scanner = new StringScanner('foo bar baz'); | 63 var scanner = new StringScanner('foo bar baz'); |
66 scanner.expect('foo '); | 64 scanner.expect('foo '); |
67 expect(() => scanner.error('oh no!', position: 1), | 65 expect(() => scanner.error('oh no!', position: 1), |
68 throwsStringScannerException('o')); | 66 throwsStringScannerException('')); |
69 }); | 67 }); |
70 | 68 |
71 test('defaults to the current position', () { | 69 test('defaults to the current position', () { |
72 var scanner = new StringScanner('foo bar baz'); | 70 var scanner = new StringScanner('foo bar baz'); |
73 scanner.expect('foo '); | 71 scanner.expect('foo '); |
74 expect(() => scanner.error('oh no!', length: 3), | 72 expect(() => scanner.error('oh no!', length: 3), |
75 throwsStringScannerException('bar')); | 73 throwsStringScannerException('bar')); |
76 }); | 74 }); |
77 | 75 |
78 test('supports an earlier position', () { | 76 test('supports an earlier position', () { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 test("if position + length is outside the string", () { | 138 test("if position + length is outside the string", () { |
141 expect(() => scanner.error("oh no!", position: 7, length: 7), | 139 expect(() => scanner.error("oh no!", position: 7, length: 7), |
142 throwsArgumentError); | 140 throwsArgumentError); |
143 }); | 141 }); |
144 | 142 |
145 test("if length is negative", () { | 143 test("if length is negative", () { |
146 expect(() => scanner.error("oh no!", length: -1), throwsArgumentError); | 144 expect(() => scanner.error("oh no!", length: -1), throwsArgumentError); |
147 }); | 145 }); |
148 }); | 146 }); |
149 } | 147 } |
OLD | NEW |