// Copyright (c) 2011 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/memory/scoped_ptr.h"
#include "policy/configuration_policy_type.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace policy {
TEST(PolicyMapTest, SetAndGet) {
PolicyMap map;
map.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
StringValue expected("aaa");
EXPECT_TRUE(expected.Equals(map.Get(kPolicyHomepageLocation)));
map.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
StringValue expected_b("bbb");
EXPECT_TRUE(expected_b.Equals(map.Get(kPolicyHomepageLocation)));
}
TEST(PolicyMapTest, Equals) {
PolicyMap a;
a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap a2;
a2.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap b;
b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
PolicyMap c;
c.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
c.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true));
EXPECT_FALSE(a.Equals(b));
EXPECT_FALSE(b.Equals(a));
EXPECT_FALSE(a.Equals(c));
EXPECT_FALSE(c.Equals(a));
EXPECT_TRUE(a.Equals(a2));
EXPECT_TRUE(a2.Equals(a));
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(PolicyMapTest, Swap) {
PolicyMap a;
a.Set(kPolicyHomepageLocation, Value::CreateStringValue("aaa"));
PolicyMap b;
b.Set(kPolicyHomepageLocation, Value::CreateStringValue("bbb"));
b.Set(kPolicyHomepageIsNewTabPage, Value::CreateBooleanValue(true));
a.Swap(&b);
StringValue expected("bbb");
EXPECT_TRUE(expected.Equals(a.Get(kPolicyHomepageLocation)));
FundamentalValue expected_bool(true);
EXPECT_TRUE(expected_bool.Equals(a.Get(kPolicyHomepageIsNewTabPage)));
StringValue expected_a("aaa");
EXPECT_TRUE(expected_a.Equals(b.Get(kPolicyHomepageLocation)));
b.Clear();
a.Swap(&b);
PolicyMap empty;
EXPECT_TRUE(a.Equals(empty));
EXPECT_FALSE(b.Equals(empty));
}
} // namespace policy