Chromium Code Reviews| Index: utils/tests/pub/path/path_windows_test.dart |
| diff --git a/utils/tests/pub/path/path_windows_test.dart b/utils/tests/pub/path/path_windows_test.dart |
| index 1861a675b981ccdf723b6bea0b375bf6db159b96..232fe34e4ed31b6a1cabba749275f0d3f7769930 100644 |
| --- a/utils/tests/pub/path/path_windows_test.dart |
| +++ b/utils/tests/pub/path/path_windows_test.dart |
| @@ -35,6 +35,30 @@ main() { |
| expect(builder.extension(r'a.b/c'), r''); |
| }); |
| + test('rootOf', () { |
| + expect(builder.rootOf(''), null); |
| + expect(builder.rootOf('a'), null); |
| + expect(builder.rootOf(r'a\b'), null); |
| + expect(builder.rootOf(r'C:\a\c'), 'C:\\'); |
|
Bob Nystrom
2012/12/12 00:01:20
Can you use raw strings for these? Here and below.
nweiz
2012/12/12 00:50:37
It screws with my editor to have a string ending w
Bob Nystrom
2012/12/12 01:02:13
It screws up my editor too (I need to fix the subl
nweiz
2012/12/12 02:45:57
Done.
|
| + expect(builder.rootOf('C:\\'), 'C:\\'); |
| + expect(builder.rootOf('C:/'), 'C:/'); |
| + |
| + // TODO(nweiz): enable this once issue 7323 is fixed. |
| + // expect(builder.rootOf(r'\\server\a\b'), '\\\\server\\'); |
| + }); |
| + |
| + test('dirname', () { |
| + expect(builder.dirname(r''), '.'); |
| + expect(builder.dirname(r'a'), '.'); |
| + expect(builder.dirname(r'a\b'), 'a'); |
| + expect(builder.dirname(r'a\b\c'), r'a\b'); |
| + expect(builder.dirname(r'a\b.c'), 'a'); |
| + expect(builder.dirname('a\\'), 'a'); |
| + expect(builder.dirname('a/'), 'a'); |
| + expect(builder.dirname(r'a\.'), 'a'); |
| + expect(builder.dirname(r'a\b/c'), r'a\b'); |
| + }); |
| + |
| test('basename', () { |
| expect(builder.basename(r''), ''); |
| expect(builder.basename(r'a'), 'a'); |
| @@ -123,6 +147,38 @@ main() { |
| expect(builder.join('a', r'c:\b', 'c', 'd'), r'c:\b\c\d'); |
| expect(builder.join('a', r'\\b', r'\\c', 'd'), r'\\c\d'); |
| }); |
| + |
| + test('ignores trailing nulls', () { |
| + expect(builder.join('a', null), equals('a')); |
| + expect(builder.join('a', 'b', 'c', null, null), equals(r'a\b\c')); |
| + }); |
| + |
| + test('disallows intermediate nulls', () { |
| + expect(() => builder.join('a', null, 'b'), throwsArgumentError); |
| + expect(() => builder.join(null, 'a'), throwsArgumentError); |
| + }); |
| + }); |
| + |
| + group('split', () { |
| + test('simple cases', () { |
| + expect(builder.split('foo'), equals(['foo'])); |
| + expect(builder.split(r'foo\bar'), equals(['foo', 'bar'])); |
| + expect(builder.split(r'foo\bar\baz'), equals(['foo', 'bar', 'baz'])); |
| + expect(builder.split(r'foo\..\bar\.\baz'), |
| + equals(['foo', '..', 'bar', '.', 'baz'])); |
| + expect(builder.split(r'foo\\bar\\\baz'), equals(['foo', 'bar', 'baz'])); |
| + expect(builder.split(r'foo\/\baz'), equals(['foo', 'baz'])); |
| + }); |
| + |
| + test('includes the root for absolute paths', () { |
| + expect(builder.split(r'C:\foo\bar\baz'), equals(['C:\\', 'foo', 'bar', 'baz'])); |
|
Bob Nystrom
2012/12/12 00:01:20
Long line.
nweiz
2012/12/12 00:50:37
Done.
|
| + expect(builder.split(r'C:\\'), equals(['C:\\'])); |
| + |
| + // TODO(nweiz): enable these once issue 7323 is fixed. |
| + // expect(builder.split(r'\\server\foo\bar\baz'), |
| + // equals(['\\\\server\\', 'foo', 'bar', 'baz'])); |
| + // expect(builder.split('\\\\server\\'), equals(['\\\\server\\'])); |
| + }); |
| }); |
| group('normalize', () { |
| @@ -259,6 +315,10 @@ main() { |
| expect(r.relative(r'C:\dir.ext\file'), 'file'); |
| }); |
| + test('with a root parameter', () { |
| + expect(builder.relative(r'C:\foo\bar\baz', to: r'C:\foo\bar'), equals('baz')); |
|
Bob Nystrom
2012/12/12 00:01:20
Long line.
nweiz
2012/12/12 00:50:37
Done.
|
| + }); |
| + |
| test('given absolute with different root prefix', () { |
| expect(builder.relative(r'D:\a\b'), r'D:\a\b'); |
| expect(builder.relative(r'\\a\b'), r'\\a\b'); |