OLD | NEW |
---|---|
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/file_path.h" | 6 #include "base/file_path.h" |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "testing/platform_test.h" | 10 #include "testing/platform_test.h" |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
305 std::string ascii = WideToASCII(leaf); | 305 std::string ascii = WideToASCII(leaf); |
306 #elif defined(OS_POSIX) | 306 #elif defined(OS_POSIX) |
307 std::string ascii = leaf; | 307 std::string ascii = leaf; |
308 #endif | 308 #endif |
309 observed_str = root.AppendASCII(ascii); | 309 observed_str = root.AppendASCII(ascii); |
310 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_str.value()) << | 310 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_str.value()) << |
311 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; | 311 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; |
312 } | 312 } |
313 } | 313 } |
314 | 314 |
315 TEST_F(FilePathTest, StripTrailingSeparators) { | |
316 const struct UnaryTestData cases[] = { | |
317 { FPL(""), FPL("") }, | |
318 { FPL("/"), FPL("/") }, | |
319 { FPL("//"), FPL("//") }, | |
Erik does not do reviews
2009/10/13 16:57:01
is this use case for windows network paths using /
| |
320 { FPL("///"), FPL("/") }, | |
321 { FPL("////"), FPL("/") }, | |
322 { FPL("a/"), FPL("a") }, | |
323 { FPL("a//"), FPL("a") }, | |
324 { FPL("a///"), FPL("a") }, | |
325 { FPL("a////"), FPL("a") }, | |
326 { FPL("/a"), FPL("/a") }, | |
327 { FPL("/a/"), FPL("/a") }, | |
328 { FPL("/a//"), FPL("/a") }, | |
329 { FPL("/a///"), FPL("/a") }, | |
330 { FPL("/a////"), FPL("/a") }, | |
331 #if defined(FILE_PATH_USES_DRIVE_LETTERS) | |
332 { FPL("c:"), FPL("c:") }, | |
333 { FPL("c:/"), FPL("c:/") }, | |
334 { FPL("c://"), FPL("c://") }, | |
Erik does not do reviews
2009/10/13 16:57:01
just curious, what is this use case for?
| |
335 { FPL("c:///"), FPL("c:/") }, | |
336 { FPL("c:////"), FPL("c:/") }, | |
337 { FPL("c:/a"), FPL("c:/a") }, | |
338 { FPL("c:/a/"), FPL("c:/a") }, | |
339 { FPL("c:/a//"), FPL("c:/a") }, | |
340 { FPL("c:/a///"), FPL("c:/a") }, | |
341 { FPL("c:/a////"), FPL("c:/a") }, | |
342 #endif // FILE_PATH_USES_DRIVE_LETTERS | |
343 #if defined(FILE_PATH_USES_WIN_SEPARATORS) | |
344 { FPL("\\"), FPL("\\") }, | |
345 { FPL("\\\\"), FPL("\\\\") }, | |
346 { FPL("\\\\\\"), FPL("\\") }, | |
347 { FPL("\\\\\\\\"), FPL("\\") }, | |
348 { FPL("a\\"), FPL("a") }, | |
349 { FPL("a\\\\"), FPL("a") }, | |
350 { FPL("a\\\\\\"), FPL("a") }, | |
351 { FPL("a\\\\\\\\"), FPL("a") }, | |
352 { FPL("\\a"), FPL("\\a") }, | |
353 { FPL("\\a\\"), FPL("\\a") }, | |
354 { FPL("\\a\\\\"), FPL("\\a") }, | |
355 { FPL("\\a\\\\\\"), FPL("\\a") }, | |
356 { FPL("\\a\\\\\\\\"), FPL("\\a") }, | |
357 #if defined(FILE_PATH_USES_DRIVE_LETTERS) | |
358 { FPL("c:\\"), FPL("c:\\") }, | |
359 { FPL("c:\\\\"), FPL("c:\\\\") }, | |
360 { FPL("c:\\\\\\"), FPL("c:\\") }, | |
361 { FPL("c:\\\\\\\\"), FPL("c:\\") }, | |
362 { FPL("c:\\a"), FPL("c:\\a") }, | |
363 { FPL("c:\\a\\"), FPL("c:\\a") }, | |
364 { FPL("c:\\a\\\\"), FPL("c:\\a") }, | |
365 { FPL("c:\\a\\\\\\"), FPL("c:\\a") }, | |
366 { FPL("c:\\a\\\\\\\\"), FPL("c:\\a") }, | |
367 #endif // FILE_PATH_USES_DRIVE_LETTERS | |
368 #endif // FILE_PATH_USES_WIN_SEPARATORS | |
369 }; | |
370 | |
371 for (size_t i = 0; i < arraysize(cases); ++i) { | |
372 FilePath input(cases[i].input); | |
373 FilePath observed = input.StripTrailingSeparators(); | |
374 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed.value()) << | |
375 "i: " << i << ", input: " << input.value(); | |
376 } | |
377 } | |
378 | |
315 TEST_F(FilePathTest, IsAbsolute) { | 379 TEST_F(FilePathTest, IsAbsolute) { |
316 const struct UnaryBooleanTestData cases[] = { | 380 const struct UnaryBooleanTestData cases[] = { |
317 { FPL(""), false }, | 381 { FPL(""), false }, |
318 { FPL("a"), false }, | 382 { FPL("a"), false }, |
319 { FPL("c:"), false }, | 383 { FPL("c:"), false }, |
320 { FPL("c:a"), false }, | 384 { FPL("c:a"), false }, |
321 { FPL("a/b"), false }, | 385 { FPL("a/b"), false }, |
322 { FPL("//"), true }, | 386 { FPL("//"), true }, |
323 { FPL("//a"), true }, | 387 { FPL("//a"), true }, |
324 { FPL("c:a/b"), false }, | 388 { FPL("c:a/b"), false }, |
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
838 }; | 902 }; |
839 | 903 |
840 for (size_t i = 0; i < arraysize(cases); ++i) { | 904 for (size_t i = 0; i < arraysize(cases); ++i) { |
841 FilePath input(cases[i].input); | 905 FilePath input(cases[i].input); |
842 bool observed = input.ReferencesParent(); | 906 bool observed = input.ReferencesParent(); |
843 EXPECT_EQ(cases[i].expected, observed) << | 907 EXPECT_EQ(cases[i].expected, observed) << |
844 "i: " << i << ", input: " << input.value(); | 908 "i: " << i << ", input: " << input.value(); |
845 } | 909 } |
846 } | 910 } |
847 | 911 |
OLD | NEW |