javascript_policy_handler_unittest.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/policy/javascript_policy_handler.h" 6#include "chrome/common/content_settings.h" 7#include "chrome/common/pref_names.h" 8#include "components/policy/core/browser/configuration_policy_pref_store.h" 9#include "components/policy/core/browser/configuration_policy_pref_store_test.h" 10#include "components/policy/core/browser/policy_error_map.h" 11#include "components/policy/core/common/policy_map.h" 12#include "policy/policy_constants.h" 13 14namespace policy { 15 16class JavascriptPolicyHandlerTest : public ConfigurationPolicyPrefStoreTest { 17 virtual void SetUp() OVERRIDE { 18 handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 19 new JavascriptPolicyHandler)); 20 } 21}; 22 23TEST_F(JavascriptPolicyHandlerTest, JavascriptEnabled) { 24 // This is a boolean policy, but affects an integer preference. 25 EXPECT_FALSE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 26 PolicyMap policy; 27 policy.Set(key::kJavascriptEnabled, 28 POLICY_LEVEL_MANDATORY, 29 POLICY_SCOPE_USER, 30 base::Value::CreateBooleanValue(true), 31 NULL); 32 UpdateProviderPolicy(policy); 33 EXPECT_FALSE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 34 policy.Set(key::kJavascriptEnabled, 35 POLICY_LEVEL_MANDATORY, 36 POLICY_SCOPE_USER, 37 base::Value::CreateBooleanValue(false), 38 NULL); 39 UpdateProviderPolicy(policy); 40 const base::Value* value = NULL; 41 EXPECT_TRUE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, 42 &value)); 43 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value)); 44} 45 46TEST_F(JavascriptPolicyHandlerTest, JavascriptEnabledOverridden) { 47 EXPECT_FALSE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, NULL)); 48 PolicyMap policy; 49 policy.Set(key::kJavascriptEnabled, 50 POLICY_LEVEL_MANDATORY, 51 POLICY_SCOPE_USER, 52 base::Value::CreateBooleanValue(false), 53 NULL); 54 UpdateProviderPolicy(policy); 55 const base::Value* value = NULL; 56 EXPECT_TRUE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, 57 &value)); 58 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_BLOCK).Equals(value)); 59 // DefaultJavaScriptSetting overrides JavascriptEnabled. 60 policy.Set(key::kDefaultJavaScriptSetting, 61 POLICY_LEVEL_MANDATORY, 62 POLICY_SCOPE_USER, 63 base::Value::CreateIntegerValue(CONTENT_SETTING_ALLOW), 64 NULL); 65 UpdateProviderPolicy(policy); 66 EXPECT_TRUE(store_->GetValue(prefs::kManagedDefaultJavaScriptSetting, 67 &value)); 68 EXPECT_TRUE(base::FundamentalValue(CONTENT_SETTING_ALLOW).Equals(value)); 69} 70 71} // namespace policy 72