15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file. 45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include <string> 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "base/prefs/pref_service.h" 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_constants.h" 9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_pref_mapping_service.h" 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_pref_mapping_service_factory.h" 11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_shared_settings_service.h" 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "chrome/browser/supervised_user/supervised_user_shared_settings_service_factory.h" 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/common/pref_names.h" 145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/test/base/testing_profile.h" 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kFakeSupervisedUserId[] = "fakeID"; 185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class SupervisedUserPrefMappingServiceTest : public ::testing::Test { 205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) protected: 215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SupervisedUserPrefMappingServiceTest() { 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) profile_.GetPrefs()->SetString(prefs::kSupervisedUserId, 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) kFakeSupervisedUserId); 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) shared_settings_service_ = 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext( 265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) &profile_); 275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mapping_service_ = 285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SupervisedUserPrefMappingServiceFactory::GetForBrowserContext( 295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) &profile_); 305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual ~SupervisedUserPrefMappingServiceTest() {} 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // testing::Test overrides: 345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetUp() OVERRIDE { 355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mapping_service_->Init(); 365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void TearDown() OVERRIDE { 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) mapping_service_->Shutdown(); 405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) shared_settings_service_->Shutdown(); 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) } 425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) TestingProfile profile_; 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) SupervisedUserSharedSettingsService* shared_settings_service_; 455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) SupervisedUserPrefMappingService* mapping_service_; 465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}; 475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST_F(SupervisedUserPrefMappingServiceTest, CheckPrefUpdate) { 495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) EXPECT_TRUE(shared_settings_service_->GetValue( 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) kFakeSupervisedUserId, 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) supervised_users::kChromeAvatarIndex) == NULL); 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) profile_.GetPrefs()->SetInteger(prefs::kProfileAvatarIndex, 4); 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const base::Value* value = shared_settings_service_->GetValue( 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) kFakeSupervisedUserId, supervised_users::kChromeAvatarIndex); 555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int avatar_index; 565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) value->GetAsInteger(&avatar_index); 575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) EXPECT_EQ(avatar_index, 4); 585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST_F(SupervisedUserPrefMappingServiceTest, CheckSharedSettingUpdate) { 615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) EXPECT_EQ(profile_.GetPrefs()->GetInteger(prefs::kProfileAvatarIndex), -1); 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) shared_settings_service_->SetValue(kFakeSupervisedUserId, 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) supervised_users::kChromeAvatarIndex, 645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::FundamentalValue(1)); 65f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) mapping_service_->OnSharedSettingChanged( 66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) kFakeSupervisedUserId, 67f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) supervised_users::kChromeAvatarIndex); 685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) EXPECT_EQ(profile_.GetPrefs()->GetInteger(prefs::kProfileAvatarIndex), 1); 695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)} 70