Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / policy / javascript_policy_handler_unittest.cc
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
14 namespace policy {
15
16 class JavascriptPolicyHandlerTest : public ConfigurationPolicyPrefStoreTest {
17   virtual void SetUp() OVERRIDE {
18     handler_list_.AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
19           new JavascriptPolicyHandler));
20   }
21 };
22
23 TEST_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              new base::FundamentalValue(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              new base::FundamentalValue(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
46 TEST_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              new base::FundamentalValue(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              new base::FundamentalValue(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