summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/sync_driver.gypi2
-rw-r--r--components/sync_driver/DEPS1
-rw-r--r--components/sync_driver/fake_sync_service.cc121
-rw-r--r--components/sync_driver/fake_sync_service.h60
-rw-r--r--ios/ios_tests.gyp9
-rw-r--r--ios/public/test/DEPS5
-rw-r--r--ios/public/test/fake_sync_service_factory.cc61
-rw-r--r--ios/public/test/fake_sync_service_factory.h42
-rw-r--r--ios/public/test/test_chrome_browser_provider.h2
-rw-r--r--ios/public/test/test_chrome_browser_provider.mm8
-rw-r--r--ios/public/test/test_keyed_service_provider.cc29
-rw-r--r--ios/public/test/test_keyed_service_provider.h29
12 files changed, 368 insertions, 1 deletions
diff --git a/components/sync_driver.gypi b/components/sync_driver.gypi
index d21d558..b26789e 100644
--- a/components/sync_driver.gypi
+++ b/components/sync_driver.gypi
@@ -105,6 +105,8 @@
'sync_driver/fake_data_type_controller.h',
'sync_driver/fake_generic_change_processor.cc',
'sync_driver/fake_generic_change_processor.h',
+ 'sync_driver/fake_sync_service.cc',
+ 'sync_driver/fake_sync_service.h',
'sync_driver/local_device_info_provider_mock.cc',
'sync_driver/local_device_info_provider_mock.h',
'sync_driver/model_associator_mock.cc',
diff --git a/components/sync_driver/DEPS b/components/sync_driver/DEPS
index 409d433..c0baa83 100644
--- a/components/sync_driver/DEPS
+++ b/components/sync_driver/DEPS
@@ -1,5 +1,6 @@
include_rules = [
"+components/os_crypt",
"+components/pref_registry",
+ "+google_apis",
"+sync",
]
diff --git a/components/sync_driver/fake_sync_service.cc b/components/sync_driver/fake_sync_service.cc
new file mode 100644
index 0000000..81aeed6
--- /dev/null
+++ b/components/sync_driver/fake_sync_service.cc
@@ -0,0 +1,121 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/sync_driver/fake_sync_service.h"
+
+namespace sync_driver {
+
+FakeSyncService::FakeSyncService() : error_(GoogleServiceAuthError::NONE) {
+}
+
+FakeSyncService::~FakeSyncService() {
+}
+
+bool FakeSyncService::HasSyncSetupCompleted() const {
+ return false;
+}
+
+bool FakeSyncService::IsSyncActive() const {
+ return false;
+}
+
+syncer::ModelTypeSet FakeSyncService::GetActiveDataTypes() const {
+ return syncer::ModelTypeSet();
+}
+
+void FakeSyncService::AddObserver(sync_driver::SyncServiceObserver* observer) {
+}
+
+void FakeSyncService::RemoveObserver(
+ sync_driver::SyncServiceObserver* observer) {
+}
+
+bool FakeSyncService::HasObserver(
+ const sync_driver::SyncServiceObserver* observer) const {
+ return false;
+}
+
+bool FakeSyncService::IsSyncEnabledAndLoggedIn() {
+ return false;
+}
+
+void FakeSyncService::DisableForUser() {
+}
+
+void FakeSyncService::RequestStop() {
+}
+
+void FakeSyncService::RequestStart() {
+}
+
+syncer::ModelTypeSet FakeSyncService::GetPreferredDataTypes() const {
+ return syncer::ModelTypeSet();
+}
+
+void FakeSyncService::OnUserChoseDatatypes(bool sync_everything,
+ syncer::ModelTypeSet chosen_types) {
+}
+
+void FakeSyncService::SetSyncSetupCompleted() {
+}
+
+bool FakeSyncService::FirstSetupInProgress() const {
+ return false;
+}
+
+void FakeSyncService::SetSetupInProgress(bool setup_in_progress) {
+}
+
+bool FakeSyncService::setup_in_progress() const {
+ return false;
+}
+
+bool FakeSyncService::ConfigurationDone() const {
+ return false;
+}
+
+const GoogleServiceAuthError& FakeSyncService::GetAuthError() const {
+ return error_;
+}
+
+bool FakeSyncService::HasUnrecoverableError() const {
+ return false;
+}
+
+bool FakeSyncService::backend_initialized() const {
+ return false;
+}
+
+bool FakeSyncService::IsPassphraseRequiredForDecryption() const {
+ return false;
+}
+
+base::Time FakeSyncService::GetExplicitPassphraseTime() const {
+ return base::Time();
+}
+
+bool FakeSyncService::IsUsingSecondaryPassphrase() const {
+ return false;
+}
+
+void FakeSyncService::EnableEncryptEverything() {
+}
+
+void FakeSyncService::SetEncryptionPassphrase(const std::string& passphrase,
+ PassphraseType type) {
+}
+
+bool FakeSyncService::SetDecryptionPassphrase(const std::string& passphrase) {
+ return false;
+}
+
+bool FakeSyncService::IsPassphraseRequired() const {
+ return false;
+}
+
+syncer::ModelTypeSet FakeSyncService::GetEncryptedDataTypes() const {
+ return syncer::ModelTypeSet();
+}
+
+} // namespace sync_driver
diff --git a/components/sync_driver/fake_sync_service.h b/components/sync_driver/fake_sync_service.h
new file mode 100644
index 0000000..951d539
--- /dev/null
+++ b/components/sync_driver/fake_sync_service.h
@@ -0,0 +1,60 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_SYNC_DRIVER_FAKE_SYNC_SERVICE_H_
+#define COMPONENTS_SYNC_DRIVER_FAKE_SYNC_SERVICE_H_
+
+#include "components/sync_driver/sync_service.h"
+#include "google_apis/gaia/google_service_auth_error.h"
+
+namespace sync_driver {
+
+// Fake implementation of sync_driver::SyncService, used for testing.
+class FakeSyncService : public sync_driver::SyncService {
+ public:
+ FakeSyncService();
+ ~FakeSyncService() override;
+
+ private:
+ // sync_driver::SyncService:
+ bool HasSyncSetupCompleted() const override;
+ bool IsSyncActive() const override;
+ syncer::ModelTypeSet GetActiveDataTypes() const override;
+ void AddObserver(sync_driver::SyncServiceObserver* observer) override;
+ void RemoveObserver(sync_driver::SyncServiceObserver* observer) override;
+ bool HasObserver(
+ const sync_driver::SyncServiceObserver* observer) const override;
+ bool IsSyncEnabledAndLoggedIn() override;
+ void DisableForUser() override;
+ void RequestStop() override;
+ void RequestStart() override;
+ syncer::ModelTypeSet GetPreferredDataTypes() const override;
+ void OnUserChoseDatatypes(bool sync_everything,
+ syncer::ModelTypeSet chosen_types) override;
+ void SetSyncSetupCompleted() override;
+ bool FirstSetupInProgress() const override;
+ void SetSetupInProgress(bool setup_in_progress) override;
+ bool setup_in_progress() const override;
+ bool ConfigurationDone() const override;
+ const GoogleServiceAuthError& GetAuthError() const override;
+ bool HasUnrecoverableError() const override;
+ bool backend_initialized() const override;
+ bool IsPassphraseRequiredForDecryption() const override;
+ base::Time GetExplicitPassphraseTime() const override;
+ bool IsUsingSecondaryPassphrase() const override;
+ void EnableEncryptEverything() override;
+ void SetEncryptionPassphrase(const std::string& passphrase,
+ PassphraseType type) override;
+ bool SetDecryptionPassphrase(const std::string& passphrase) override;
+
+ // sync_driver::DataTypeEncryptionHandler:
+ bool IsPassphraseRequired() const override;
+ syncer::ModelTypeSet GetEncryptedDataTypes() const override;
+
+ GoogleServiceAuthError error_;
+};
+
+} // namespace sync_driver
+
+#endif // COMPONENTS_SYNC_DRIVER_FAKE_SYNC_SERVICE_H_
diff --git a/ios/ios_tests.gyp b/ios/ios_tests.gyp
index e253aa4..7518951 100644
--- a/ios/ios_tests.gyp
+++ b/ios/ios_tests.gyp
@@ -10,19 +10,28 @@
'target_name': 'test_support_ios',
'type': 'static_library',
'sources': [
+ # TODO(droger): Move most of these files to
+ # //ios/chrome/ios_chrome_tests.gyp, see http://crbug.com/437333
'public/test/fake_profile_oauth2_token_service_ios_provider.h',
'public/test/fake_profile_oauth2_token_service_ios_provider.mm',
'public/test/fake_string_provider.cc',
'public/test/fake_string_provider.h',
+ 'public/test/fake_sync_service_factory.cc',
+ 'public/test/fake_sync_service_factory.h',
'public/test/test_chrome_browser_provider.h',
'public/test/test_chrome_browser_provider.mm',
'public/test/test_chrome_provider_initializer.cc',
'public/test/test_chrome_provider_initializer.h',
+ 'public/test/test_keyed_service_provider.cc',
+ 'public/test/test_keyed_service_provider.h',
'public/test/test_updatable_resource_provider.h',
'public/test/test_updatable_resource_provider.mm',
],
'dependencies': [
'../base/base.gyp:base',
+ '../components/components.gyp:keyed_service_core',
+ '../components/components.gyp:keyed_service_ios',
+ '../components/components.gyp:sync_driver_test_support',
'../testing/gtest.gyp:gtest',
'provider/ios_provider_chrome.gyp:ios_provider_chrome_browser',
],
diff --git a/ios/public/test/DEPS b/ios/public/test/DEPS
new file mode 100644
index 0000000..3672da2
--- /dev/null
+++ b/ios/public/test/DEPS
@@ -0,0 +1,5 @@
+include_rules = [
+ '+components/keyed_service/core',
+ '+components/keyed_service/ios',
+ '+components/sync_driver',
+]
diff --git a/ios/public/test/fake_sync_service_factory.cc b/ios/public/test/fake_sync_service_factory.cc
new file mode 100644
index 0000000..1f85f8e
--- /dev/null
+++ b/ios/public/test/fake_sync_service_factory.cc
@@ -0,0 +1,61 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/public/test/fake_sync_service_factory.h"
+
+#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
+#include "components/keyed_service/core/keyed_service.h"
+#include "components/keyed_service/ios/browser_state_dependency_manager.h"
+#include "components/sync_driver/fake_sync_service.h"
+
+namespace {
+
+class KeyedFakeSyncService : public KeyedService {
+ public:
+ KeyedFakeSyncService(sync_driver::FakeSyncService* service)
+ : fake_sync_service_(service) {
+ DCHECK(fake_sync_service_);
+ }
+
+ sync_driver::FakeSyncService* fake_sync_service() {
+ return fake_sync_service_.get();
+ }
+
+ private:
+ scoped_ptr<sync_driver::FakeSyncService> fake_sync_service_;
+};
+
+} // namespace
+
+namespace ios {
+
+// static
+FakeSyncServiceFactory* FakeSyncServiceFactory::GetInstance() {
+ return Singleton<FakeSyncServiceFactory>::get();
+}
+
+// static
+sync_driver::FakeSyncService* FakeSyncServiceFactory::GetForBrowserState(
+ web::BrowserState* browser_state) {
+ return static_cast<KeyedFakeSyncService*>(
+ FakeSyncServiceFactory::GetInstance()->GetServiceForBrowserState(
+ browser_state, true))->fake_sync_service();
+}
+
+KeyedService* FakeSyncServiceFactory::BuildServiceInstanceFor(
+ web::BrowserState* context) const {
+ return new KeyedFakeSyncService(new sync_driver::FakeSyncService);
+}
+
+FakeSyncServiceFactory::FakeSyncServiceFactory()
+ : BrowserStateKeyedServiceFactory(
+ "FakeSyncService",
+ BrowserStateDependencyManager::GetInstance()) {
+}
+
+FakeSyncServiceFactory::~FakeSyncServiceFactory() {
+}
+
+} // namespace ios
diff --git a/ios/public/test/fake_sync_service_factory.h b/ios/public/test/fake_sync_service_factory.h
new file mode 100644
index 0000000..2ab0d8d
--- /dev/null
+++ b/ios/public/test/fake_sync_service_factory.h
@@ -0,0 +1,42 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_PUBLIC_TEST_FAKE_SYNC_SERVICE_FACTORY_H_
+#define IOS_PUBLIC_TEST_FAKE_SYNC_SERVICE_FACTORY_H_
+
+#include "base/macros.h"
+#include "base/memory/singleton.h"
+#include "components/keyed_service/ios/browser_state_keyed_service_factory.h"
+
+namespace sync_driver {
+class FakeSyncService;
+}
+
+namespace ios {
+
+class FakeSyncServiceFactory : public BrowserStateKeyedServiceFactory {
+ public:
+ // Returns the singleton FakeSyncServiceFactory instance.
+ static FakeSyncServiceFactory* GetInstance();
+
+ // Returns the FakeSyncService associated to |browser_state|.
+ static sync_driver::FakeSyncService* GetForBrowserState(
+ web::BrowserState* browser_state);
+
+ private:
+ friend struct DefaultSingletonTraits<FakeSyncServiceFactory>;
+
+ // BrowserStateKeyedServiceFactory implementation:
+ KeyedService* BuildServiceInstanceFor(
+ web::BrowserState* context) const override;
+
+ FakeSyncServiceFactory();
+ ~FakeSyncServiceFactory() override;
+
+ DISALLOW_COPY_AND_ASSIGN(FakeSyncServiceFactory);
+};
+
+} // namespace ios
+
+#endif // IOS_PUBLIC_TEST_FAKE_SYNC_SERVICE_FACTORY_H_
diff --git a/ios/public/test/test_chrome_browser_provider.h b/ios/public/test/test_chrome_browser_provider.h
index 698fa65..8ab210a 100644
--- a/ios/public/test/test_chrome_browser_provider.h
+++ b/ios/public/test/test_chrome_browser_provider.h
@@ -24,9 +24,11 @@ class TestChromeBrowserProvider : public ChromeBrowserProvider {
// ChromeBrowserProvider:
StringProvider* GetStringProvider() override;
const char* GetChromeUIScheme() override;
+ KeyedServiceProvider* GetKeyedServiceProvider() override;
private:
scoped_ptr<FakeStringProvider> string_provider_;
+ scoped_ptr<KeyedServiceProvider> test_keyed_service_provider_;
DISALLOW_COPY_AND_ASSIGN(TestChromeBrowserProvider);
};
diff --git a/ios/public/test/test_chrome_browser_provider.mm b/ios/public/test/test_chrome_browser_provider.mm
index afcf24c..df12eaa 100644
--- a/ios/public/test/test_chrome_browser_provider.mm
+++ b/ios/public/test/test_chrome_browser_provider.mm
@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "ios/public/test/fake_string_provider.h"
+#import "ios/public/test/test_keyed_service_provider.h"
namespace {
const char kUIScheme[] = "uischeme";
@@ -14,7 +15,8 @@ const char kUIScheme[] = "uischeme";
namespace ios {
TestChromeBrowserProvider::TestChromeBrowserProvider()
- : string_provider_(new FakeStringProvider) {
+ : string_provider_(new FakeStringProvider),
+ test_keyed_service_provider_(new TestKeyedServiceProvider) {
}
TestChromeBrowserProvider::~TestChromeBrowserProvider() {
@@ -31,6 +33,10 @@ StringProvider* TestChromeBrowserProvider::GetStringProvider() {
return string_provider_.get();
}
+KeyedServiceProvider* TestChromeBrowserProvider::GetKeyedServiceProvider() {
+ return test_keyed_service_provider_.get();
+}
+
const char* TestChromeBrowserProvider::GetChromeUIScheme() {
return kUIScheme;
}
diff --git a/ios/public/test/test_keyed_service_provider.cc b/ios/public/test/test_keyed_service_provider.cc
new file mode 100644
index 0000000..053d47e
--- /dev/null
+++ b/ios/public/test/test_keyed_service_provider.cc
@@ -0,0 +1,29 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ios/public/test/test_keyed_service_provider.h"
+
+#include "components/sync_driver/fake_sync_service.h"
+#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/public/test/fake_sync_service_factory.h"
+
+namespace ios {
+
+TestKeyedServiceProvider::TestKeyedServiceProvider() {
+}
+
+TestKeyedServiceProvider::~TestKeyedServiceProvider() {
+}
+
+KeyedServiceBaseFactory* TestKeyedServiceProvider::GetSyncServiceFactory() {
+ return FakeSyncServiceFactory::GetInstance();
+}
+
+sync_driver::SyncService*
+TestKeyedServiceProvider::GetSyncServiceForBrowserState(
+ ChromeBrowserState* browser_state) {
+ return FakeSyncServiceFactory::GetForBrowserState(browser_state);
+}
+
+} // namespace ios
diff --git a/ios/public/test/test_keyed_service_provider.h b/ios/public/test/test_keyed_service_provider.h
new file mode 100644
index 0000000..b2867ec
--- /dev/null
+++ b/ios/public/test/test_keyed_service_provider.h
@@ -0,0 +1,29 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef IOS_PUBLIC_TEST_TEST_KEYED_SERVICE_PROVIDER_H_
+#define IOS_PUBLIC_TEST_TEST_KEYED_SERVICE_PROVIDER_H_
+
+#include "base/macros.h"
+#include "ios/public/provider/chrome/browser/keyed_service_provider.h"
+
+namespace ios {
+
+class TestKeyedServiceProvider : public KeyedServiceProvider {
+ public:
+ TestKeyedServiceProvider();
+ ~TestKeyedServiceProvider() override;
+
+ // KeyedServiceProvider implementation:
+ KeyedServiceBaseFactory* GetSyncServiceFactory() override;
+ sync_driver::SyncService* GetSyncServiceForBrowserState(
+ ChromeBrowserState* browser_state) override;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TestKeyedServiceProvider);
+};
+
+} // namespace ios
+
+#endif // IOS_PUBLIC_TEST_TEST_KEYED_SERVICE_PROVIDER_H_