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 |