Chromium Code Reviews| Index: base/file_util_unittest.cc |
| diff --git a/base/file_util_unittest.cc b/base/file_util_unittest.cc |
| index a8855e9428e23312680299c9ecd9ce203b57758a..8f5ce199e16a27b4ce5a8849364fd76d46a75bc7 100644 |
| --- a/base/file_util_unittest.cc |
| +++ b/base/file_util_unittest.cc |
| @@ -978,4 +978,50 @@ TEST_F(FileUtilTest, PathComponentsTest) { |
| } |
| } |
| +TEST_F(FileUtilTest, Contains) { |
| + FilePath data_dir; |
| + ASSERT_TRUE(PathService::Get(base::DIR_TEMP, &data_dir)); |
| + data_dir = data_dir.Append(FILE_PATH_LITERAL("FilePathTest")); |
| + |
| + // Create a fresh, empty copy of this directory. |
| + ASSERT_TRUE(file_util::Delete(data_dir, true)); |
| + ASSERT_TRUE(file_util::CreateDirectory(data_dir)); |
| + |
| + FilePath foo(data_dir.Append(FILE_PATH_LITERAL("foo"))); |
| + FilePath bar(foo.Append(FILE_PATH_LITERAL("bar.txt"))); |
| + FilePath baz(data_dir.Append(FILE_PATH_LITERAL("baz.txt"))); |
| + FilePath foobar(data_dir.Append(FILE_PATH_LITERAL("foobar.txt"))); |
| + |
| + // Annoyingly, the directories must actually exist in order for realpath(), |
| + // which Contains() relies on in posix, to work. |
| + ASSERT_TRUE(file_util::CreateDirectory(foo)); |
| + std::string data("hello"); |
| + ASSERT_TRUE(file_util::WriteFile(bar.ToWStringHack(), data.c_str(), |
| + data.length())); |
| + ASSERT_TRUE(file_util::WriteFile(baz.ToWStringHack(), data.c_str(), |
| + data.length())); |
| + ASSERT_TRUE(file_util::WriteFile(foobar.ToWStringHack(), data.c_str(), |
| + data.length())); |
| + |
| + EXPECT_TRUE(file_util::ContainsPath(foo, bar)); |
| + EXPECT_FALSE(file_util::ContainsPath(foo, baz)); |
| + EXPECT_FALSE(file_util::ContainsPath(foo, foobar)); |
| + EXPECT_FALSE(file_util::ContainsPath(foo, foo)); |
| + |
| +// Platform-specific concerns |
|
Erik does not do reviews
2009/01/12 17:14:05
missing indent
|
| + FilePath foo_caps(data_dir.Append(FILE_PATH_LITERAL("FOO"))); |
| +#if defined(OS_WIN) |
| + EXPECT_TRUE(file_util::ContainsPath(foo, |
| + foo_caps.Append(FILE_PATH_LITERAL("bar.txt")))); |
| + EXPECT_TRUE(file_util::ContainsPath(foo, |
| + FilePath(foo.value() + FILE_PATH_LITERAL("/bar.txt")))); |
| +#elif defined(OS_LINUX) |
| + EXPECT_FALSE(file_util::ContainsPath(foo, |
| + foo_caps.Append(FILE_PATH_LITERAL("bar.txt")))); |
| +#else |
| + // We can't really do this test on osx since the case-sensitivity of the |
| + // filesystem is configurable. |
| +#endif |
| +} |
| + |
| } // namespace |