| Index: tests/standalone/io/path_test.dart
|
| diff --git a/tests/standalone/io/path_test.dart b/tests/standalone/io/path_test.dart
|
| index 0e20a07fab6d1b905cb4e8f91981de502560c46f..b6d1b9911525d2a804807c631280197fb924d8d3 100644
|
| --- a/tests/standalone/io/path_test.dart
|
| +++ b/tests/standalone/io/path_test.dart
|
| @@ -8,6 +8,7 @@ import "dart:io";
|
|
|
| void main() {
|
| testBaseFunctions();
|
| + testRaw();
|
| testCanonicalize();
|
| testJoinAppend();
|
| testRelativeTo();
|
| @@ -58,30 +59,33 @@ void testBaseFunctions() {
|
|
|
| // Test the special path cleaning operations on the Windows platform.
|
| if (Platform.operatingSystem == 'windows') {
|
| - testGetters(new Path.fromNative(r"c:\foo\bar\fisk.hest"),
|
| + testGetters(new Path(r"c:\foo\bar\fisk.hest"),
|
| ['/c:/foo/bar', 'fisk.hest', 'fisk', 'hest'],
|
| 'absolute canonical');
|
| - testGetters(new Path.fromNative("\\foo\\bar\\"),
|
| + testGetters(new Path("\\foo\\bar\\"),
|
| ['/foo/bar', '', '', ''],
|
| 'absolute canonical trailing');
|
| - testGetters(new Path.fromNative("\\foo\\bar\\hest"),
|
| + testGetters(new Path("\\foo\\bar\\hest"),
|
| ['/foo/bar', 'hest', 'hest', ''],
|
| 'absolute canonical');
|
| - testGetters(new Path.fromNative(r"foo/bar\hest/.fisk"),
|
| + testGetters(new Path(r"foo/bar\hest/.fisk"),
|
| ['foo/bar/hest', '.fisk', '', 'fisk'],
|
| 'canonical');
|
| - testGetters(new Path.fromNative(r"foo//bar\\hest/\/.fisk."),
|
| + testGetters(new Path(r"foo//bar\\hest/\/.fisk."),
|
| ['foo//bar//hest', '.fisk.', '.fisk', ''],
|
| '');
|
| } else {
|
| // Make sure that backslashes are uninterpreted on other platforms.
|
| - testGetters(new Path.fromNative(r"/foo\bar/bif/fisk.hest"),
|
| + testGetters(new Path(r"c:\foo\bar\fisk.hest"),
|
| + ['', r'c:\foo\bar\fisk.hest', r'c:\foo\bar\fisk', 'hest'],
|
| + 'canonical');
|
| + testGetters(new Path(r"/foo\bar/bif/fisk.hest"),
|
| [r'/foo\bar/bif', 'fisk.hest', 'fisk', 'hest'],
|
| 'absolute canonical');
|
| - testGetters(new Path.fromNative(r"//foo\bar///bif////fisk.hest"),
|
| + testGetters(new Path(r"//foo\bar///bif////fisk.hest"),
|
| [r'//foo\bar///bif', 'fisk.hest', 'fisk', 'hest'],
|
| 'absolute');
|
| - testGetters(new Path.fromNative(r"/foo\ bar/bif/gule\ fisk.hest"),
|
| + testGetters(new Path(r"/foo\ bar/bif/gule\ fisk.hest"),
|
| [r'/foo\ bar/bif', r'gule\ fisk.hest', r'gule\ fisk', 'hest'],
|
| 'absolute canonical');
|
| }
|
| @@ -104,6 +108,12 @@ void testGetters(Path path, List components, String properties) {
|
| Expect.equals(path.hasTrailingSeparator, properties.contains('trailing'));
|
| }
|
|
|
| +void testRaw() {
|
| + Expect.equals(new Path.raw('c:\\foo/bar bad').toString(), 'c:\\foo/bar bad');
|
| + Expect.equals(new Path.raw('').toString(), '');
|
| + Expect.equals(new Path.raw('\\bar\u2603\n.').toString(), '\\bar\u2603\n.');
|
| +}
|
| +
|
| void testCanonicalize() {
|
| Function t = (input, canonicalized) {
|
| Expect.equals(canonicalized, new Path(input).canonicalize().toString());
|
| @@ -129,8 +139,13 @@ void testCanonicalize() {
|
| t('foo/bar/../../../joe/../..', '../..');
|
| t('a/b/c/../../..d/./.e/f././', 'a/..d/.e/f./');
|
| t('/%:/foo/../..', '/%:/');
|
| - t('c:/foo/../../..', '..');
|
| - t('c:/foo/../../bad/dad/./..', 'bad');
|
| + if (Platform.operatingSystem == 'windows') {
|
| + t('c:/foo/../../..', '/c:/');
|
| + t('c:/foo/../../bad/dad/./..', '/c:/bad');
|
| + } else {
|
| + t('c:/foo/../../..', '..');
|
| + t('c:/foo/../../bad/dad/./..', 'bad');
|
| + }
|
| }
|
|
|
| void testJoinAppend() {
|
| @@ -201,7 +216,7 @@ void testRelativeTo() {
|
| void testWindowsShare() {
|
| // Windows share information only makes sense on Windows.
|
| if (Platform.operatingSystem != 'windows') return;
|
| - var path = new Path.fromNative(r'\\share\a\b\..\c');
|
| + var path = new Path(r'\\share\a\b\..\c');
|
| Expect.isTrue(path.isAbsolute);
|
| Expect.isTrue(path.isWindowsShare);
|
| Expect.isFalse(path.hasTrailingSeparator);
|
|
|