146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/json/json_reader.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/policy/managed_bookmarks_policy_handler.h" 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/bookmarks/common/bookmark_pref_names.h" 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/policy/core/browser/configuration_policy_pref_store.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/policy/core/browser/configuration_policy_pref_store_test.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/policy/core/common/policy_map.h" 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/policy/core/common/schema.h" 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "policy/policy_constants.h" 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if defined(ENABLE_EXTENSIONS) 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "extensions/common/value_builder.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace policy { 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class ManagedBookmarksPolicyHandlerTest 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) : public ConfigurationPolicyPrefStoreTest { 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual void SetUp() OVERRIDE { 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) Schema chrome_schema = Schema::Wrap(GetChromeSchemaData()); 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) new ManagedBookmarksPolicyHandler(chrome_schema))); 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if defined(ENABLE_EXTENSIONS) 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) { 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) PolicyMap policy; 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) policy.Set(key::kManagedBookmarks, 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_LEVEL_MANDATORY, 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_SCOPE_USER, 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::JSONReader::Read( 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "[" 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Google\"," 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"google.com\"" 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Empty Folder\"," 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"children\": []" 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Big Folder\"," 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"children\": [" 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Youtube\"," 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"youtube.com\"" 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Chromium\"," 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"chromium.org\"" 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"More Stuff\"," 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"children\": [" 6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Bugs\"," 6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"crbug.com\"" 6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }" 6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " ]" 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }" 6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " ]" 6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }" 6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "]"), 7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NULL); 7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateProviderPolicy(policy); 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Value* pref_value = NULL; 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE( 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(pref_value); 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<base::Value> expected( 7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) extensions::ListBuilder() 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Google") 8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://google.com/")) 8246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 8346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Empty Folder") 8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("children", extensions::ListBuilder().Pass())) 8546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Big Folder") 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("children", extensions::ListBuilder() 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Youtube") 9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://youtube.com/")) 9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 9246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Chromium") 9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://chromium.org/")) 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "More Stuff") 9646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("children", extensions::ListBuilder() 9746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 9846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Bugs") 9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://crbug.com/") 10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Pass()) 10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Pass()) 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Pass()) 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Pass()) 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Pass()) 10546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Build()); 10646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_TRUE(pref_value->Equals(expected.get())); 10746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // defined(ENABLE_EXTENSIONS) 10946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 11046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(ManagedBookmarksPolicyHandlerTest, WrongPolicyType) { 11146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) PolicyMap policy; 11246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // The expected type is base::ListValue, but this policy sets it as an 11346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // unparsed base::StringValue. Any type other than ListValue should fail. 11446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) policy.Set(key::kManagedBookmarks, 11546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_LEVEL_MANDATORY, 11646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_SCOPE_USER, 11746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) new base::StringValue( 11846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "[" 11946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 12046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Google\"," 12146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"google.com\"" 12246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 12346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "]"), 12446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NULL); 12546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateProviderPolicy(policy); 1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); 12746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 12846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if defined(ENABLE_EXTENSIONS) 13046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(ManagedBookmarksPolicyHandlerTest, UnknownKeys) { 13146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) PolicyMap policy; 13246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) policy.Set(key::kManagedBookmarks, 13346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_LEVEL_MANDATORY, 13446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_SCOPE_USER, 13546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::JSONReader::Read( 13646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "[" 13746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 13846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Google\"," 13946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"unknown\": \"should be ignored\"," 14046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"google.com\"" 14146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }" 14246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "]"), 14346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NULL); 14446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateProviderPolicy(policy); 14546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Value* pref_value = NULL; 1461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE( 1471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 14846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(pref_value); 14946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 15046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<base::Value> expected( 15146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) extensions::ListBuilder() 15246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 15346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Google") 15446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://google.com/")) 15546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Build()); 15646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_TRUE(pref_value->Equals(expected.get())); 15746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif 15946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if defined(ENABLE_EXTENSIONS) 16146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST_F(ManagedBookmarksPolicyHandlerTest, BadBookmark) { 16246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) PolicyMap policy; 16346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) policy.Set(key::kManagedBookmarks, 16446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_LEVEL_MANDATORY, 16546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) POLICY_SCOPE_USER, 16646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::JSONReader::Read( 16746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "[" 16846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 16946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Empty\"," 17046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"\"" 17146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 17246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 17346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Invalid type\"," 17446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": 4" 17546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 17646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 17746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Invalid URL\"," 17846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"?\"" 17946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }," 18046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " {" 18146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"name\": \"Google\"," 18246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " \"url\": \"google.com\"" 18346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) " }" 18446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) "]"), 18546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) NULL); 18646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) UpdateProviderPolicy(policy); 18746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const base::Value* pref_value = NULL; 1881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_TRUE( 1891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); 19046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_TRUE(pref_value); 19146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 19246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) scoped_ptr<base::Value> expected( 19346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) extensions::ListBuilder() 19446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Append(extensions::DictionaryBuilder() 19546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("name", "Google") 19646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Set("url", "http://google.com/")) 19746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) .Build()); 19846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_TRUE(pref_value->Equals(expected.get())); 19946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 2001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif 20146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 20246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace policy 203