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 |