Index: chrome/browser/policy/cloud/resource_cache_unittest.cc |
diff --git a/chrome/browser/policy/cloud/resource_cache_unittest.cc b/chrome/browser/policy/cloud/resource_cache_unittest.cc |
deleted file mode 100644 |
index afca62516a380c806e1845b82872295c3fc90c88..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/cloud/resource_cache_unittest.cc |
+++ /dev/null |
@@ -1,157 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/policy/cloud/resource_cache.h" |
- |
-#include "base/basictypes.h" |
-#include "base/bind.h" |
-#include "base/callback.h" |
-#include "base/files/scoped_temp_dir.h" |
-#include "base/test/test_simple_task_runner.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace policy { |
- |
-namespace { |
- |
-const char kKey1[] = "key 1"; |
-const char kKey2[] = "key 2"; |
-const char kKey3[] = "key 3"; |
-const char kSubA[] = "a"; |
-const char kSubB[] = "bb"; |
-const char kSubC[] = "ccc"; |
-const char kSubD[] = "dddd"; |
-const char kSubE[] = "eeeee"; |
- |
-const char kData0[] = "{ \"key\": \"value\" }"; |
-const char kData1[] = "{}"; |
- |
-bool Matches(const std::string& expected, const std::string& subkey) { |
- return subkey == expected; |
-} |
- |
-} // namespace |
- |
-TEST(ResourceCacheTest, StoreAndLoad) { |
- base::ScopedTempDir temp_dir; |
- ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
- ResourceCache cache(temp_dir.path(), |
- make_scoped_refptr(new base::TestSimpleTaskRunner)); |
- |
- // No data initially. |
- std::string data; |
- EXPECT_FALSE(cache.Load(kKey1, kSubA, &data)); |
- |
- // Store some data and load it. |
- EXPECT_TRUE(cache.Store(kKey1, kSubA, kData0)); |
- EXPECT_TRUE(cache.Load(kKey1, kSubA, &data)); |
- EXPECT_EQ(kData0, data); |
- |
- // Store more data in another subkey. |
- EXPECT_TRUE(cache.Store(kKey1, kSubB, kData1)); |
- |
- // Write subkeys to two other keys. |
- EXPECT_TRUE(cache.Store(kKey2, kSubA, kData0)); |
- EXPECT_TRUE(cache.Store(kKey2, kSubB, kData1)); |
- EXPECT_TRUE(cache.Store(kKey3, kSubA, kData0)); |
- EXPECT_TRUE(cache.Store(kKey3, kSubB, kData1)); |
- |
- // Enumerate all the subkeys. |
- std::map<std::string, std::string> contents; |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData0, contents[kSubA]); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- |
- // Store more subkeys. |
- EXPECT_TRUE(cache.Store(kKey1, kSubC, kData1)); |
- EXPECT_TRUE(cache.Store(kKey1, kSubD, kData1)); |
- EXPECT_TRUE(cache.Store(kKey1, kSubE, kData1)); |
- |
- // Now purge some of them. |
- std::set<std::string> keep; |
- keep.insert(kSubB); |
- keep.insert(kSubD); |
- cache.PurgeOtherSubkeys(kKey1, keep); |
- |
- // Enumerate all the remaining subkeys. |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- EXPECT_EQ(kData1, contents[kSubD]); |
- |
- // Delete subkeys directly. |
- cache.Delete(kKey1, kSubB); |
- cache.Delete(kKey1, kSubD); |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(0u, contents.size()); |
- |
- // The other two keys were not affected. |
- cache.LoadAllSubkeys(kKey2, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData0, contents[kSubA]); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- cache.LoadAllSubkeys(kKey3, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData0, contents[kSubA]); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- |
- // Now purge all keys except the third. |
- keep.clear(); |
- keep.insert(kKey3); |
- cache.PurgeOtherKeys(keep); |
- |
- // The first two keys are empty. |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(0u, contents.size()); |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(0u, contents.size()); |
- |
- // The third key is unaffected. |
- cache.LoadAllSubkeys(kKey3, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData0, contents[kSubA]); |
- EXPECT_EQ(kData1, contents[kSubB]); |
-} |
- |
-TEST(ResourceCacheTest, FilterSubkeys) { |
- base::ScopedTempDir temp_dir; |
- ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
- ResourceCache cache(temp_dir.path(), |
- make_scoped_refptr(new base::TestSimpleTaskRunner)); |
- |
- // Store some data. |
- EXPECT_TRUE(cache.Store(kKey1, kSubA, kData0)); |
- EXPECT_TRUE(cache.Store(kKey1, kSubB, kData1)); |
- EXPECT_TRUE(cache.Store(kKey1, kSubC, kData0)); |
- EXPECT_TRUE(cache.Store(kKey2, kSubA, kData0)); |
- EXPECT_TRUE(cache.Store(kKey2, kSubB, kData1)); |
- EXPECT_TRUE(cache.Store(kKey3, kSubA, kData0)); |
- EXPECT_TRUE(cache.Store(kKey3, kSubB, kData1)); |
- |
- // Check the contents of kKey1. |
- std::map<std::string, std::string> contents; |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(3u, contents.size()); |
- EXPECT_EQ(kData0, contents[kSubA]); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- EXPECT_EQ(kData0, contents[kSubC]); |
- |
- // Filter some subkeys. |
- cache.FilterSubkeys(kKey1, base::Bind(&Matches, kSubA)); |
- |
- // Check the contents of kKey1 again. |
- cache.LoadAllSubkeys(kKey1, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- EXPECT_EQ(kData1, contents[kSubB]); |
- EXPECT_EQ(kData0, contents[kSubC]); |
- |
- // Other keys weren't affected. |
- cache.LoadAllSubkeys(kKey2, &contents); |
- EXPECT_EQ(2u, contents.size()); |
- cache.LoadAllSubkeys(kKey3, &contents); |
- EXPECT_EQ(2u, contents.size()); |
-} |
- |
-} // namespace policy |