| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/json/json_reader.h" | 5 #include "base/json/json_reader.h" |
| 6 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h" | 6 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h" |
| 7 #include "components/bookmarks/common/bookmark_pref_names.h" | 7 #include "components/bookmarks/common/bookmark_pref_names.h" |
| 8 #include "components/policy/core/browser/configuration_policy_pref_store.h" | 8 #include "components/policy/core/browser/configuration_policy_pref_store.h" |
| 9 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" | 9 #include "components/policy/core/browser/configuration_policy_pref_store_test.h" |
| 10 #include "components/policy/core/common/policy_map.h" | 10 #include "components/policy/core/common/policy_map.h" |
| 11 #include "components/policy/core/common/schema.h" | 11 #include "components/policy/core/common/schema.h" |
| 12 #include "policy/policy_constants.h" |
| 13 |
| 14 #if defined(ENABLE_EXTENSIONS) |
| 12 #include "extensions/common/value_builder.h" | 15 #include "extensions/common/value_builder.h" |
| 13 #include "policy/policy_constants.h" | 16 #endif |
| 14 | 17 |
| 15 namespace policy { | 18 namespace policy { |
| 16 | 19 |
| 17 class ManagedBookmarksPolicyHandlerTest | 20 class ManagedBookmarksPolicyHandlerTest |
| 18 : public ConfigurationPolicyPrefStoreTest { | 21 : public ConfigurationPolicyPrefStoreTest { |
| 19 virtual void SetUp() OVERRIDE { | 22 virtual void SetUp() OVERRIDE { |
| 20 Schema chrome_schema = Schema::Wrap(GetChromeSchemaData()); | 23 Schema chrome_schema = Schema::Wrap(GetChromeSchemaData()); |
| 21 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 24 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
| 22 new ManagedBookmarksPolicyHandler(chrome_schema))); | 25 new ManagedBookmarksPolicyHandler(chrome_schema))); |
| 23 } | 26 } |
| 24 }; | 27 }; |
| 25 | 28 |
| 29 #if defined(ENABLE_EXTENSIONS) |
| 26 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) { | 30 TEST_F(ManagedBookmarksPolicyHandlerTest, ApplyPolicySettings) { |
| 27 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); | 31 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); |
| 28 | 32 |
| 29 PolicyMap policy; | 33 PolicyMap policy; |
| 30 policy.Set(key::kManagedBookmarks, | 34 policy.Set(key::kManagedBookmarks, |
| 31 POLICY_LEVEL_MANDATORY, | 35 POLICY_LEVEL_MANDATORY, |
| 32 POLICY_SCOPE_USER, | 36 POLICY_SCOPE_USER, |
| 33 base::JSONReader::Read( | 37 base::JSONReader::Read( |
| 34 "[" | 38 "[" |
| 35 " {" | 39 " {" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 .Set("name", "Bugs") | 98 .Set("name", "Bugs") |
| 95 .Set("url", "http://crbug.com/") | 99 .Set("url", "http://crbug.com/") |
| 96 .Pass()) | 100 .Pass()) |
| 97 .Pass()) | 101 .Pass()) |
| 98 .Pass()) | 102 .Pass()) |
| 99 .Pass()) | 103 .Pass()) |
| 100 .Pass()) | 104 .Pass()) |
| 101 .Build()); | 105 .Build()); |
| 102 EXPECT_TRUE(pref_value->Equals(expected.get())); | 106 EXPECT_TRUE(pref_value->Equals(expected.get())); |
| 103 } | 107 } |
| 108 #endif // defined(ENABLE_EXTENSIONS) |
| 104 | 109 |
| 105 TEST_F(ManagedBookmarksPolicyHandlerTest, WrongPolicyType) { | 110 TEST_F(ManagedBookmarksPolicyHandlerTest, WrongPolicyType) { |
| 106 PolicyMap policy; | 111 PolicyMap policy; |
| 107 // The expected type is base::ListValue, but this policy sets it as an | 112 // The expected type is base::ListValue, but this policy sets it as an |
| 108 // unparsed base::StringValue. Any type other than ListValue should fail. | 113 // unparsed base::StringValue. Any type other than ListValue should fail. |
| 109 policy.Set(key::kManagedBookmarks, | 114 policy.Set(key::kManagedBookmarks, |
| 110 POLICY_LEVEL_MANDATORY, | 115 POLICY_LEVEL_MANDATORY, |
| 111 POLICY_SCOPE_USER, | 116 POLICY_SCOPE_USER, |
| 112 new base::StringValue( | 117 new base::StringValue( |
| 113 "[" | 118 "[" |
| 114 " {" | 119 " {" |
| 115 " \"name\": \"Google\"," | 120 " \"name\": \"Google\"," |
| 116 " \"url\": \"google.com\"" | 121 " \"url\": \"google.com\"" |
| 117 " }," | 122 " }," |
| 118 "]"), | 123 "]"), |
| 119 NULL); | 124 NULL); |
| 120 UpdateProviderPolicy(policy); | 125 UpdateProviderPolicy(policy); |
| 121 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); | 126 EXPECT_FALSE(store_->GetValue(bookmarks::prefs::kManagedBookmarks, NULL)); |
| 122 } | 127 } |
| 123 | 128 |
| 129 #if defined(ENABLE_EXTENSIONS) |
| 124 TEST_F(ManagedBookmarksPolicyHandlerTest, UnknownKeys) { | 130 TEST_F(ManagedBookmarksPolicyHandlerTest, UnknownKeys) { |
| 125 PolicyMap policy; | 131 PolicyMap policy; |
| 126 policy.Set(key::kManagedBookmarks, | 132 policy.Set(key::kManagedBookmarks, |
| 127 POLICY_LEVEL_MANDATORY, | 133 POLICY_LEVEL_MANDATORY, |
| 128 POLICY_SCOPE_USER, | 134 POLICY_SCOPE_USER, |
| 129 base::JSONReader::Read( | 135 base::JSONReader::Read( |
| 130 "[" | 136 "[" |
| 131 " {" | 137 " {" |
| 132 " \"name\": \"Google\"," | 138 " \"name\": \"Google\"," |
| 133 " \"unknown\": \"should be ignored\"," | 139 " \"unknown\": \"should be ignored\"," |
| 134 " \"url\": \"google.com\"" | 140 " \"url\": \"google.com\"" |
| 135 " }" | 141 " }" |
| 136 "]"), | 142 "]"), |
| 137 NULL); | 143 NULL); |
| 138 UpdateProviderPolicy(policy); | 144 UpdateProviderPolicy(policy); |
| 139 const base::Value* pref_value = NULL; | 145 const base::Value* pref_value = NULL; |
| 140 EXPECT_TRUE( | 146 EXPECT_TRUE( |
| 141 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); | 147 store_->GetValue(bookmarks::prefs::kManagedBookmarks, &pref_value)); |
| 142 ASSERT_TRUE(pref_value); | 148 ASSERT_TRUE(pref_value); |
| 143 | 149 |
| 144 scoped_ptr<base::Value> expected( | 150 scoped_ptr<base::Value> expected( |
| 145 extensions::ListBuilder() | 151 extensions::ListBuilder() |
| 146 .Append(extensions::DictionaryBuilder() | 152 .Append(extensions::DictionaryBuilder() |
| 147 .Set("name", "Google") | 153 .Set("name", "Google") |
| 148 .Set("url", "http://google.com/")) | 154 .Set("url", "http://google.com/")) |
| 149 .Build()); | 155 .Build()); |
| 150 EXPECT_TRUE(pref_value->Equals(expected.get())); | 156 EXPECT_TRUE(pref_value->Equals(expected.get())); |
| 151 } | 157 } |
| 158 #endif |
| 152 | 159 |
| 160 #if defined(ENABLE_EXTENSIONS) |
| 153 TEST_F(ManagedBookmarksPolicyHandlerTest, BadBookmark) { | 161 TEST_F(ManagedBookmarksPolicyHandlerTest, BadBookmark) { |
| 154 PolicyMap policy; | 162 PolicyMap policy; |
| 155 policy.Set(key::kManagedBookmarks, | 163 policy.Set(key::kManagedBookmarks, |
| 156 POLICY_LEVEL_MANDATORY, | 164 POLICY_LEVEL_MANDATORY, |
| 157 POLICY_SCOPE_USER, | 165 POLICY_SCOPE_USER, |
| 158 base::JSONReader::Read( | 166 base::JSONReader::Read( |
| 159 "[" | 167 "[" |
| 160 " {" | 168 " {" |
| 161 " \"name\": \"Empty\"," | 169 " \"name\": \"Empty\"," |
| 162 " \"url\": \"\"" | 170 " \"url\": \"\"" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 182 ASSERT_TRUE(pref_value); | 190 ASSERT_TRUE(pref_value); |
| 183 | 191 |
| 184 scoped_ptr<base::Value> expected( | 192 scoped_ptr<base::Value> expected( |
| 185 extensions::ListBuilder() | 193 extensions::ListBuilder() |
| 186 .Append(extensions::DictionaryBuilder() | 194 .Append(extensions::DictionaryBuilder() |
| 187 .Set("name", "Google") | 195 .Set("name", "Google") |
| 188 .Set("url", "http://google.com/")) | 196 .Set("url", "http://google.com/")) |
| 189 .Build()); | 197 .Build()); |
| 190 EXPECT_TRUE(pref_value->Equals(expected.get())); | 198 EXPECT_TRUE(pref_value->Equals(expected.get())); |
| 191 } | 199 } |
| 200 #endif |
| 192 | 201 |
| 193 } // namespace policy | 202 } // namespace policy |
| OLD | NEW |