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; | 5 library path_test; |
6 | 6 |
7 import 'dart:io' as io; | 7 import 'dart:io' as io; |
8 | 8 |
9 import '../../../../pkg/unittest/lib/unittest.dart'; | 9 import '../../../../pkg/unittest/lib/unittest.dart'; |
10 import '../../../pub/path.dart' as path; | 10 import '../../../pub/path.dart' as path; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 }); | 219 }); |
220 | 220 |
221 group('from relative root', () { | 221 group('from relative root', () { |
222 var r = new path.Builder(style: path.Style.windows, root: r'foo\bar'); | 222 var r = new path.Builder(style: path.Style.windows, root: r'foo\bar'); |
223 | 223 |
224 // These tests rely on the current working directory, so don't do the | 224 // These tests rely on the current working directory, so don't do the |
225 // right thing if you run them on the wrong platform. | 225 // right thing if you run them on the wrong platform. |
226 if (io.Platform.operatingSystem == 'windows') { | 226 if (io.Platform.operatingSystem == 'windows') { |
227 test('given absolute path', () { | 227 test('given absolute path', () { |
228 var b = new path.Builder(style: path.Style.windows); | 228 var b = new path.Builder(style: path.Style.windows); |
229 expect(r.relative(r'C:\'), b.join(b.relative(r'C:\'), r'..\..')); | 229 // TODO(rnystrom): Use a path method here to get the root prefix |
230 expect(r.relative(r'C:\a\b'), | 230 // when one exists. |
231 b.join(b.relative(r'C:\'), r'..\..\a\b')); | 231 var drive = path.current.substring(0, 3); |
| 232 expect(r.relative(drive), b.join(b.relative(drive), r'..\..')); |
| 233 expect(r.relative(b.join(drive, r'a\b')), |
| 234 b.join(b.relative(drive), r'..\..\a\b')); |
| 235 |
| 236 // TODO(rnystrom): Test behavior when drive letters differ. |
232 }); | 237 }); |
233 } | 238 } |
234 | 239 |
235 test('given relative path', () { | 240 test('given relative path', () { |
236 // The path is considered relative to the root, so it basically just | 241 // The path is considered relative to the root, so it basically just |
237 // normalizes. | 242 // normalizes. |
238 expect(r.relative(''), '.'); | 243 expect(r.relative(''), '.'); |
239 expect(r.relative('.'), '.'); | 244 expect(r.relative('.'), '.'); |
240 expect(r.relative('..'), '..'); | 245 expect(r.relative('..'), '..'); |
241 expect(r.relative('a'), 'a'); | 246 expect(r.relative('a'), 'a'); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 expect(builder.withoutExtension(r'a\b.c.d'), r'a\b.c'); | 291 expect(builder.withoutExtension(r'a\b.c.d'), r'a\b.c'); |
287 expect(builder.withoutExtension(r'a\'), r'a\'); | 292 expect(builder.withoutExtension(r'a\'), r'a\'); |
288 expect(builder.withoutExtension(r'a\b\'), r'a\b\'); | 293 expect(builder.withoutExtension(r'a\b\'), r'a\b\'); |
289 expect(builder.withoutExtension(r'a\.'), r'a\.'); | 294 expect(builder.withoutExtension(r'a\.'), r'a\.'); |
290 expect(builder.withoutExtension(r'a\.b'), r'a\.b'); | 295 expect(builder.withoutExtension(r'a\.b'), r'a\.b'); |
291 expect(builder.withoutExtension(r'a.b\c'), r'a.b\c'); | 296 expect(builder.withoutExtension(r'a.b\c'), r'a.b\c'); |
292 expect(builder.withoutExtension(r'a\b/c'), r'a\b/c'); | 297 expect(builder.withoutExtension(r'a\b/c'), r'a\b/c'); |
293 expect(builder.withoutExtension(r'a\b/c.d'), r'a\b/c'); | 298 expect(builder.withoutExtension(r'a\b/c.d'), r'a\b/c'); |
294 }); | 299 }); |
295 } | 300 } |
OLD | NEW |