| Index: base/path_service_unittest.cc
|
| diff --git a/base/path_service_unittest.cc b/base/path_service_unittest.cc
|
| index 81d1fef0b96c61379712f4c9ee2a87e720b2a37a..64c3dcbf652620b3fa890e56b71addfbbd55efa5 100644
|
| --- a/base/path_service_unittest.cc
|
| +++ b/base/path_service_unittest.cc
|
| @@ -111,3 +111,48 @@ TEST_F(PathServiceTest, Override) {
|
| true));
|
| EXPECT_TRUE(file_util::PathExists(fake_cache_dir2));
|
| }
|
| +
|
| +// Check if multiple overrides can co-exist.
|
| +TEST_F(PathServiceTest, OverrideMultiple) {
|
| + int my_special_key = 666;
|
| + ScopedTempDir temp_dir;
|
| + ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| + FilePath fake_cache_dir1(temp_dir.path().AppendASCII("1"));
|
| + EXPECT_TRUE(PathService::Override(my_special_key, fake_cache_dir1));
|
| + EXPECT_TRUE(file_util::PathExists(fake_cache_dir1));
|
| + ASSERT_EQ(1, file_util::WriteFile(fake_cache_dir1.AppendASCII("t1"), ".", 1));
|
| +
|
| + FilePath fake_cache_dir2(temp_dir.path().AppendASCII("2"));
|
| + EXPECT_TRUE(PathService::Override(my_special_key + 1, fake_cache_dir2));
|
| + EXPECT_TRUE(file_util::PathExists(fake_cache_dir2));
|
| + ASSERT_EQ(1, file_util::WriteFile(fake_cache_dir2.AppendASCII("t2"), ".", 1));
|
| +
|
| + FilePath result;
|
| + EXPECT_TRUE(PathService::Get(my_special_key, &result));
|
| + // Override might have changed the path representation but our test file
|
| + // should be still there.
|
| + EXPECT_TRUE(file_util::PathExists(result.AppendASCII("t1")));
|
| + EXPECT_TRUE(PathService::Get(my_special_key + 1, &result));
|
| + EXPECT_TRUE(file_util::PathExists(result.AppendASCII("t2")));
|
| +}
|
| +
|
| +TEST_F(PathServiceTest, RemoveOverride) {
|
| + // Before we start the test we have to call RemoveOverride at least once to
|
| + // clear any overrides that might have been left from other tests.
|
| + PathService::RemoveOverride(base::DIR_TEMP);
|
| +
|
| + FilePath original_user_data_dir;
|
| + EXPECT_TRUE(PathService::Get(base::DIR_TEMP, &original_user_data_dir));
|
| + EXPECT_FALSE(PathService::RemoveOverride(base::DIR_TEMP));
|
| +
|
| + ScopedTempDir temp_dir;
|
| + ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
|
| + EXPECT_TRUE(PathService::Override(base::DIR_TEMP, temp_dir.path()));
|
| + FilePath new_user_data_dir;
|
| + EXPECT_TRUE(PathService::Get(base::DIR_TEMP, &new_user_data_dir));
|
| + EXPECT_NE(original_user_data_dir, new_user_data_dir);
|
| +
|
| + EXPECT_TRUE(PathService::RemoveOverride(base::DIR_TEMP));
|
| + EXPECT_TRUE(PathService::Get(base::DIR_TEMP, &new_user_data_dir));
|
| + EXPECT_EQ(original_user_data_dir, new_user_data_dir);
|
| +}
|
|
|