diff options
author | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-20 15:27:21 +0000 |
---|---|---|
committer | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-20 15:27:21 +0000 |
commit | 9194b3fc91953bb1472d8671d2322ac5616ee0b4 (patch) | |
tree | d9d60fc09ec8dc5ad6fb65499ad5bcce1d06de0f /base/file_path_unittest.cc | |
parent | a4dc33f2e485e586cc3fb03142c2800249fe9ced (diff) | |
download | chromium_src-9194b3fc91953bb1472d8671d2322ac5616ee0b4.zip chromium_src-9194b3fc91953bb1472d8671d2322ac5616ee0b4.tar.gz chromium_src-9194b3fc91953bb1472d8671d2322ac5616ee0b4.tar.bz2 |
Minimize dependency of user scripts.
And made some minor lint fixes and code refactoring on the way, based on CR comments of previous attempt.
BUG=none
TEST=Make sure that the extension resources can still be properly localized and that they also load correctly when they are not localized.
Review URL: http://codereview.chromium.org/267051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29512 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_path_unittest.cc')
-rw-r--r-- | base/file_path_unittest.cc | 96 |
1 files changed, 94 insertions, 2 deletions
diff --git a/base/file_path_unittest.cc b/base/file_path_unittest.cc index b80d9fc..9d45170 100644 --- a/base/file_path_unittest.cc +++ b/base/file_path_unittest.cc @@ -497,6 +497,98 @@ TEST_F(FilePathTest, PathComponentsTest) { } } +TEST_F(FilePathTest, AppendAndResolveRelativeTest) { + const struct BinaryTestData cases[] = { +#if defined(FILE_PATH_USES_DRIVE_LETTERS) + { { FPL("c:/"), FPL("foo") }, FPL("c:/foo") }, + { { FPL("f:/foo/bar"), FPL("..") }, FPL("f:/foo") }, + { { FPL("f:/foo.bar"), FPL("..") }, FPL("f:/") }, + { { FPL("F:/foo/.."), FPL("./bar/.") }, FPL("F:/bar") }, + { { FPL("E:/Foo/bar"), FPL("../..") }, FPL("E:/") }, + { { FPL("E:/Foo/bar/."), FPL("../..") }, FPL("E:/") }, + { { FPL("e:/foo/.."), FPL("bar/..") }, FPL("e:/") }, + { { FPL("c:/foo/./bar/.."), FPL("../baz") }, FPL("c:/baz") }, + { { FPL("E:/./foo/bar/.."), FPL("../baz/..") }, FPL("E:/") }, + { { FPL("x:/foo/../bar/.."), FPL("baz/../boo") }, FPL("x:/boo") }, + { { FPL("E:/foo.bar/.."), FPL("../baz/..") }, FPL("") }, + { { FPL("Z:/foo"), FPL("../..") }, FPL("") }, + { { FPL("y:/"), FPL("..") }, FPL("") }, + { { FPL("B:/.."), FPL("bar/.") }, FPL("") }, + { { FPL("a:/foo/.."), FPL("..") }, FPL("") }, + { { FPL("r:/.."), FPL("..") }, FPL("") }, + { { FPL("F:/foo/.."), FPL("../..") }, FPL("") }, + { { FPL("O:/foo/bar/.."), FPL("../..") }, FPL("") }, +#endif // FILE_PATH_USES_DRIVE_LETTERS +#if defined(FILE_PATH_USES_WIN_SEPARATORS) + { { FPL("\\\\"), FPL("foo") }, FPL("\\\\foo") }, + { { FPL("\\\\foo"), FPL("bar") }, FPL("\\\\foo\\bar") }, + { { FPL("\\\\foo\\bar"), FPL("..") }, FPL("\\\\foo") }, + { { FPL("\\\\foo.bar"), FPL("..") }, FPL("\\\\") }, + { { FPL("\\\\Foo\\bar"), FPL("..\\..") }, FPL("\\\\") }, + { { FPL("\\\\Foo\\bar\\."), FPL("..\\..") }, FPL("\\\\") }, + { { FPL("\\\\foo\\bar"), FPL("foo\\..\\baz") }, FPL("\\\\foo\\bar\\baz") }, + { { FPL("\\\\foo\\.\\bar"), FPL("..\\baz\\.") }, FPL("\\\\foo\\baz") }, + { { FPL("\\\\.\\foo\\.."), FPL("bar") }, FPL("\\\\bar") }, + { { FPL("\\\\foo\\.."), FPL(".\\bar\\..") }, FPL("\\\\") }, + { { FPL("\\\\foo\\bar\\.."), FPL("..\\baz") }, FPL("\\\\baz") }, + { { FPL("\\\\foo\\bar\\.."), FPL("..\\baz\\..") }, FPL("\\\\") }, + { { FPL("\\\\foo\\..\\bar\\.."), FPL("baz\\..\\boo") }, FPL("\\\\boo"), }, + { { FPL("\\\\foo.bar\\.."), FPL("..\\baz\\..") }, FPL("") }, + { { FPL("\\\\foo"), FPL("..\\..") }, FPL("") }, + { { FPL("\\\\"), FPL("..") }, FPL("") }, + { { FPL("\\\\.."), FPL("bar\\.") }, FPL("") }, + { { FPL("\\\\foo\\.."), FPL("..") }, FPL("") }, + { { FPL("\\\\.."), FPL("..") }, FPL("") }, + { { FPL("\\\\foo\\.."), FPL("..\\..") }, FPL("") }, + { { FPL("\\\\foo\\bar\\.."), FPL("..\\..") }, FPL("") }, +#if defined(FILE_PATH_USES_DRIVE_LETTERS) + { { FPL("E:/foo"), FPL("bar") }, FPL("E:/foo\\bar") }, + { { FPL("C:/foo/bar"), FPL("foo/../baz") }, FPL("C:/foo\\bar\\baz") }, + { { FPL("e:/foo/bar"), FPL("../baz") }, FPL("e:/foo\\baz") }, +#endif +#else // FILE_PATH_USES_WIN_SEPARAORS + { { FPL("/"), FPL("foo") }, FPL("/foo") }, + { { FPL("/foo"), FPL("bar") }, FPL("/foo/bar") }, + { { FPL("/foo/bar/"), FPL("..") }, FPL("/foo") }, + { { FPL("/foo.bar"), FPL("..") }, FPL("/") }, + { { FPL("//foo"), FPL("..") }, FPL("//") }, + { { FPL("/foo/./bar"), FPL("../..") }, FPL("/") }, + { { FPL("/foo/bar/."), FPL("foo/../baz") }, FPL("/foo/bar/baz") }, + { { FPL("/./foo/bar"), FPL("../baz/.") }, FPL("/foo/baz") }, + { { FPL("/foo/.."), FPL("./bar") }, FPL("/bar") }, + { { FPL("/foo/.."), FPL("bar/..") }, FPL("/") }, + { { FPL("//foo/bar/.."), FPL("../baz") }, FPL("//baz") }, + { { FPL("/foo/bar/.."), FPL("../baz/..") }, FPL("/") }, + { { FPL("/foo/../bar/.."), FPL("baz/../boo") }, FPL("/boo") }, + { { FPL("//foo.bar/.."), FPL("../baz") }, FPL("") }, + { { FPL("/foo"), FPL("../..") }, FPL("") }, + { { FPL("//"), FPL("..") }, FPL("") }, + { { FPL("/.."), FPL("./bar") }, FPL("") }, + { { FPL("/foo/.."), FPL("..") }, FPL("") }, + { { FPL("/.."), FPL("..") }, FPL("") }, + { { FPL("/foo/.."), FPL("../..") }, FPL("") }, + { { FPL("/foo/bar/.."), FPL("../..") }, FPL("") }, +#if defined(FILE_PATH_USES_DRIVE_LETTERS) + { { FPL("E:/foo"), FPL("bar") }, FPL("E:/foo/bar") }, + { { FPL("C:/foo/bar"), FPL("foo/../baz") }, FPL("C:/foo/bar/baz") }, + { { FPL("e:/foo/bar"), FPL("../baz") }, FPL("e:/foo/baz") }, +#endif +#endif // FILE_PATH_USES_WIN_SEPARAORS + }; + + for (size_t i = 0; i < arraysize(cases); ++i) { + FilePath parent(cases[i].inputs[0]); + FilePath child(cases[i].inputs[1]); + + FilePath result; + EXPECT_EQ(cases[i].expected[0] != '\0', + parent.AppendAndResolveRelative(child, &result)) << + "i: " << i << ", parent: " << parent.value() << ", child: " << + child.value(); + EXPECT_STREQ(cases[i].expected, result.value().c_str()); + } +} + TEST_F(FilePathTest, IsParentTest) { const struct BinaryBooleanTestData cases[] = { { { FPL("/"), FPL("/foo/bar/baz") }, true}, @@ -544,8 +636,8 @@ TEST_F(FilePathTest, IsParentTest) { FilePath child(cases[i].inputs[1]); EXPECT_EQ(parent.IsParent(child), cases[i].expected) << - "i: " << i << ", parent: " << parent.value() << ", child: " << - child.value(); + "i: " << i << ", parent: " << parent.value() << ", child: " << + child.value(); } } |