| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 path.test.windows_test; | 5 library path.test.windows_test; |
| 6 | 6 |
| 7 import 'package:unittest/unittest.dart'; | 7 import 'package:unittest/unittest.dart'; |
| 8 import 'package:path/path.dart' as path; | 8 import 'package:path/path.dart' as path; |
| 9 | 9 |
| 10 main() { | 10 main() { |
| 11 var builder = new path.Builder(style: path.Style.windows, | 11 var builder = new path.Builder(style: path.Style.windows, |
| 12 root: r'C:\root\path'); | 12 root: r'C:\root\path'); |
| 13 | 13 |
| 14 if (new path.Builder().style == path.Style.windows) { | 14 if (new path.Builder().style == path.Style.windows) { |
| 15 group('absolute', () { | 15 group('absolute', () { |
| 16 expect(path.absolute(r'a\b.txt'), path.join(path.current, r'a\b.txt')); | 16 expect(path.absolute(r'a\b.txt'), path.join(path.current, r'a\b.txt')); |
| 17 expect(path.absolute(r'C:\a\b.txt'), r'C:\a\b.txt'); | 17 expect(path.absolute(r'C:\a\b.txt'), r'C:\a\b.txt'); |
| 18 expect(path.absolute(r'\\a\b.txt'), r'\\a\b.txt'); | 18 expect(path.absolute(r'\\a\b.txt'), r'\\a\b.txt'); |
| 19 }); | 19 }); |
| 20 } | 20 } |
| 21 | 21 |
| 22 group('separator', () { | 22 group('separator', () { |
| 23 expect(builder.separator, '\\'); | 23 expect(builder.separator, '\\'); |
| 24 }); | 24 }); |
| 25 | 25 |
| 26 test('extension', () { | 26 test('extension', () { |
| 27 expect(builder.extension(''), ''); | 27 expect(builder.extension(''), ''); |
| 28 expect(builder.extension('.'), ''); |
| 29 expect(builder.extension('..'), ''); |
| 30 expect(builder.extension('a/..'), ''); |
| 28 expect(builder.extension('foo.dart'), '.dart'); | 31 expect(builder.extension('foo.dart'), '.dart'); |
| 29 expect(builder.extension('foo.dart.js'), '.js'); | 32 expect(builder.extension('foo.dart.js'), '.js'); |
| 33 expect(builder.extension('foo bar\gule fisk.dart.js'), '.js'); |
| 30 expect(builder.extension(r'a.b\c'), ''); | 34 expect(builder.extension(r'a.b\c'), ''); |
| 31 expect(builder.extension('a.b/c.d'), '.d'); | 35 expect(builder.extension('a.b/c.d'), '.d'); |
| 32 expect(builder.extension(r'~\.bashrc'), ''); | 36 expect(builder.extension(r'~\.bashrc'), ''); |
| 33 expect(builder.extension(r'a.b/c'), r''); | 37 expect(builder.extension(r'a.b/c'), r''); |
| 34 }); | 38 }); |
| 35 | 39 |
| 36 test('rootPrefix', () { | 40 test('rootPrefix', () { |
| 37 expect(builder.rootPrefix(''), ''); | 41 expect(builder.rootPrefix(''), ''); |
| 38 expect(builder.rootPrefix('a'), ''); | 42 expect(builder.rootPrefix('a'), ''); |
| 39 expect(builder.rootPrefix(r'a\b'), ''); | 43 expect(builder.rootPrefix(r'a\b'), ''); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 57 expect(builder.dirname(r'a\b/c'), r'a\b'); | 61 expect(builder.dirname(r'a\b/c'), r'a\b'); |
| 58 expect(builder.dirname(r'C:\a'), r'C:\'); | 62 expect(builder.dirname(r'C:\a'), r'C:\'); |
| 59 expect(builder.dirname(r'C:\\\a'), r'C:\'); | 63 expect(builder.dirname(r'C:\\\a'), r'C:\'); |
| 60 expect(builder.dirname(r'C:\'), r'C:\'); | 64 expect(builder.dirname(r'C:\'), r'C:\'); |
| 61 expect(builder.dirname(r'C:\\\'), r'C:\'); | 65 expect(builder.dirname(r'C:\\\'), r'C:\'); |
| 62 expect(builder.dirname(r'a\b\'), r'a'); | 66 expect(builder.dirname(r'a\b\'), r'a'); |
| 63 expect(builder.dirname(r'a/b\c'), 'a/b'); | 67 expect(builder.dirname(r'a/b\c'), 'a/b'); |
| 64 expect(builder.dirname(r'a\\'), r'.'); | 68 expect(builder.dirname(r'a\\'), r'.'); |
| 65 expect(builder.dirname(r'a\b\\'), 'a'); | 69 expect(builder.dirname(r'a\b\\'), 'a'); |
| 66 expect(builder.dirname(r'a\\b'), 'a'); | 70 expect(builder.dirname(r'a\\b'), 'a'); |
| 71 expect(builder.dirname(r'foo bar\gule fisk'), 'foo bar'); |
| 67 }); | 72 }); |
| 68 | 73 |
| 69 test('basename', () { | 74 test('basename', () { |
| 70 expect(builder.basename(r''), ''); | 75 expect(builder.basename(r''), ''); |
| 76 expect(builder.basename(r'.'), '.'); |
| 77 expect(builder.basename(r'..'), '..'); |
| 78 expect(builder.basename(r'.hest'), '.hest'); |
| 71 expect(builder.basename(r'a'), 'a'); | 79 expect(builder.basename(r'a'), 'a'); |
| 72 expect(builder.basename(r'a\b'), 'b'); | 80 expect(builder.basename(r'a\b'), 'b'); |
| 73 expect(builder.basename(r'a\b\c'), 'c'); | 81 expect(builder.basename(r'a\b\c'), 'c'); |
| 74 expect(builder.basename(r'a\b.c'), 'b.c'); | 82 expect(builder.basename(r'a\b.c'), 'b.c'); |
| 75 expect(builder.basename(r'a\'), 'a'); | 83 expect(builder.basename(r'a\'), 'a'); |
| 76 expect(builder.basename(r'a/'), 'a'); | 84 expect(builder.basename(r'a/'), 'a'); |
| 77 expect(builder.basename(r'a\.'), '.'); | 85 expect(builder.basename(r'a\.'), '.'); |
| 78 expect(builder.basename(r'a\b/c'), r'c'); | 86 expect(builder.basename(r'a\b/c'), r'c'); |
| 79 expect(builder.basename(r'C:\a'), 'a'); | 87 expect(builder.basename(r'C:\a'), 'a'); |
| 80 expect(builder.basename(r'C:\'), r'C:\'); | 88 expect(builder.basename(r'C:\'), r'C:\'); |
| 81 expect(builder.basename(r'a\b\'), 'b'); | 89 expect(builder.basename(r'a\b\'), 'b'); |
| 82 expect(builder.basename(r'a/b\c'), 'c'); | 90 expect(builder.basename(r'a/b\c'), 'c'); |
| 83 expect(builder.basename(r'a\\'), 'a'); | 91 expect(builder.basename(r'a\\'), 'a'); |
| 84 expect(builder.basename(r'a\b\\'), 'b'); | 92 expect(builder.basename(r'a\b\\'), 'b'); |
| 85 expect(builder.basename(r'a\\b'), 'b'); | 93 expect(builder.basename(r'a\\b'), 'b'); |
| 94 expect(builder.basename(r'a\\b'), 'b'); |
| 95 expect(builder.basename(r'a\fisk hest.ma pa'), 'fisk hest.ma pa'); |
| 86 }); | 96 }); |
| 87 | 97 |
| 88 test('basenameWithoutExtension', () { | 98 test('basenameWithoutExtension', () { |
| 89 expect(builder.basenameWithoutExtension(''), ''); | 99 expect(builder.basenameWithoutExtension(''), ''); |
| 100 expect(builder.basenameWithoutExtension('.'), '.'); |
| 101 expect(builder.basenameWithoutExtension('..'), '..'); |
| 102 expect(builder.basenameWithoutExtension('.hest'), '.hest'); |
| 90 expect(builder.basenameWithoutExtension('a'), 'a'); | 103 expect(builder.basenameWithoutExtension('a'), 'a'); |
| 91 expect(builder.basenameWithoutExtension(r'a\b'), 'b'); | 104 expect(builder.basenameWithoutExtension(r'a\b'), 'b'); |
| 92 expect(builder.basenameWithoutExtension(r'a\b\c'), 'c'); | 105 expect(builder.basenameWithoutExtension(r'a\b\c'), 'c'); |
| 93 expect(builder.basenameWithoutExtension(r'a\b.c'), 'b'); | 106 expect(builder.basenameWithoutExtension(r'a\b.c'), 'b'); |
| 94 expect(builder.basenameWithoutExtension(r'a\'), 'a'); | 107 expect(builder.basenameWithoutExtension(r'a\'), 'a'); |
| 95 expect(builder.basenameWithoutExtension(r'a\.'), '.'); | 108 expect(builder.basenameWithoutExtension(r'a\.'), '.'); |
| 96 expect(builder.basenameWithoutExtension(r'a\b/c'), r'c'); | 109 expect(builder.basenameWithoutExtension(r'a\b/c'), r'c'); |
| 97 expect(builder.basenameWithoutExtension(r'a\.bashrc'), '.bashrc'); | 110 expect(builder.basenameWithoutExtension(r'a\.bashrc'), '.bashrc'); |
| 98 expect(builder.basenameWithoutExtension(r'a\b\c.d.e'), 'c.d'); | 111 expect(builder.basenameWithoutExtension(r'a\b\c.d.e'), 'c.d'); |
| 99 expect(builder.basenameWithoutExtension(r'a\\'), 'a'); | 112 expect(builder.basenameWithoutExtension(r'a\\'), 'a'); |
| 100 expect(builder.basenameWithoutExtension(r'a\b\\'), 'b'); | 113 expect(builder.basenameWithoutExtension(r'a\b\\'), 'b'); |
| 101 expect(builder.basenameWithoutExtension(r'a\\b'), 'b'); | 114 expect(builder.basenameWithoutExtension(r'a\\b'), 'b'); |
| 102 expect(builder.basenameWithoutExtension(r'a\b.c\'), 'b'); | 115 expect(builder.basenameWithoutExtension(r'a\b.c\'), 'b'); |
| 103 expect(builder.basenameWithoutExtension(r'a\b.c\\'), 'b'); | 116 expect(builder.basenameWithoutExtension(r'a\b.c\\'), 'b'); |
| 117 expect(builder.basenameWithoutExtension(r'C:\f h.ma pa.f s'), 'f h.ma pa'); |
| 104 }); | 118 }); |
| 105 | 119 |
| 106 test('isAbsolute', () { | 120 test('isAbsolute', () { |
| 107 expect(builder.isAbsolute(''), false); | 121 expect(builder.isAbsolute(''), false); |
| 122 expect(builder.isAbsolute('.'), false); |
| 123 expect(builder.isAbsolute('..'), false); |
| 108 expect(builder.isAbsolute('a'), false); | 124 expect(builder.isAbsolute('a'), false); |
| 109 expect(builder.isAbsolute(r'a\b'), false); | 125 expect(builder.isAbsolute(r'a\b'), false); |
| 110 expect(builder.isAbsolute(r'\a'), false); | 126 expect(builder.isAbsolute(r'\a'), false); |
| 111 expect(builder.isAbsolute(r'\a\b'), false); | 127 expect(builder.isAbsolute(r'\a\b'), false); |
| 112 expect(builder.isAbsolute('~'), false); | 128 expect(builder.isAbsolute('~'), false); |
| 113 expect(builder.isAbsolute('.'), false); | 129 expect(builder.isAbsolute('.'), false); |
| 114 expect(builder.isAbsolute(r'..\a'), false); | 130 expect(builder.isAbsolute(r'..\a'), false); |
| 115 expect(builder.isAbsolute(r'a:/a\b'), true); | 131 expect(builder.isAbsolute(r'a:/a\b'), true); |
| 116 expect(builder.isAbsolute(r'D:/a/b'), true); | 132 expect(builder.isAbsolute(r'D:/a/b'), true); |
| 117 expect(builder.isAbsolute(r'c:\'), true); | 133 expect(builder.isAbsolute(r'c:\'), true); |
| 118 expect(builder.isAbsolute(r'B:\'), true); | 134 expect(builder.isAbsolute(r'B:\'), true); |
| 119 expect(builder.isAbsolute(r'c:\a'), true); | 135 expect(builder.isAbsolute(r'c:\a'), true); |
| 120 expect(builder.isAbsolute(r'C:\a'), true); | 136 expect(builder.isAbsolute(r'C:\a'), true); |
| 121 expect(builder.isAbsolute(r'\\a'), true); | 137 expect(builder.isAbsolute(r'\\a'), true); |
| 122 expect(builder.isAbsolute(r'\\'), true); | 138 expect(builder.isAbsolute(r'\\'), true); |
| 123 }); | 139 }); |
| 124 | 140 |
| 125 test('isRelative', () { | 141 test('isRelative', () { |
| 126 expect(builder.isRelative(''), true); | 142 expect(builder.isRelative(''), true); |
| 143 expect(builder.isRelative('.'), true); |
| 144 expect(builder.isRelative('..'), true); |
| 127 expect(builder.isRelative('a'), true); | 145 expect(builder.isRelative('a'), true); |
| 128 expect(builder.isRelative(r'a\b'), true); | 146 expect(builder.isRelative(r'a\b'), true); |
| 129 expect(builder.isRelative(r'\a'), true); | 147 expect(builder.isRelative(r'\a'), true); |
| 130 expect(builder.isRelative(r'\a\b'), true); | 148 expect(builder.isRelative(r'\a\b'), true); |
| 131 expect(builder.isRelative('~'), true); | 149 expect(builder.isRelative('~'), true); |
| 132 expect(builder.isRelative('.'), true); | 150 expect(builder.isRelative('.'), true); |
| 133 expect(builder.isRelative(r'..\a'), true); | 151 expect(builder.isRelative(r'..\a'), true); |
| 134 expect(builder.isRelative(r'a:/a\b'), false); | 152 expect(builder.isRelative(r'a:/a\b'), false); |
| 135 expect(builder.isRelative(r'D:/a/b'), false); | 153 expect(builder.isRelative(r'D:/a/b'), false); |
| 136 expect(builder.isRelative(r'c:\'), false); | 154 expect(builder.isRelative(r'c:\'), false); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 expect(builder.join('', ''), ''); | 195 expect(builder.join('', ''), ''); |
| 178 expect(builder.join('', 'a'), 'a'); | 196 expect(builder.join('', 'a'), 'a'); |
| 179 expect(builder.join('a', '', 'b', '', '', '', 'c'), r'a\b\c'); | 197 expect(builder.join('a', '', 'b', '', '', '', 'c'), r'a\b\c'); |
| 180 expect(builder.join('a', 'b', ''), r'a\b'); | 198 expect(builder.join('a', 'b', ''), r'a\b'); |
| 181 }); | 199 }); |
| 182 | 200 |
| 183 test('disallows intermediate nulls', () { | 201 test('disallows intermediate nulls', () { |
| 184 expect(() => builder.join('a', null, 'b'), throwsArgumentError); | 202 expect(() => builder.join('a', null, 'b'), throwsArgumentError); |
| 185 expect(() => builder.join(null, 'a'), throwsArgumentError); | 203 expect(() => builder.join(null, 'a'), throwsArgumentError); |
| 186 }); | 204 }); |
| 205 |
| 206 test('join does not modify internal ., .., or trailing separators', () { |
| 207 expect(builder.join('a/', 'b/c/'), 'a/b/c/'); |
| 208 expect(builder.join(r'a\b\./c\..\\', r'd\..\.\..\\e\f\\'), |
| 209 r'a\b\./c\..\\d\..\.\..\\e\f\\'); |
| 210 expect(builder.join(r'a\b', r'c\..\..\..\..'), r'a\b\c\..\..\..\..'); |
| 211 expect(builder.join(r'a', 'b${builder.separator}'), r'a\b\'); |
| 212 }); |
| 187 }); | 213 }); |
| 188 | 214 |
| 189 group('joinAll', () { | 215 group('joinAll', () { |
| 190 test('allows more than eight parts', () { | 216 test('allows more than eight parts', () { |
| 191 expect(builder.joinAll(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']), | 217 expect(builder.joinAll(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']), |
| 192 r'a\b\c\d\e\f\g\h\i'); | 218 r'a\b\c\d\e\f\g\h\i'); |
| 193 }); | 219 }); |
| 194 | 220 |
| 195 test('does not add separator if a part ends or begins in one', () { | 221 test('does not add separator if a part ends or begins in one', () { |
| 196 expect(builder.joinAll([r'a\', 'b', r'c\', 'd']), r'a\b\c\d'); | 222 expect(builder.joinAll([r'a\', 'b', r'c\', 'd']), r'a\b\c\d'); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 | 257 |
| 232 // TODO(nweiz): enable these once issue 7323 is fixed. | 258 // TODO(nweiz): enable these once issue 7323 is fixed. |
| 233 // expect(builder.split(r'\\server\foo\bar\baz'), | 259 // expect(builder.split(r'\\server\foo\bar\baz'), |
| 234 // equals([r'\\server\', 'foo', 'bar', 'baz'])); | 260 // equals([r'\\server\', 'foo', 'bar', 'baz'])); |
| 235 // expect(builder.split(r'\\server\'), equals([r'\\server\'])); | 261 // expect(builder.split(r'\\server\'), equals([r'\\server\'])); |
| 236 }); | 262 }); |
| 237 }); | 263 }); |
| 238 | 264 |
| 239 group('normalize', () { | 265 group('normalize', () { |
| 240 test('simple cases', () { | 266 test('simple cases', () { |
| 241 expect(builder.normalize(''), ''); | 267 expect(builder.normalize(''), '.'); |
| 242 expect(builder.normalize('.'), '.'); | 268 expect(builder.normalize('.'), '.'); |
| 243 expect(builder.normalize('..'), '..'); | 269 expect(builder.normalize('..'), '..'); |
| 244 expect(builder.normalize('a'), 'a'); | 270 expect(builder.normalize('a'), 'a'); |
| 271 expect(builder.normalize(r'\'), '.'); |
| 272 expect(builder.normalize('/'), r'.'); |
| 245 expect(builder.normalize('C:/'), r'C:\'); | 273 expect(builder.normalize('C:/'), r'C:\'); |
| 246 expect(builder.normalize(r'C:\'), r'C:\'); | 274 expect(builder.normalize(r'C:\'), r'C:\'); |
| 247 expect(builder.normalize(r'\\'), r'\\'); | 275 expect(builder.normalize(r'\\'), r'\\'); |
| 276 expect(builder.normalize('a\\.\\\xc5\u0bf8-;\u{1f085}\u{00}\\c\\d\\..\\'), |
| 277 'a\\\xc5\u0bf8-;\u{1f085}\u{00}\x5cc'); |
| 248 }); | 278 }); |
| 249 | 279 |
| 250 test('collapses redundant separators', () { | 280 test('collapses redundant separators', () { |
| 251 expect(builder.normalize(r'a\b\c'), r'a\b\c'); | 281 expect(builder.normalize(r'a\b\c'), r'a\b\c'); |
| 252 expect(builder.normalize(r'a\\b\\\c\\\\d'), r'a\b\c\d'); | 282 expect(builder.normalize(r'a\\b\\\c\\\\d'), r'a\b\c\d'); |
| 253 }); | 283 }); |
| 254 | 284 |
| 255 test('eliminates "." parts', () { | 285 test('eliminates "." parts', () { |
| 256 expect(builder.normalize(r'.\'), '.'); | 286 expect(builder.normalize(r'.\'), '.'); |
| 257 expect(builder.normalize(r'c:\.'), r'c:\'); | 287 expect(builder.normalize(r'c:\.'), r'c:\'); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 271 expect(builder.normalize(r'..\'), '..'); | 301 expect(builder.normalize(r'..\'), '..'); |
| 272 expect(builder.normalize(r'..\..\..'), r'..\..\..'); | 302 expect(builder.normalize(r'..\..\..'), r'..\..\..'); |
| 273 expect(builder.normalize(r'../..\..\'), r'..\..\..'); | 303 expect(builder.normalize(r'../..\..\'), r'..\..\..'); |
| 274 // TODO(rnystrom): Is this how Python handles absolute paths on Windows? | 304 // TODO(rnystrom): Is this how Python handles absolute paths on Windows? |
| 275 expect(builder.normalize(r'\\..'), r'\\'); | 305 expect(builder.normalize(r'\\..'), r'\\'); |
| 276 expect(builder.normalize(r'\\..\..\..'), r'\\'); | 306 expect(builder.normalize(r'\\..\..\..'), r'\\'); |
| 277 expect(builder.normalize(r'\\..\../..\a'), r'\\a'); | 307 expect(builder.normalize(r'\\..\../..\a'), r'\\a'); |
| 278 expect(builder.normalize(r'c:\..'), r'c:\'); | 308 expect(builder.normalize(r'c:\..'), r'c:\'); |
| 279 expect(builder.normalize(r'A:/..\..\..'), r'A:\'); | 309 expect(builder.normalize(r'A:/..\..\..'), r'A:\'); |
| 280 expect(builder.normalize(r'b:\..\..\..\a'), r'b:\a'); | 310 expect(builder.normalize(r'b:\..\..\..\a'), r'b:\a'); |
| 311 expect(builder.normalize(r'b:\r\..\..\..\a\c\.\..'), r'b:\a'); |
| 281 expect(builder.normalize(r'a\..'), '.'); | 312 expect(builder.normalize(r'a\..'), '.'); |
| 313 expect(builder.normalize(r'..\a'), r'..\a'); |
| 314 expect(builder.normalize(r'c:\..\a'), r'c:\a'); |
| 315 // A path starting with '\' is not an absolute path on Windows. |
| 316 expect(builder.normalize(r'\..\a'), r'..\a'); |
| 282 expect(builder.normalize(r'a\b\..'), 'a'); | 317 expect(builder.normalize(r'a\b\..'), 'a'); |
| 318 expect(builder.normalize(r'..\a\b\..'), r'..\a'); |
| 283 expect(builder.normalize(r'a\..\b'), 'b'); | 319 expect(builder.normalize(r'a\..\b'), 'b'); |
| 284 expect(builder.normalize(r'a\.\..\b'), 'b'); | 320 expect(builder.normalize(r'a\.\..\b'), 'b'); |
| 285 expect(builder.normalize(r'a\b\c\..\..\d\e\..'), r'a\d'); | 321 expect(builder.normalize(r'a\b\c\..\..\d\e\..'), r'a\d'); |
| 286 expect(builder.normalize(r'a\b\..\..\..\..\c'), r'..\..\c'); | 322 expect(builder.normalize(r'a\b\..\..\..\..\c'), r'..\..\c'); |
| 323 expect(builder.normalize(r'a/b/c/../../..d/./.e/f././'), r'a\..d\.e\f.'); |
| 287 }); | 324 }); |
| 288 | 325 |
| 289 test('removes trailing separators', () { | 326 test('removes trailing separators', () { |
| 290 expect(builder.normalize(r'.\'), '.'); | 327 expect(builder.normalize(r'.\'), '.'); |
| 291 expect(builder.normalize(r'.\\'), '.'); | 328 expect(builder.normalize(r'.\\'), '.'); |
| 292 expect(builder.normalize(r'a/'), 'a'); | 329 expect(builder.normalize(r'a/'), 'a'); |
| 293 expect(builder.normalize(r'a\b\'), r'a\b'); | 330 expect(builder.normalize(r'a\b\'), r'a\b'); |
| 294 expect(builder.normalize(r'a\b\\\'), r'a\b'); | 331 expect(builder.normalize(r'a\b\\\'), r'a\b'); |
| 295 }); | 332 }); |
| 296 | 333 |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 Uri.parse('file:///C:/path/to/foo/')); | 514 Uri.parse('file:///C:/path/to/foo/')); |
| 478 expect(builder.toUri(r'C:\'), Uri.parse('file:///C:/')); | 515 expect(builder.toUri(r'C:\'), Uri.parse('file:///C:/')); |
| 479 expect(builder.toUri(r'\\hostname\'), Uri.parse('file://hostname/')); | 516 expect(builder.toUri(r'\\hostname\'), Uri.parse('file://hostname/')); |
| 480 expect(builder.toUri(r'foo\bar'), Uri.parse('foo/bar')); | 517 expect(builder.toUri(r'foo\bar'), Uri.parse('foo/bar')); |
| 481 expect(builder.toUri(r'C:\path\to\foo#bar'), | 518 expect(builder.toUri(r'C:\path\to\foo#bar'), |
| 482 Uri.parse('file:///C:/path/to/foo%23bar')); | 519 Uri.parse('file:///C:/path/to/foo%23bar')); |
| 483 expect(builder.toUri(r'\\hostname\path\to\foo#bar'), | 520 expect(builder.toUri(r'\\hostname\path\to\foo#bar'), |
| 484 Uri.parse('file://hostname/path/to/foo%23bar')); | 521 Uri.parse('file://hostname/path/to/foo%23bar')); |
| 485 }); | 522 }); |
| 486 } | 523 } |
| OLD | NEW |