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/path_service.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" |
11 | 11 |
12 // This macro helps avoid wrapped lines in the test structs. | 12 // This macro helps avoid wrapped lines in the test structs. |
13 #define FPL(x) FILE_PATH_LITERAL(x) | 13 #define FPL(x) FILE_PATH_LITERAL(x) |
14 | 14 |
15 struct UnaryTestData { | 15 struct UnaryTestData { |
16 const FilePath::CharType* input; | 16 const FilePath::CharType* input; |
17 const FilePath::CharType* expected; | 17 const FilePath::CharType* expected; |
18 }; | 18 }; |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 | 286 |
287 for (size_t i = 0; i < arraysize(cases); ++i) { | 287 for (size_t i = 0; i < arraysize(cases); ++i) { |
288 FilePath root(cases[i].inputs[0]); | 288 FilePath root(cases[i].inputs[0]); |
289 FilePath::StringType leaf(cases[i].inputs[1]); | 289 FilePath::StringType leaf(cases[i].inputs[1]); |
290 FilePath observed_str = root.Append(leaf); | 290 FilePath observed_str = root.Append(leaf); |
291 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_str.value()) << | 291 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_str.value()) << |
292 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; | 292 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; |
293 FilePath observed_path = root.Append(FilePath(leaf)); | 293 FilePath observed_path = root.Append(FilePath(leaf)); |
294 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_path.value()) << | 294 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_path.value()) << |
295 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; | 295 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; |
| 296 |
| 297 // TODO(erikkay): It would be nice to have a unicode test append value to |
| 298 // handle the case when AppendASCII is passed UTF8 |
| 299 #if defined(OS_WIN) |
| 300 std::string ascii = WideToASCII(leaf); |
| 301 #elif defined(OS_POSIX) |
| 302 std::string ascii = leaf; |
| 303 #endif |
| 304 observed_str = root.AppendASCII(ascii); |
| 305 EXPECT_EQ(FilePath::StringType(cases[i].expected), observed_str.value()) << |
| 306 "i: " << i << ", root: " << root.value() << ", leaf: " << leaf; |
296 } | 307 } |
297 } | 308 } |
298 | 309 |
299 TEST_F(FilePathTest, IsAbsolute) { | 310 TEST_F(FilePathTest, IsAbsolute) { |
300 const struct UnaryBooleanTestData cases[] = { | 311 const struct UnaryBooleanTestData cases[] = { |
301 { FPL(""), false }, | 312 { FPL(""), false }, |
302 { FPL("a"), false }, | 313 { FPL("a"), false }, |
303 { FPL("c:"), false }, | 314 { FPL("c:"), false }, |
304 { FPL("c:a"), false }, | 315 { FPL("c:a"), false }, |
305 { FPL("a/b"), false }, | 316 { FPL("a/b"), false }, |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 { { FPL("/foo.bar/foo"), FPL("baz") }, FPL("/foo.bar/foo.baz") }, | 525 { { FPL("/foo.bar/foo"), FPL("baz") }, FPL("/foo.bar/foo.baz") }, |
515 { { FPL("/foo.bar/..////"), FPL("baz") }, FPL("") }, | 526 { { FPL("/foo.bar/..////"), FPL("baz") }, FPL("") }, |
516 }; | 527 }; |
517 for (unsigned int i = 0; i < arraysize(cases); ++i) { | 528 for (unsigned int i = 0; i < arraysize(cases); ++i) { |
518 FilePath path(cases[i].inputs[0]); | 529 FilePath path(cases[i].inputs[0]); |
519 FilePath replaced = path.ReplaceExtension(cases[i].inputs[1]); | 530 FilePath replaced = path.ReplaceExtension(cases[i].inputs[1]); |
520 EXPECT_EQ(cases[i].expected, replaced.value()) << "i: " << i << | 531 EXPECT_EQ(cases[i].expected, replaced.value()) << "i: " << i << |
521 ", path: " << path.value() << ", replace: " << cases[i].inputs[1]; | 532 ", path: " << path.value() << ", replace: " << cases[i].inputs[1]; |
522 } | 533 } |
523 } | 534 } |
OLD | NEW |