configuration_policy_handler_chromeos_unittest.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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" 8a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/prefs/pref_value_map.h" 101e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)#include "base/values.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/ash/chrome_launcher_prefs.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/common/pref_names.h" 13a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "components/policy/core/browser/policy_error_map.h" 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/external_data_fetcher.h" 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/policy_map.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "policy/policy_constants.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace policy { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 219ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochnamespace { 229ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)// Test cases for the screen magnifier type policy setting. 241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)class ScreenMagnifierPolicyHandlerTest : public testing::Test { 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) protected: 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PolicyMap policy_; 271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) PrefValueMap prefs_; 281e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ScreenMagnifierPolicyHandler handler_; 291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)}; 301e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 311e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Default) { 321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_FALSE(prefs_.GetValue(prefs::kScreenMagnifierEnabled, NULL)); 341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_FALSE(prefs_.GetValue(prefs::kScreenMagnifierType, NULL)); 351e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 361e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 371e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Disabled) { 381e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy_.Set(key::kScreenMagnifierType, 391e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 401e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 411e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) base::Value::CreateIntegerValue(0), 421e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* enabled = NULL; 461e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kScreenMagnifierEnabled, &enabled)); 471e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(enabled); 481e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(false).Equals(enabled)); 491e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 501e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* type = NULL; 511e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kScreenMagnifierType, &type)); 521e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(type); 531e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(0).Equals(type)); 541e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 561e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)TEST_F(ScreenMagnifierPolicyHandlerTest, Enabled) { 571e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) policy_.Set(key::kScreenMagnifierType, 581e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 591e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) POLICY_SCOPE_USER, 601e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) base::Value::CreateIntegerValue(1), 611e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) NULL); 621e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) handler_.ApplyPolicySettings(policy_, &prefs_); 631e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 641e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* enabled = NULL; 651e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kScreenMagnifierEnabled, &enabled)); 661e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(enabled); 671e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(true).Equals(enabled)); 681e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 691e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const base::Value* type = NULL; 701e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(prefs_.GetValue(prefs::kScreenMagnifierType, &type)); 711e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) ASSERT_TRUE(type); 721e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) EXPECT_TRUE(base::FundamentalValue(1).Equals(type)); 731e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)} 741e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 75a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, Empty) { 76a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 77a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) 78a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(PolicyMap(), &errors)); 79a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); 80a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 81a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 82a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, WrongType) { 83a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 84a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 85a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 86a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 87a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) new base::FundamentalValue(false), 88a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 89a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 90a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 91a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 92a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 93a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 94a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 95a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, MissingURL) { 96a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 97a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234567890123456789012345678901234567890"); 98a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 99a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 100a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 101a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 102a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 103a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 104a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 105a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 107a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 108a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 109a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 110a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, InvalidURL) { 111a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 112a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://"); 113a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234567890123456789012345678901234567890"); 114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 115a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 116a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 117a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 118a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 120a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 121a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 122a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 123a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 124a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 125a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 126a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, MissingHash) { 127a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 129a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 130a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 131a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 132a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 133a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 134a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 135a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 136a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 137a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 138a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 139a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 140a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 141a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, InvalidHash) { 142a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 143a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 144a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("hash", "1234"); 145a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 146a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 147a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 148a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 149a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 150a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 151a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 152a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(ExternalDataPolicyHandler(key::kUserAvatarImage) 153a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 154a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kUserAvatarImage).empty()); 155a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 156a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 157a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)TEST(ExternalDataPolicyHandlerTest, Valid) { 158a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) scoped_ptr<base::DictionaryValue> dict(new base::DictionaryValue); 159a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict->SetString("url", "http://localhost/"); 1605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) dict->SetString( 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "hash", 1625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) "1234567890123456789012345678901234567890123456789012345678901234"); 163a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyMap policy_map; 164a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) policy_map.Set(key::kUserAvatarImage, 165a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 166a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) POLICY_SCOPE_USER, 167a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) dict.release(), 168a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) NULL); 169a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PolicyErrorMap errors; 170a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(ExternalDataPolicyHandler(key::kUserAvatarImage) 171a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) .CheckPolicySettings(policy_map, &errors)); 172a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kUserAvatarImage).empty()); 173a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 174a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 1759ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochconst char kLoginScreenPowerManagementPolicy[] = 1769ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch "{" 1779ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"AC\": {" 1789ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Delays\": {" 1799ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenDim\": 5000," 1809ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenOff\": 7000," 1819ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Idle\": 9000" 1829ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 1839ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"IdleAction\": \"DoNothing\"" 1849ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 1859ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Battery\": {" 1869ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Delays\": {" 1879ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenDim\": 1000," 1889ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"ScreenOff\": 3000," 1899ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"Idle\": 4000" 1909ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 1919ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"IdleAction\": \"DoNothing\"" 1929ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " }," 1939ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"LidCloseAction\": \"DoNothing\"," 1949ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch " \"UserActivityScreenDimDelayScale\": 300" 1959ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch "}"; 1969ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 1979ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} // namespace 1989ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, Empty) { 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, ValidONC) { 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC( 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "{" 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"NetworkConfigurations\": [{" 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Type\": \"WiFi\"," 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Name\": \"some name\"," 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"WiFi\": {" 2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Security\": \"WEP-PSK\"," 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"SSID\": \"ssid\"," 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Passphrase\": \"pass\"," 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }" 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }]" 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "}"); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 2275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateStringValue(kTestONC), 2287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 230c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 232c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(handler->CheckPolicySettings(policy_map, &errors)); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, WrongType) { 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 2415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateBooleanValue(false), 2427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, JSONParseError) { 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC("I'm not proper JSON!"); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 2565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateStringValue(kTestONC), 2577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 258c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 259c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 261c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_FALSE(handler->CheckPolicySettings(policy_map, &errors)); 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(errors.GetErrors(key::kOpenNetworkConfiguration).empty()); 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(NetworkConfigurationPolicyHandlerTest, Sanitization) { 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string kTestONC( 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "{" 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"NetworkConfigurations\": [{" 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"GUID\": \"{485d6076-dd44-6b6d-69787465725f5045}\"," 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Type\": \"WiFi\"," 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Name\": \"some name\"," 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"WiFi\": {" 2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) " \"Security\": \"WEP-PSK\"," 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"SSID\": \"ssid\"," 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " \"Passphrase\": \"pass\"," 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }" 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) " }]" 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) "}"); 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kOpenNetworkConfiguration, 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) POLICY_SCOPE_USER, 2845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateStringValue(kTestONC), 2857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NULL); 286c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<NetworkConfigurationPolicyHandler> handler( 287c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) NetworkConfigurationPolicyHandler::CreateForUserPolicy()); 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyErrorMap errors; 289c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) handler->PrepareForDisplaying(&policy_map); 2905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* sanitized = 2915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) policy_map.GetValue(key::kOpenNetworkConfiguration); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ASSERT_TRUE(sanitized); 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string sanitized_onc; 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(sanitized->GetAsString(&sanitized_onc)); 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_FALSE(sanitized_onc.empty()); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(std::string::npos, sanitized_onc.find("pass")); 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(PinnedLauncherAppsPolicyHandler, PrefTranslation) { 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ListValue list; 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PolicyMap policy_map; 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrefValueMap prefs; 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::ListValue expected_pinned_apps; 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::Value* value = NULL; 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PinnedLauncherAppsPolicyHandler handler; 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, 3087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch POLICY_SCOPE_USER, list.DeepCopy(), NULL); 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handler.ApplyPolicySettings(policy_map, &prefs); 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::StringValue entry1("abcdefghijklmnopabcdefghijklmnop"); 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::DictionaryValue* entry1_dict = new base::DictionaryValue(); 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) entry1_dict->Set(ash::kPinnedAppsPrefAppIDPath, entry1.DeepCopy()); 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) expected_pinned_apps.Append(entry1_dict); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) list.Append(entry1.DeepCopy()); 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) policy_map.Set(key::kPinnedLauncherApps, POLICY_LEVEL_MANDATORY, 3197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch POLICY_SCOPE_USER, list.DeepCopy(), NULL); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) prefs.Clear(); 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handler.ApplyPolicySettings(policy_map, &prefs); 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(prefs.GetValue(prefs::kPinnedLauncherApps, &value)); 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_TRUE(base::Value::Equals(&expected_pinned_apps, value)); 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3269ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochTEST(LoginScreenPowerManagementPolicyHandlerTest, Empty) { 3279ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3289ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch LoginScreenPowerManagementPolicyHandler handler; 3299ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3309ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 3319ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3329ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3339ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 3349ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochTEST(LoginScreenPowerManagementPolicyHandlerTest, ValidPolicy) { 3359ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) policy_map.Set( 3375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) key::kDeviceLoginScreenPowerManagement, 3385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) POLICY_LEVEL_MANDATORY, 3395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) POLICY_SCOPE_USER, 3405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateStringValue(kLoginScreenPowerManagementPolicy), 3415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) NULL); 3429ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch LoginScreenPowerManagementPolicyHandler handler; 3439ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3449ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors)); 3459ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_TRUE(errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3469ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3479ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 3489ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochTEST(LoginScreenPowerManagementPolicyHandlerTest, WrongType) { 3499ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3509ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch policy_map.Set(key::kDeviceLoginScreenPowerManagement, 3519ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_LEVEL_MANDATORY, 3529ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_SCOPE_USER, 3535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateBooleanValue(false), 3549ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch NULL); 3559ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch LoginScreenPowerManagementPolicyHandler handler; 3569ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3579ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 3589ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE( 3599ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3609ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3619ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 3629ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochTEST(LoginScreenPowerManagementPolicyHandlerTest, JSONParseError) { 3639ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch const std::string policy("I'm not proper JSON!"); 3649ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyMap policy_map; 3659ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch policy_map.Set(key::kDeviceLoginScreenPowerManagement, 3669ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_LEVEL_MANDATORY, 3679ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch POLICY_SCOPE_USER, 3685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::Value::CreateStringValue(policy), 3699ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch NULL); 3709ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch LoginScreenPowerManagementPolicyHandler handler; 3719ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch PolicyErrorMap errors; 3729ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors)); 3739ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch EXPECT_FALSE( 3749ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch errors.GetErrors(key::kDeviceLoginScreenPowerManagement).empty()); 3759ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 3769ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace policy 378