1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Use of this source code is governed by a BSD-style license that can be 3dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// found in the LICENSE file. 4dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/policy/policy_map.h" 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 8dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "policy/configuration_policy_type.h" 9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "testing/gtest/include/gtest/gtest.h" 10dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 11dc0f95d653279beabeb9817299e2902918ba123eKristian Monsennamespace policy { 12dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 13dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenTEST(PolicyMapTest, SetAndGet) { 14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap map; 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen map.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 16dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen StringValue expected("aaa"); 17dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(expected.Equals(map.Get(kPolicyHomepageLocation))); 18dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen map.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 19dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen StringValue expected_b("bbb"); 20dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(expected_b.Equals(map.Get(kPolicyHomepageLocation))); 21dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 22dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 23dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenTEST(PolicyMapTest, Equals) { 24dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap a; 25dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 26dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap a2; 27dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen a2.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 28dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap b; 29dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 30dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap c; 31dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen c.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 32dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen c.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true)); 33dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(a.Equals(b)); 34dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(b.Equals(a)); 35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(a.Equals(c)); 36dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(c.Equals(a)); 37dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(a.Equals(a2)); 38dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(a2.Equals(a)); 39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap empty1; 40dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap empty2; 41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(empty1.Equals(empty2)); 42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(empty2.Equals(empty1)); 43dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(empty1.Equals(a)); 44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(a.Equals(empty1)); 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 47dc0f95d653279beabeb9817299e2902918ba123eKristian MonsenTEST(PolicyMapTest, Swap) { 48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap a; 49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa")); 50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap b; 51dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb")); 52dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen b.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true)); 53dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen a.Swap(&b); 54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen StringValue expected("bbb"); 55dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(expected.Equals(a.Get(kPolicyHomepageLocation))); 56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen FundamentalValue expected_bool(true); 57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(expected_bool.Equals(a.Get(kPolicyHomepageIsNewTabPage))); 58dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen StringValue expected_a("aaa"); 59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(expected_a.Equals(b.Get(kPolicyHomepageLocation))); 60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 61dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen b.Clear(); 62dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen a.Swap(&b); 63dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen PolicyMap empty; 64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_TRUE(a.Equals(empty)); 65dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen EXPECT_FALSE(b.Equals(empty)); 66dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 68dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} // namespace policy 69