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

Unified Diff: packages/path/test/windows_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 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 | « packages/path/test/utils.dart ('k') | packages/petitparser/.gitignore » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/path/test/windows_test.dart
diff --git a/packages/path/test/windows_test.dart b/packages/path/test/windows_test.dart
index 717043d1fe75b5ba551ac8b38456cf30b9a335ed..364db34385d9e8446291532518fe0dfebc204e08 100644
--- a/packages/path/test/windows_test.dart
+++ b/packages/path/test/windows_test.dart
@@ -2,8 +2,6 @@
// 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 path.test.windows_test;
-
import 'package:test/test.dart';
import 'package:path/path.dart' as path;
@@ -332,6 +330,7 @@ main() {
test('eliminates "." parts', () {
expect(context.normalize(r'.\'), '.');
expect(context.normalize(r'c:\.'), r'c:\');
+ expect(context.normalize(r'c:\foo\.'), r'c:\foo');
expect(context.normalize(r'B:\.\'), r'B:\');
expect(context.normalize(r'\\server\share\.'), r'\\server\share');
expect(context.normalize(r'.\.'), '.');
@@ -353,6 +352,7 @@ main() {
expect(
context.normalize(r'\\server\share\..\../..\a'), r'\\server\share\a');
expect(context.normalize(r'c:\..'), r'c:\');
+ expect(context.normalize(r'c:\foo\..'), r'c:\');
expect(context.normalize(r'A:/..\..\..'), r'A:\');
expect(context.normalize(r'b:\..\..\..\a'), r'b:\a');
expect(context.normalize(r'b:\r\..\..\..\a\c\.\..'), r'b:\a');
@@ -380,6 +380,14 @@ main() {
test('normalizes separators', () {
expect(context.normalize(r'a/b\c'), r'a\b\c');
});
+
+ test('when canonicalizing', () {
+ expect(context.canonicalize('.'), r'c:\root\path');
+ expect(context.canonicalize('foo/bar'), r'c:\root\path\foo\bar');
+ expect(context.canonicalize('FoO'), r'c:\root\path\foo');
+ expect(context.canonicalize('/foo'), r'c:\foo');
+ expect(context.canonicalize('D:/foo'), r'd:\foo');
+ });
});
group('relative', () {
@@ -427,6 +435,12 @@ main() {
expect(context.relative(r'a\.\b\..\c.txt'), r'a\c.txt');
});
+ test('is case-insensitive', () {
+ expect(context.relative(r'c:\'), r'..\..');
+ expect(context.relative(r'c:\RoOt'), r'..');
+ expect(context.relative(r'c:\rOoT\pAtH\a'), r'a');
+ });
+
// Regression
test('from root-only path', () {
expect(context.relative(r'C:\', from: r'C:\'), '.');
@@ -569,6 +583,59 @@ main() {
expect(r.isWithin(r'C:\', r'C:\baz\bang'), isTrue);
expect(r.isWithin('.', r'C:\baz\bang'), isFalse);
});
+
+ test('is case-insensitive', () {
+ expect(context.isWithin(r'FoO', r'fOo\bar'), isTrue);
+ expect(context.isWithin(r'C:\', r'c:\foo'), isTrue);
+ expect(context.isWithin(r'fOo\qux\..\BaR', r'FoO\bAr\baz'), isTrue);
+ });
+ });
+
+ group('equals and hash', () {
+ test('simple cases', () {
+ expectEquals(context, r'foo\bar', r'foo\bar');
+ expectNotEquals(context, r'foo\bar', r'foo\bar\baz');
+ expectNotEquals(context, r'foo\bar', r'foo');
+ expectNotEquals(context, r'foo\bar', r'foo\baz');
+ expectEquals(context, r'foo\bar', r'..\path\foo\bar');
+ expectEquals(context, r'D:\', r'D:\');
+ expectEquals(context, r'C:\', r'..\..');
+ expectEquals(context, r'baz', r'C:\root\path\baz');
+ });
+
+ test('complex cases', () {
+ expectEquals(context, r'foo\.\bar', r'foo\bar');
+ expectEquals(context, r'foo\\bar', r'foo\bar');
+ expectEquals(context, r'foo\qux\..\bar', r'foo\bar');
+ expectNotEquals(context, r'foo\qux\..\bar', r'foo\qux');
+ expectNotEquals(context, r'foo\bar', r'foo\bar\baz\..\..');
+ expectEquals(context, r'foo\bar', r'foo\bar\\\');
+ expectEquals(context, r'foo\.bar', r'foo\.bar');
+ expectNotEquals(context, r'foo\.\bar', r'foo\.bar');
+ expectEquals(context, r'foo\..bar', r'foo\..bar');
+ expectNotEquals(context, r'foo\..\bar', r'foo\..bar');
+ expectEquals(context, r'foo\bar', r'foo\bar\baz\..');
+ expectEquals(context, r'FoO\bAr', r'foo\bar');
+ expectEquals(context, r'foo/\bar', r'foo\/bar');
+ expectEquals(context, r'c:\', r'C:\');
+ expectEquals(context, r'C:\root', r'..');
+ });
+
+ test('with root-relative paths', () {
+ expectEquals(context, r'\foo', r'C:\foo');
+ expectNotEquals(context, r'\foo', 'http://google.com/foo');
+ expectEquals(context, r'C:\root\path\foo\bar', r'foo\bar');
+ });
+
+ test('from a relative root', () {
+ var r = new path.Context(style: path.Style.windows, current: r'foo\bar');
+ expectEquals(r, r'a\b', r'a\b');
+ expectNotEquals(r, '.', r'foo\bar');
+ expectNotEquals(r, '.', r'..\a\b');
+ expectEquals(r, '.', r'..\bar');
+ expectEquals(r, r'C:\baz\bang', r'C:\baz\bang');
+ expectNotEquals(r, r'baz\bang', r'C:\baz\bang');
+ });
});
group('absolute', () {
@@ -639,6 +706,7 @@ main() {
r'\\server\share\path\to\foo#bar');
expect(context.fromUri(Uri.parse('_%7B_%7D_%60_%5E_%20_%22_%25_')),
r'_{_}_`_^_ _"_%_');
+ expect(context.fromUri(Uri.parse('/foo')), r'\foo');
expect(() => context.fromUri(Uri.parse('http://dartlang.org')),
throwsArgumentError);
});
« no previous file with comments | « packages/path/test/utils.dart ('k') | packages/petitparser/.gitignore » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698