Index: third_party/pkg/route_hierarchical/test/url_pattern_test.dart |
diff --git a/third_party/pkg/route_hierarchical/test/url_pattern_test.dart b/third_party/pkg/route_hierarchical/test/url_pattern_test.dart |
deleted file mode 100644 |
index 439daf124296c05e701e73ea1dae3994bcfff0e0..0000000000000000000000000000000000000000 |
--- a/third_party/pkg/route_hierarchical/test/url_pattern_test.dart |
+++ /dev/null |
@@ -1,94 +0,0 @@ |
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
-library route.url_pattern_test; |
- |
-import 'package:unittest/unittest.dart'; |
-import 'package:route_hierarchical/url_pattern.dart'; |
- |
-main() { |
- test('patterns with no groups', () { |
- checkPattern('/', '/', [], ['', 'a', '/a']); |
- checkPattern('a', 'a', [], ['', '/', '/a']); |
- }); |
- |
- test('patterns with basic groups', () { |
- checkPattern(r'(\w+)', 'ab', ['ab'], ['(ab)', '', ' ']); |
- }); |
- |
- test('patterns with escaping', () { |
- checkPattern(r'\\', r'\', []); |
- // it's ok to leave a hanging escape? |
- checkPattern(r'\\\', r'\', []); |
- checkPattern(r'\a', r'a', []); |
- checkPattern(r'\(a\)', '(a)', [], ['a']); |
- checkPattern(r'(a\))', 'a)', ['a)'], ['a']); |
- checkPattern(r'(\\w)', r'\w', [r'\w'], [r'\a']); |
- }); |
- |
- test('patterns with more complicated groups', () { |
- checkPattern(r'/(\w+)', '/foo', ['foo'], ['foo']); |
- checkPattern(r'/(\w+)/(\w+)', '/foo/bar', ['foo', 'bar']); |
- // these are odd cases. maybe we should ban nested groups. |
- checkPattern(r'((\w+))', 'a', ['a', 'a'], ['(a)']); |
- checkPattern(r'((\w+)(\d+))', 'a1', ['a1', 'a', '1'], ['(a1)']); |
- }); |
- |
- test('disallow ambiguous groups', () { |
- expect(() => new UrlPattern(r'(\w+)(\w+)'), throws); |
- }); |
- |
- test('disallow unmatched parens', () { |
- expect(() => new UrlPattern('('), throws); |
- expect(() => new UrlPattern(')'), throws); |
- expect(() => new UrlPattern('(()'), throws); |
- expect(() => new UrlPattern('())'), throws); |
- }); |
- |
- test('patterns with fragments matches hash and path URLs', () { |
- var pattern = new UrlPattern(r'/foo#(\w+)'); |
- expect(pattern.matches('/foo#abc'), true); |
- expect(pattern.matches('/foo/abc'), true); |
- expect(pattern.reverse(['abc'], useFragment: true), '/foo#abc'); |
- expect(pattern.reverse(['abc'], useFragment: false), '/foo/abc'); |
- }); |
- |
- test('special chars outside groups', () { |
- checkPattern('^', '^', []); |
- checkPattern(r'$', r'$', []); |
- checkPattern('.', '.', [], ['a']); |
- checkPattern('|', '|', [], ['a']); |
- checkPattern('+', '+', [], ['a']); |
- checkPattern('[', '[', [], ['a']); |
- checkPattern(']', ']', [], ['a']); |
- checkPattern('{', '{', [], ['a']); |
- checkPattern('}', '}', [], ['a']); |
- }); |
- |
- test('matchesNonFragment() only matches the path', () { |
- var pattern = new UrlPattern(r'/foo#(\w+)'); |
- expect(pattern.matches('/foo'), false); |
- expect(pattern.matchesNonFragment('/foo'), true); |
- expect(() { new UrlPattern(r'(#)'); }, throws); |
- expect(() { new UrlPattern(r'##'); }, throws); |
- }); |
-} |
- |
-/** |
- * Performs the following checks on a UrlPattern constructed from [p]: |
- * * [url] matches the pattern. |
- * * Using the pattern to parse [url] produces the arguments in [args]. |
- * * Reversing the pattern with [args] produces the String [url]. |
- * * None of the Strings in [nonMatches] match the pattern. |
- */ |
-checkPattern(String p, String url, List args, [List nonMatches]) { |
- var pattern = new UrlPattern(p); |
- expect(pattern.matches(url), true); |
- expect(pattern.reverse(args), url); |
- expect(pattern.parse(url), orderedEquals(args)); |
- if (nonMatches != null) { |
- for (var url in nonMatches) { |
- expect(pattern.matches(url), false); |
- } |
- } |
-} |