Index: chrome/browser/policy/policy_map_unittest.cc |
diff --git a/chrome/browser/policy/policy_map_unittest.cc b/chrome/browser/policy/policy_map_unittest.cc |
deleted file mode 100644 |
index b8537685930dda8c8af0d83c8faf019af1271ba6..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/policy_map_unittest.cc |
+++ /dev/null |
@@ -1,289 +0,0 @@ |
-// Copyright (c) 2012 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/policy_map.h" |
- |
-#include "base/callback.h" |
-#include "base/memory/weak_ptr.h" |
-#include "chrome/browser/policy/external_data_manager.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace policy { |
- |
-namespace { |
- |
-// Dummy policy names. |
-const char kTestPolicyName1[] = "policy.test.1"; |
-const char kTestPolicyName2[] = "policy.test.2"; |
-const char kTestPolicyName3[] = "policy.test.3"; |
-const char kTestPolicyName4[] = "policy.test.4"; |
-const char kTestPolicyName5[] = "policy.test.5"; |
-const char kTestPolicyName6[] = "policy.test.6"; |
-const char kTestPolicyName7[] = "policy.test.7"; |
-const char kTestPolicyName8[] = "policy.test.8"; |
- |
-// Utility functions for the tests. |
-void SetPolicy(PolicyMap* map, const char* name, Value* value) { |
- map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, value, NULL); |
-} |
- |
-void SetPolicy(PolicyMap* map, |
- const char* name, |
- ExternalDataFetcher* external_data_fetcher) { |
- map->Set(name, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- NULL, external_data_fetcher); |
-} |
- |
-} // namespace |
- |
-class PolicyMapTest : public testing::Test { |
- protected: |
- scoped_ptr<ExternalDataFetcher> CreateExternalDataFetcher( |
- const std::string& policy) const; |
-}; |
- |
-scoped_ptr<ExternalDataFetcher> PolicyMapTest::CreateExternalDataFetcher( |
- const std::string& policy) const { |
- return make_scoped_ptr( |
- new ExternalDataFetcher(base::WeakPtr<ExternalDataManager>(), policy)); |
-} |
- |
-TEST_F(PolicyMapTest, SetAndGet) { |
- PolicyMap map; |
- SetPolicy(&map, kTestPolicyName1, Value::CreateStringValue("aaa")); |
- StringValue expected("aaa"); |
- EXPECT_TRUE(expected.Equals(map.GetValue(kTestPolicyName1))); |
- SetPolicy(&map, kTestPolicyName1, Value::CreateStringValue("bbb")); |
- StringValue expected_b("bbb"); |
- EXPECT_TRUE(expected_b.Equals(map.GetValue(kTestPolicyName1))); |
- SetPolicy(&map, kTestPolicyName1, |
- CreateExternalDataFetcher("dummy").release()); |
- EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
- const PolicyMap::Entry* entry = map.Get(kTestPolicyName1); |
- ASSERT_TRUE(entry != NULL); |
- EXPECT_EQ(POLICY_LEVEL_MANDATORY, entry->level); |
- EXPECT_EQ(POLICY_SCOPE_USER, entry->scope); |
- EXPECT_TRUE(ExternalDataFetcher::Equals( |
- entry->external_data_fetcher, CreateExternalDataFetcher("dummy").get())); |
- map.Set(kTestPolicyName1, POLICY_LEVEL_RECOMMENDED, |
- POLICY_SCOPE_MACHINE, NULL, NULL); |
- EXPECT_FALSE(map.GetValue(kTestPolicyName1)); |
- entry = map.Get(kTestPolicyName1); |
- ASSERT_TRUE(entry != NULL); |
- EXPECT_EQ(POLICY_LEVEL_RECOMMENDED, entry->level); |
- EXPECT_EQ(POLICY_SCOPE_MACHINE, entry->scope); |
- EXPECT_FALSE(entry->external_data_fetcher); |
-} |
- |
-TEST_F(PolicyMapTest, Equals) { |
- PolicyMap a; |
- SetPolicy(&a, kTestPolicyName1, Value::CreateStringValue("aaa")); |
- PolicyMap a2; |
- SetPolicy(&a2, kTestPolicyName1, Value::CreateStringValue("aaa")); |
- PolicyMap b; |
- SetPolicy(&b, kTestPolicyName1, Value::CreateStringValue("bbb")); |
- PolicyMap c; |
- SetPolicy(&c, kTestPolicyName1, Value::CreateStringValue("aaa")); |
- SetPolicy(&c, kTestPolicyName2, Value::CreateBooleanValue(true)); |
- PolicyMap d; |
- SetPolicy(&d, kTestPolicyName1, |
- CreateExternalDataFetcher("ddd").release()); |
- PolicyMap d2; |
- SetPolicy(&d2, kTestPolicyName1, |
- CreateExternalDataFetcher("ddd").release()); |
- PolicyMap e; |
- SetPolicy(&e, kTestPolicyName1, |
- CreateExternalDataFetcher("eee").release()); |
- EXPECT_FALSE(a.Equals(b)); |
- EXPECT_FALSE(a.Equals(c)); |
- EXPECT_FALSE(a.Equals(d)); |
- EXPECT_FALSE(a.Equals(e)); |
- EXPECT_FALSE(b.Equals(a)); |
- EXPECT_FALSE(b.Equals(c)); |
- EXPECT_FALSE(b.Equals(d)); |
- EXPECT_FALSE(b.Equals(e)); |
- EXPECT_FALSE(c.Equals(a)); |
- EXPECT_FALSE(c.Equals(b)); |
- EXPECT_FALSE(c.Equals(d)); |
- EXPECT_FALSE(c.Equals(e)); |
- EXPECT_FALSE(d.Equals(a)); |
- EXPECT_FALSE(d.Equals(b)); |
- EXPECT_FALSE(d.Equals(c)); |
- EXPECT_FALSE(d.Equals(e)); |
- EXPECT_FALSE(e.Equals(a)); |
- EXPECT_FALSE(e.Equals(b)); |
- EXPECT_FALSE(e.Equals(c)); |
- EXPECT_FALSE(e.Equals(d)); |
- EXPECT_TRUE(a.Equals(a2)); |
- EXPECT_TRUE(a2.Equals(a)); |
- EXPECT_TRUE(d.Equals(d2)); |
- EXPECT_TRUE(d2.Equals(d)); |
- PolicyMap empty1; |
- PolicyMap empty2; |
- EXPECT_TRUE(empty1.Equals(empty2)); |
- EXPECT_TRUE(empty2.Equals(empty1)); |
- EXPECT_FALSE(empty1.Equals(a)); |
- EXPECT_FALSE(a.Equals(empty1)); |
-} |
- |
-TEST_F(PolicyMapTest, Swap) { |
- PolicyMap a; |
- SetPolicy(&a, kTestPolicyName1, Value::CreateStringValue("aaa")); |
- SetPolicy(&a, kTestPolicyName2, |
- CreateExternalDataFetcher("dummy").release()); |
- PolicyMap b; |
- SetPolicy(&b, kTestPolicyName1, Value::CreateStringValue("bbb")); |
- SetPolicy(&b, kTestPolicyName3, Value::CreateBooleanValue(true)); |
- |
- a.Swap(&b); |
- base::StringValue expected("bbb"); |
- EXPECT_TRUE(expected.Equals(a.GetValue(kTestPolicyName1))); |
- base::FundamentalValue expected_bool(true); |
- EXPECT_TRUE(expected_bool.Equals(a.GetValue(kTestPolicyName3))); |
- EXPECT_FALSE(a.GetValue(kTestPolicyName2)); |
- EXPECT_FALSE(a.Get(kTestPolicyName2)); |
- StringValue expected_a("aaa"); |
- EXPECT_TRUE(expected_a.Equals(b.GetValue(kTestPolicyName1))); |
- EXPECT_FALSE(b.GetValue(kTestPolicyName3)); |
- EXPECT_FALSE(a.GetValue(kTestPolicyName2)); |
- const PolicyMap::Entry* entry = b.Get(kTestPolicyName2); |
- ASSERT_TRUE(entry); |
- EXPECT_TRUE(ExternalDataFetcher::Equals( |
- CreateExternalDataFetcher("dummy").get(), entry->external_data_fetcher)); |
- |
- b.Clear(); |
- a.Swap(&b); |
- PolicyMap empty; |
- EXPECT_TRUE(a.Equals(empty)); |
- EXPECT_FALSE(b.Equals(empty)); |
-} |
- |
-TEST_F(PolicyMapTest, MergeFrom) { |
- PolicyMap a; |
- a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- Value::CreateStringValue("google.com"), NULL); |
- a.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateBooleanValue(true), NULL); |
- a.Set(kTestPolicyName3, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("a").release()); |
- a.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(false), NULL); |
- a.Set(kTestPolicyName5, |
- POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue("google.com/q={x}"), NULL); |
- |
- PolicyMap b; |
- b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue("chromium.org"), NULL); |
- b.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateBooleanValue(false), NULL); |
- b.Set(kTestPolicyName3, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("b").release()); |
- b.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, |
- POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true), NULL); |
- b.Set(kTestPolicyName5, |
- POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue(std::string()), |
- NULL); |
- b.Set(kTestPolicyName6, |
- POLICY_LEVEL_RECOMMENDED, |
- POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(true), |
- NULL); |
- |
- a.MergeFrom(b); |
- |
- PolicyMap c; |
- // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER. |
- c.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue("chromium.org"), NULL); |
- // |a| has precedence over |b|. |
- c.Set(kTestPolicyName2, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateBooleanValue(true), NULL); |
- c.Set(kTestPolicyName3, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("a").release()); |
- // POLICY_SCOPE_MACHINE over POLICY_SCOPE_USER for POLICY_LEVEL_RECOMMENDED. |
- c.Set(kTestPolicyName4, POLICY_LEVEL_RECOMMENDED, |
- POLICY_SCOPE_MACHINE, Value::CreateBooleanValue(true), NULL); |
- // POLICY_LEVEL_MANDATORY over POLICY_LEVEL_RECOMMENDED. |
- c.Set(kTestPolicyName5, |
- POLICY_LEVEL_MANDATORY, |
- POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue(std::string()), |
- NULL); |
- // Merge new ones. |
- c.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(true), NULL); |
- |
- EXPECT_TRUE(a.Equals(c)); |
-} |
- |
-TEST_F(PolicyMapTest, GetDifferingKeys) { |
- PolicyMap a; |
- a.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- Value::CreateStringValue("google.com"), NULL); |
- a.Set(kTestPolicyName2, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("dummy").release()); |
- a.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateBooleanValue(true), NULL); |
- a.Set(kTestPolicyName4, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("a").release()); |
- a.Set(kTestPolicyName5, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(false), NULL); |
- a.Set(kTestPolicyName6, |
- POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_MACHINE, |
- Value::CreateStringValue("google.com/q={x}"), NULL); |
- a.Set(kTestPolicyName7, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(true), NULL); |
- |
- PolicyMap b; |
- b.Set(kTestPolicyName1, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- Value::CreateStringValue("google.com"), NULL); |
- b.Set(kTestPolicyName2, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("dummy").release()); |
- b.Set(kTestPolicyName3, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- Value::CreateBooleanValue(false), NULL); |
- b.Set(kTestPolicyName4, |
- POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, |
- NULL, CreateExternalDataFetcher("b").release()); |
- b.Set(kTestPolicyName5, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(false), NULL); |
- b.Set(kTestPolicyName6, POLICY_LEVEL_RECOMMENDED, |
- POLICY_SCOPE_USER, Value::CreateStringValue("google.com/q={x}"), NULL); |
- b.Set(kTestPolicyName8, POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, |
- Value::CreateBooleanValue(true), NULL); |
- |
- std::set<std::string> diff; |
- std::set<std::string> diff2; |
- a.GetDifferingKeys(b, &diff); |
- b.GetDifferingKeys(a, &diff2); |
- // Order shouldn't matter. |
- EXPECT_EQ(diff, diff2); |
- // No change. |
- EXPECT_TRUE(diff.find(kTestPolicyName1) == diff.end()); |
- EXPECT_TRUE(diff.find(kTestPolicyName2) == diff.end()); |
- // Different values. |
- EXPECT_TRUE(diff.find(kTestPolicyName3) != diff.end()); |
- // Different external data references. |
- EXPECT_TRUE(diff.find(kTestPolicyName4) != diff.end()); |
- // Different levels. |
- EXPECT_TRUE(diff.find(kTestPolicyName5) != diff.end()); |
- // Different scopes. |
- EXPECT_TRUE(diff.find(kTestPolicyName6) != diff.end()); |
- // Not in |a|. |
- EXPECT_TRUE(diff.find(kTestPolicyName8) != diff.end()); |
- // Not in |b|. |
- EXPECT_TRUE(diff.find(kTestPolicyName7) != diff.end()); |
- // No surprises. |
- EXPECT_EQ(6u, diff.size()); |
-} |
- |
-} // namespace policy |