15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/callback.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "base/json/json_reader.h" 9a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/prefs/pref_value_map.h" 111e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/values.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/ash/chrome_launcher_prefs.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h" 14a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/policy_error_map.h" 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/external_data_fetcher.h" 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/policy_map.h" 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "components/policy/core/common/schema.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "policy/policy_constants.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace policy { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochnamespace { 249ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Test cases for the screen magnifier type policy setting. 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class ScreenMagnifierPolicyHandlerTest : public testing::Test { 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) protected: 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PolicyMap policy_; 291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PrefValueMap prefs_; 301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ScreenMagnifierPolicyHandler handler_; 311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}; 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass LoginScreenPowerManagementPolicyHandlerTest : public testing::Test { 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch protected: 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch LoginScreenPowerManagementPolicyHandlerTest(); 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual void SetUp() OVERRIDE; 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch Schema chrome_schema_; 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch private: 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DISALLOW_COPY_AND_ASSIGN(LoginScreenPowerManagementPolicyHandlerTest); 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 45effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochLoginScreenPowerManagementPolicyHandlerTest:: 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch LoginScreenPowerManagementPolicyHandlerTest() { 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochvoid LoginScreenPowerManagementPolicyHandlerTest::SetUp() { 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch chrome_schema_ = Schema::Wrap(GetChromeSchemaData()); 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Default) { 541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE( 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, NULL)); 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FALSE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, NULL)); 581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Disabled) { 611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy_.Set(key::kScreenMagnifierType, 621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::FundamentalValue(0), 651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* enabled = NULL; 69f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE( 70f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); 711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(enabled); 721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(false).Equals(enabled)); 731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* type = NULL; 75f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); 761e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(type); 771e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(0).Equals(type)); 781e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 791e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Enabled) { 811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy_.Set(key::kScreenMagnifierType, 821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::FundamentalValue(1), 851e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 861e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 871e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 881e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* enabled = NULL; 89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE( 90f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) prefs_.GetValue(prefs::kAccessibilityScreenMagnifierEnabled, &enabled)); 911e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(enabled); 921e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(true).Equals(enabled)); 931e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 941e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* type = NULL; 95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kAccessibilityScreenMagnifierType, &type)); 961e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(type); 971e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(1).Equals(type)); 981e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 991e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, Empty) { 101a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 102a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) 103a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(PolicyMap(), &errors)); 104a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); 105a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, WrongType) { 108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 109a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 110a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 111a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 112a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) new base::FundamentalValue(false), 113a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 115a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 116a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 117a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 118a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 120a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, MissingURL) { 121a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 122a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234567890123456789012345678901234567890"); 123a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 124a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 125a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 126a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 127a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 129a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 130a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 131a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 132a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 133a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 134a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 135a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, InvalidURL) { 136a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 137a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://"); 138a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234567890123456789012345678901234567890"); 139a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 140a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 141a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 142a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 143a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 144a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 145a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 147a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 148a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 150a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 151a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, MissingHash) { 152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 153a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 160a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 161a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 162a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 165a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, InvalidHash) { 167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 168a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 169a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234"); 170a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 171a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 172a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 173a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 174a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 175a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 176a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 177a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 178a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 179a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 180a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 181a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 182a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, Valid) { 183a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 184a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 1855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) dict->SetString( 1865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "hash", 1875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "1234567890123456789012345678901234567890123456789012345678901234"); 188a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 189a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 190a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 191a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 192a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 193a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 194a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 195a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) 196a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 197a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); 198a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 199a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2009ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochconst char kLoginScreenPowerManagementPolicy[] = 2019ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch "{" 2029ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"AC\": {" 2039ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Delays\": {" 2049ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenDim\": 5000," 2059ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenOff\": 7000," 2069ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Idle\": 9000" 2079ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 2089ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"IdleAction\": \"DoNothing\"" 2099ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 2109ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Battery\": {" 2119ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Delays\": {" 2129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenDim\": 1000," 2139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenOff\": 3000," 2149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Idle\": 4000" 2159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 2169ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"IdleAction\": \"DoNothing\"" 2179ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 2189ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"LidCloseAction\": \"DoNothing\"," 2199ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"UserActivityScreenDimDelayScale\": 300" 2209ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch "}"; 2219ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 2229ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} // namespace 2239ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, Empty) { 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 226c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 227c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, ValidONC) { 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC( 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "{" 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"NetworkConfigurations\": [{" 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Type\": \"WiFi\"," 2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Name\": \"some name\"," 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"WiFi\": {" 2412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Security\": \"WEP-PSK\"," 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"SSID\": \"ssid\"," 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Passphrase\": \"pass\"," 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }" 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }]" 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "}"); 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 252effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(kTestONC), 2537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 254c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 255c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 257c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 266effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::FundamentalValue(false), 2677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 268c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 269c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 271c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC("I'm not proper JSON!"); 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 281effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(kTestONC), 2827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 283c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 284c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 286c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC( 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "{" 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"NetworkConfigurations\": [{" 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Type\": \"WiFi\"," 2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Name\": \"some name\"," 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"WiFi\": {" 2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Security\": \"WEP-PSK\"," 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"SSID\": \"ssid\"," 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Passphrase\": \"pass\"," 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }" 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }]" 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "}"); 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 309effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::StringValue(kTestONC), 3107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 311c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 312c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 314c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) handler->PrepareForDisplaying(&policy_map); 3155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* sanitized = 3165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) policy_map.GetValue(key::kOpenNetworkConfiguration); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(sanitized); 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string sanitized_onc; 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(sanitized_onc.empty()); 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(PinnedLauncherAppsPolicyHandler, PrefTranslation) { 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ListValue list; 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrefValueMap prefs; 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ListValue expected_pinned_apps; 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Value* value = NULL; 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PinnedLauncherAppsPolicyHandler handler; 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, 3337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch POLICY_SCOPE_USER, list.DeepCopy(), NULL); 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handler.ApplyPolicySettings(policy_map, &prefs); 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::StringValue entry1("abcdefghijklmnopabcdefghijklmnop"); 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::DictionaryValue* entry1_dict = new base::DictionaryValue(); 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) entry1_dict->Set(ash::kPinnedAppsPrefAppIDPath, entry1.DeepCopy()); 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) expected_pinned_apps.Append(entry1_dict); 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list.Append(entry1.DeepCopy()); 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, 3447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch POLICY_SCOPE_USER, list.DeepCopy(), NULL); 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefs.Clear(); 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handler.ApplyPolicySettings(policy_map, &prefs); 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 351effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST_F(LoginScreenPowerManagementPolicyHandlerTest, Empty) { 3529ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 353effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); 3549ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3559ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 3569ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3579ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3589ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 359effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST_F(LoginScreenPowerManagementPolicyHandlerTest, ValidPolicy) { 3609ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3619ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch policy_map.Set(key::kDeviceLoginScreenPowerManagement, 3629ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_LEVEL_MANDATORY, 3639ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_SCOPE_USER, 364effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch base::JSONReader::Read(kLoginScreenPowerManagementPolicy), 3659ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch NULL); 366effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); 3679ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 368effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 369effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3709ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3719ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 372effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochTEST_F(LoginScreenPowerManagementPolicyHandlerTest, WrongType) { 3739ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3749ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch policy_map.Set(key::kDeviceLoginScreenPowerManagement, 3759ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_LEVEL_MANDATORY, 3769ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_SCOPE_USER, 377effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch new base::FundamentalValue(false), 3789ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch NULL); 379effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch LoginScreenPowerManagementPolicyHandler handler(chrome_schema_); 3809ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3819ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 3829ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE( 3839ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3849ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3859ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace policy 387