Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(569)

Side by Side Diff: pkg/path/test/path_posix_test.dart

Issue 11638021: Make dirname and basename ignore trailing separators and double slashes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // TODO(rnystrom): Use "package:" path when #7491 is fixed. 9 // TODO(rnystrom): Use "package:" path when #7491 is fixed.
10 import '../../unittest/lib/unittest.dart'; 10 import '../../unittest/lib/unittest.dart';
(...skipping 30 matching lines...) Expand all
41 expect(builder.rootPrefix('/a/c'), '/'); 41 expect(builder.rootPrefix('/a/c'), '/');
42 expect(builder.rootPrefix('/'), '/'); 42 expect(builder.rootPrefix('/'), '/');
43 }); 43 });
44 44
45 test('dirname', () { 45 test('dirname', () {
46 expect(builder.dirname(''), '.'); 46 expect(builder.dirname(''), '.');
47 expect(builder.dirname('a'), '.'); 47 expect(builder.dirname('a'), '.');
48 expect(builder.dirname('a/b'), 'a'); 48 expect(builder.dirname('a/b'), 'a');
49 expect(builder.dirname('a/b/c'), 'a/b'); 49 expect(builder.dirname('a/b/c'), 'a/b');
50 expect(builder.dirname('a/b.c'), 'a'); 50 expect(builder.dirname('a/b.c'), 'a');
51 expect(builder.dirname('a/'), 'a'); 51 expect(builder.dirname('a/'), '.');
52 expect(builder.dirname('a/.'), 'a'); 52 expect(builder.dirname('a/.'), 'a');
53 expect(builder.dirname(r'a\b/c'), r'a\b'); 53 expect(builder.dirname(r'a\b/c'), r'a\b');
54 expect(builder.dirname('/a'), '/'); 54 expect(builder.dirname('/a'), '/');
55 expect(builder.dirname('///a'), '/');
55 expect(builder.dirname('/'), '/'); 56 expect(builder.dirname('/'), '/');
56 expect(builder.dirname('a/b/'), 'a/b'); 57 expect(builder.dirname('///'), '/');
58 expect(builder.dirname('a/b/'), 'a');
57 expect(builder.dirname(r'a/b\c'), 'a'); 59 expect(builder.dirname(r'a/b\c'), 'a');
58 expect(builder.dirname('a//'), 'a/'); 60 expect(builder.dirname('a//'), '.');
61 expect(builder.dirname('a/b//'), 'a');
62 expect(builder.dirname('a//b'), 'a');
59 }); 63 });
60 64
61 test('basename', () { 65 test('basename', () {
62 expect(builder.basename(''), ''); 66 expect(builder.basename(''), '');
63 expect(builder.basename('a'), 'a'); 67 expect(builder.basename('a'), 'a');
64 expect(builder.basename('a/b'), 'b'); 68 expect(builder.basename('a/b'), 'b');
65 expect(builder.basename('a/b/c'), 'c'); 69 expect(builder.basename('a/b/c'), 'c');
66 expect(builder.basename('a/b.c'), 'b.c'); 70 expect(builder.basename('a/b.c'), 'b.c');
67 expect(builder.basename('a/'), ''); 71 expect(builder.basename('a/'), 'a');
68 expect(builder.basename('a/.'), '.'); 72 expect(builder.basename('a/.'), '.');
69 expect(builder.basename(r'a\b/c'), 'c'); 73 expect(builder.basename(r'a\b/c'), 'c');
70 expect(builder.basename('/a'), 'a'); 74 expect(builder.basename('/a'), 'a');
71 // TODO(nweiz): this should actually return '/' 75 expect(builder.basename('/'), '/');
72 expect(builder.basename('/'), ''); 76 expect(builder.basename('a/b/'), 'b');
73 expect(builder.basename('a/b/'), '');
74 expect(builder.basename(r'a/b\c'), r'b\c'); 77 expect(builder.basename(r'a/b\c'), r'b\c');
75 expect(builder.basename('a//'), ''); 78 expect(builder.basename('a//'), 'a');
79 expect(builder.basename('a/b//'), 'b');
80 expect(builder.basename('a//b'), 'b');
76 }); 81 });
77 82
78 test('basenameWithoutExtension', () { 83 test('basenameWithoutExtension', () {
79 expect(builder.basenameWithoutExtension(''), ''); 84 expect(builder.basenameWithoutExtension(''), '');
80 expect(builder.basenameWithoutExtension('a'), 'a'); 85 expect(builder.basenameWithoutExtension('a'), 'a');
81 expect(builder.basenameWithoutExtension('a/b'), 'b'); 86 expect(builder.basenameWithoutExtension('a/b'), 'b');
82 expect(builder.basenameWithoutExtension('a/b/c'), 'c'); 87 expect(builder.basenameWithoutExtension('a/b/c'), 'c');
83 expect(builder.basenameWithoutExtension('a/b.c'), 'b'); 88 expect(builder.basenameWithoutExtension('a/b.c'), 'b');
84 expect(builder.basenameWithoutExtension('a/'), ''); 89 expect(builder.basenameWithoutExtension('a/'), 'a');
85 expect(builder.basenameWithoutExtension('a/.'), '.'); 90 expect(builder.basenameWithoutExtension('a/.'), '.');
86 expect(builder.basenameWithoutExtension(r'a/b\c'), r'b\c'); 91 expect(builder.basenameWithoutExtension(r'a/b\c'), r'b\c');
87 expect(builder.basenameWithoutExtension('a/.bashrc'), '.bashrc'); 92 expect(builder.basenameWithoutExtension('a/.bashrc'), '.bashrc');
88 expect(builder.basenameWithoutExtension('a/b/c.d.e'), 'c.d'); 93 expect(builder.basenameWithoutExtension('a/b/c.d.e'), 'c.d');
94 expect(builder.basenameWithoutExtension('a//'), 'a');
95 expect(builder.basenameWithoutExtension('a/b//'), 'b');
96 expect(builder.basenameWithoutExtension('a//b'), 'b');
97 expect(builder.basenameWithoutExtension('a/b.c/'), 'b');
98 expect(builder.basenameWithoutExtension('a/b.c//'), 'b');
89 }); 99 });
90 100
91 test('isAbsolute', () { 101 test('isAbsolute', () {
92 expect(builder.isAbsolute(''), false); 102 expect(builder.isAbsolute(''), false);
93 expect(builder.isAbsolute('a'), false); 103 expect(builder.isAbsolute('a'), false);
94 expect(builder.isAbsolute('a/b'), false); 104 expect(builder.isAbsolute('a/b'), false);
95 expect(builder.isAbsolute('/a'), true); 105 expect(builder.isAbsolute('/a'), true);
96 expect(builder.isAbsolute('/a/b'), true); 106 expect(builder.isAbsolute('/a/b'), true);
97 expect(builder.isAbsolute('~'), false); 107 expect(builder.isAbsolute('~'), false);
98 expect(builder.isAbsolute('.'), false); 108 expect(builder.isAbsolute('.'), false);
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 expect(builder.withoutExtension('a/b.c'), 'a/b'); 361 expect(builder.withoutExtension('a/b.c'), 'a/b');
352 expect(builder.withoutExtension('a/b.c.d'), 'a/b.c'); 362 expect(builder.withoutExtension('a/b.c.d'), 'a/b.c');
353 expect(builder.withoutExtension('a/'), 'a/'); 363 expect(builder.withoutExtension('a/'), 'a/');
354 expect(builder.withoutExtension('a/b/'), 'a/b/'); 364 expect(builder.withoutExtension('a/b/'), 'a/b/');
355 expect(builder.withoutExtension('a/.'), 'a/.'); 365 expect(builder.withoutExtension('a/.'), 'a/.');
356 expect(builder.withoutExtension('a/.b'), 'a/.b'); 366 expect(builder.withoutExtension('a/.b'), 'a/.b');
357 expect(builder.withoutExtension('a.b/c'), 'a.b/c'); 367 expect(builder.withoutExtension('a.b/c'), 'a.b/c');
358 expect(builder.withoutExtension(r'a.b\c'), r'a'); 368 expect(builder.withoutExtension(r'a.b\c'), r'a');
359 expect(builder.withoutExtension(r'a/b\c'), r'a/b\c'); 369 expect(builder.withoutExtension(r'a/b\c'), r'a/b\c');
360 expect(builder.withoutExtension(r'a/b\c.d'), r'a/b\c'); 370 expect(builder.withoutExtension(r'a/b\c.d'), r'a/b\c');
371 expect(builder.withoutExtension('a/b.c/'), 'a/b/');
372 expect(builder.withoutExtension('a/b.c//'), 'a/b//');
Bob Nystrom 2012/12/20 02:27:28 Nice.
nweiz 2012/12/20 20:54:49 Just for you.
361 }); 373 });
362 } 374 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698