1// Copyright 2014 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/chromeos/login/users/scoped_user_manager_enabler.h"
6
7#include "components/user_manager/user_manager.h"
8
9namespace chromeos {
10
11ScopedUserManagerEnabler::ScopedUserManagerEnabler(
12    user_manager::UserManager* user_manager) {
13  if (user_manager::UserManager::GetForTesting())
14    user_manager::UserManager::GetForTesting()->Shutdown();
15
16  previous_user_manager_ =
17      user_manager::UserManager::SetForTesting(user_manager);
18}
19
20ScopedUserManagerEnabler::~ScopedUserManagerEnabler() {
21  // Shutdown and destroy current UserManager instance that we track.
22  user_manager::UserManager::Get()->Shutdown();
23  delete user_manager::UserManager::Get();
24  user_manager::UserManager::SetInstance(NULL);
25
26  user_manager::UserManager::SetForTesting(previous_user_manager_);
27}
28
29}  // namespace chromeos
30