1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Use of this source code is governed by a BSD-style license that can be 321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// found in the LICENSE file. 421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "base/values.h" 621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/prefs/pref_value_map.h" 721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "testing/gtest/include/gtest/gtest.h" 821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenclass PrefValueMapTest : public testing::Test { 1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen}; 1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(PrefValueMapTest, SetValue) { 1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefValueMap map; 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const Value* result = NULL; 1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.GetValue("key", &result)); 1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(result); 1721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.SetValue("key", Value::CreateStringValue("test"))); 1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.SetValue("key", Value::CreateStringValue("test"))); 2021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.SetValue("key", Value::CreateStringValue("hi mom!"))); 2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.GetValue("key", &result)); 2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(StringValue("hi mom!").Equals(result)); 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(PrefValueMapTest, RemoveValue) { 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefValueMap map; 2821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.RemoveValue("key")); 2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.SetValue("key", Value::CreateStringValue("test"))); 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.GetValue("key", NULL)); 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.RemoveValue("key")); 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.GetValue("key", NULL)); 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.RemoveValue("key")); 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(PrefValueMapTest, Clear) { 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefValueMap map; 4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.SetValue("key", Value::CreateStringValue("test"))); 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(map.GetValue("key", NULL)); 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen map.Clear(); 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_FALSE(map.GetValue("key", NULL)); 4721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 4821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenTEST_F(PrefValueMapTest, GetDifferingKeys) { 5021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefValueMap reference; 5121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(reference.SetValue("b", Value::CreateStringValue("test"))); 5221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(reference.SetValue("c", Value::CreateStringValue("test"))); 5321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(reference.SetValue("e", Value::CreateStringValue("test"))); 5421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 5521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen PrefValueMap check; 5621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::vector<std::string> differing_paths; 5721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen std::vector<std::string> expected_differing_paths; 5821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 5921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen reference.GetDifferingKeys(&check, &differing_paths); 6021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("b"); 6121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("c"); 6221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("e"); 6321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(expected_differing_paths, differing_paths); 6421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 6521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(check.SetValue("a", Value::CreateStringValue("test"))); 6621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(check.SetValue("c", Value::CreateStringValue("test"))); 6721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_TRUE(check.SetValue("d", Value::CreateStringValue("test"))); 6821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 6921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen reference.GetDifferingKeys(&check, &differing_paths); 7021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.clear(); 7121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("a"); 7221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("b"); 7321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("d"); 7421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen expected_differing_paths.push_back("e"); 7521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen EXPECT_EQ(expected_differing_paths, differing_paths); 7621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 77