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/sync/glue/local_device_info_provider_mock.h"
6
7namespace browser_sync {
8
9LocalDeviceInfoProviderMock::LocalDeviceInfoProviderMock()
10  : is_initialized_(false) {}
11
12LocalDeviceInfoProviderMock::LocalDeviceInfoProviderMock(
13    const std::string& guid,
14    const std::string& client_name,
15    const std::string& chrome_version,
16    const std::string& sync_user_agent,
17    const sync_pb::SyncEnums::DeviceType device_type,
18    const std::string& signin_scoped_device_id)
19  : is_initialized_(true) {
20  local_device_info_.reset(
21      new sync_driver::DeviceInfo(
22          guid,
23          client_name,
24          chrome_version,
25          sync_user_agent,
26          device_type,
27          signin_scoped_device_id));
28}
29
30LocalDeviceInfoProviderMock::~LocalDeviceInfoProviderMock() {}
31
32const sync_driver::DeviceInfo*
33LocalDeviceInfoProviderMock::GetLocalDeviceInfo() const {
34  return is_initialized_ ? local_device_info_.get() : NULL;
35}
36
37std::string LocalDeviceInfoProviderMock::GetLocalSyncCacheGUID() const {
38  return local_device_info_.get() ? local_device_info_->guid() : "";
39}
40
41void LocalDeviceInfoProviderMock::Initialize(
42    const std::string& cache_guid, const std::string& signin_scoped_device_id) {
43  // Ignored for the mock provider.
44}
45
46scoped_ptr<sync_driver::LocalDeviceInfoProvider::Subscription>
47LocalDeviceInfoProviderMock::RegisterOnInitializedCallback(
48    const base::Closure& callback) {
49  DCHECK(!is_initialized_);
50  return callback_list_.Add(callback);
51}
52
53void LocalDeviceInfoProviderMock::SetInitialized(bool is_initialized) {
54  is_initialized_ = is_initialized;
55  if (is_initialized_) {
56    callback_list_.Notify();
57  }
58}
59
60}  // namespace browser_sync
61
62