Commit 31b6f510 authored by Nohemi Fernandez's avatar Nohemi Fernandez Committed by Chromium LUCI CQ

[iOS] Define static initializer for MockSyncSetupService.

Because MockSyncSetupService is defined within the iOS libraries we can
define a static initializer that constructs a KeyedService using the
BrowserState. This will reduce the overhead for adding Sync services to
tests in iOS.

Bug: N/A
Change-Id: Ia142c70ebc605029c8677285f994151a1e1bc961
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2575029Reviewed-by: default avatarSylvain Defresne <sdefresne@chromium.org>
Commit-Queue: Nohemi Fernandez <fernandex@chromium.org>
Cr-Commit-Position: refs/heads/master@{#835184}
parent 53b1cd70
......@@ -57,14 +57,6 @@ std::unique_ptr<KeyedService> BuildMockSyncService(web::BrowserState* context) {
return std::make_unique<syncer::MockSyncService>();
}
std::unique_ptr<KeyedService> BuildMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
CoreAccountId GetAccountId(ChromeIdentity* identity) {
return CoreAccountId(base::SysNSStringToUTF8([identity gaiaID]));
}
......@@ -80,8 +72,9 @@ class AuthenticationServiceTest : public PlatformTest {
builder.SetPrefService(CreatePrefService());
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&BuildMockSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&BuildMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
builder.AddTestingFactory(
AuthenticationServiceFactory::GetInstance(),
AuthenticationServiceFactory::GetDefaultFactory());
......
......@@ -2,7 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ios/chrome/browser/sync/sync_setup_service_mock.h"
#import "ios/chrome/browser/sync/sync_setup_service_mock.h"
#import "ios/chrome/browser/browser_state/chrome_browser_state.h"
#import "ios/chrome/browser/sync/profile_sync_service_factory.h"
#import "ios/web/public/browser_state.h"
SyncSetupServiceMock::SyncSetupServiceMock(syncer::SyncService* sync_service)
: SyncSetupService(sync_service) {}
......@@ -13,3 +17,11 @@ SyncSetupServiceMock::~SyncSetupServiceMock() {
bool SyncSetupServiceMock::SyncSetupServiceHasFinishedInitialSetup() {
return SyncSetupService::HasFinishedInitialSetup();
}
std::unique_ptr<KeyedService> SyncSetupServiceMock::CreateKeyedService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
......@@ -9,9 +9,16 @@
#include "testing/gmock/include/gmock/gmock.h"
namespace web {
class BrowserState;
}
// Mock for the class that allows configuring sync on iOS.
class SyncSetupServiceMock : public SyncSetupService {
public:
static std::unique_ptr<KeyedService> CreateKeyedService(
web::BrowserState* browser_state);
SyncSetupServiceMock(syncer::SyncService* sync_service);
~SyncSetupServiceMock();
MOCK_METHOD(bool, IsSyncEnabled, (), (const override));
......
......@@ -39,14 +39,6 @@ std::unique_ptr<KeyedService> CreateMockSyncService(
web::BrowserState* context) {
return std::make_unique<MockSyncService>();
}
std::unique_ptr<KeyedService> CreateMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
} // namespace
class AdvancedSettingsSigninMediatorTest : public PlatformTest {
......@@ -69,8 +61,9 @@ class AdvancedSettingsSigninMediatorTest : public PlatformTest {
&AuthenticationServiceFake::CreateAuthenticationService));
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
browser_state_ = builder.Build();
mediator_ = [[AdvancedSettingsSigninMediator alloc]
......
......@@ -43,14 +43,6 @@ std::unique_ptr<KeyedService> CreateMockSyncService(
return std::make_unique<syncer::MockSyncService>();
}
std::unique_ptr<KeyedService> CreateMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
std::unique_ptr<KeyedService> CreateFakeConsentAuditor(
web::BrowserState* context) {
return std::make_unique<consent_auditor::FakeConsentAuditor>();
......@@ -77,8 +69,9 @@ class UserSigninMediatorTest : public PlatformTest {
base::BindRepeating(&CreateFakeConsentAuditor));
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
browser_state_ = builder.Build();
SetAuthenticationFlow();
......
......@@ -47,16 +47,6 @@ using testing::Return;
namespace {
std::unique_ptr<KeyedService> CreateSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* chrome_browser_state =
ChromeBrowserState::FromBrowserState(context);
syncer::SyncService* sync_service =
ProfileSyncServiceFactory::GetForBrowserState(chrome_browser_state);
return std::make_unique<testing::NiceMock<SyncSetupServiceMock>>(
sync_service);
}
class SessionSyncServiceMockForRecentTabsTableCoordinator
: public sync_sessions::SessionSyncService {
public:
......@@ -130,7 +120,7 @@ class RecentTabsTableCoordinatorTest : public BlockCleanupTest {
TestChromeBrowserState::Builder test_cbs_builder;
test_cbs_builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&CreateSyncSetupService));
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
test_cbs_builder.AddTestingFactory(
SessionSyncServiceFactory::GetInstance(),
base::BindRepeating(
......
......@@ -45,14 +45,6 @@ std::unique_ptr<KeyedService> CreateTestSyncService(
return std::make_unique<syncer::TestSyncService>();
}
std::unique_ptr<KeyedService> BuildMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
class ClearBrowsingDataManagerTest : public PlatformTest {
public:
ClearBrowsingDataManagerTest() {
......@@ -66,8 +58,9 @@ class ClearBrowsingDataManagerTest : public PlatformTest {
TestChromeBrowserState::Builder builder;
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&CreateTestSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&BuildMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
builder.AddTestingFactory(
AuthenticationServiceFactory::GetInstance(),
AuthenticationServiceFactory::GetDefaultFactory());
......
......@@ -43,14 +43,6 @@ std::unique_ptr<KeyedService> CreateMockSyncService(
return std::make_unique<NiceMock<syncer::MockSyncService>>();
}
std::unique_ptr<KeyedService> CreateMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
PrefService* SetPrefService() {
TestingPrefServiceSimple* prefs = new TestingPrefServiceSimple();
PrefRegistrySimple* registry = prefs->registry();
......@@ -68,8 +60,9 @@ class ManageSyncSettingsMediatorTest : public PlatformTest {
TestChromeBrowserState::Builder builder;
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
browser_state_ = builder.Build();
consumer_ = [[ManageSyncSettingsTableViewController alloc]
......
......@@ -54,16 +54,6 @@ scoped_refptr<TestPasswordStore> BuildTestPasswordStore(
web::BrowserState, TestPasswordStore>))
.get()));
}
// Sets test sync setup service and returns pointer to it.
std::unique_ptr<KeyedService> BuildMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
} // namespace
@interface FakePasswordsConsumer : NSObject <PasswordsConsumer>
......@@ -94,9 +84,9 @@ class PasswordsMediatorTest : public BlockCleanupTest {
base::BindRepeating(
&AuthenticationServiceFake::CreateAuthenticationService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&BuildMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
browser_state_ = builder.Build();
auth_service_ = static_cast<AuthenticationServiceFake*>(
AuthenticationServiceFactory::GetInstance()->GetForBrowserState(
......
......@@ -107,15 +107,6 @@ using password_manager::CompromiseType;
using password_manager::TestPasswordStore;
using l10n_util::GetNSString;
// Sets test sync setup service and returns pointer to it.
std::unique_ptr<KeyedService> BuildMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
// Sets test password store and returns pointer to it.
scoped_refptr<TestPasswordStore> BuildTestPasswordStore(
ChromeBrowserState* _browserState) {
......@@ -148,7 +139,7 @@ class SafetyCheckMediatorTest : public PlatformTest {
&AuthenticationServiceFake::CreateAuthenticationService));
test_cbs_builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&BuildMockSyncSetupService));
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
browser_state_ = test_cbs_builder.Build();
auth_service_ = static_cast<AuthenticationServiceFake*>(
AuthenticationServiceFactory::GetInstance()->GetForBrowserState(
......
......@@ -43,14 +43,6 @@ std::unique_ptr<KeyedService> CreateMockSyncService(
web::BrowserState* context) {
return std::make_unique<NiceMock<syncer::MockSyncService>>();
}
std::unique_ptr<KeyedService> CreateMockSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* browser_state =
ChromeBrowserState::FromBrowserState(context);
return std::make_unique<SyncSetupServiceMock>(
ProfileSyncServiceFactory::GetForBrowserState(browser_state));
}
} // namespace
class SettingsTableViewControllerTest : public ChromeTableViewControllerTest {
......@@ -61,8 +53,9 @@ class SettingsTableViewControllerTest : public ChromeTableViewControllerTest {
TestChromeBrowserState::Builder builder;
builder.AddTestingFactory(ProfileSyncServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncService));
builder.AddTestingFactory(SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&CreateMockSyncSetupService));
builder.AddTestingFactory(
SyncSetupServiceFactory::GetInstance(),
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService));
builder.AddTestingFactory(
ios::TemplateURLServiceFactory::GetInstance(),
ios::TemplateURLServiceFactory::GetDefaultFactory());
......
......@@ -44,15 +44,6 @@ class SyncEncryptionPassphraseTableViewControllerTest
public:
SyncEncryptionPassphraseTableViewControllerTest() {}
static std::unique_ptr<KeyedService> CreateSyncSetupService(
web::BrowserState* context) {
ChromeBrowserState* chrome_browser_state =
ChromeBrowserState::FromBrowserState(context);
syncer::SyncService* sync_service =
ProfileSyncServiceFactory::GetForBrowserState(chrome_browser_state);
return std::make_unique<SyncSetupServiceMock>(sync_service);
}
void TurnSyncPassphraseErrorOn() {
ON_CALL(*mock_sync_setup_service_, GetSyncServiceState())
.WillByDefault(Return(SyncSetupService::kSyncServiceNeedsPassphrase));
......@@ -74,7 +65,7 @@ class SyncEncryptionPassphraseTableViewControllerTest
mock_sync_setup_service_ = static_cast<NiceMock<SyncSetupServiceMock>*>(
SyncSetupServiceFactory::GetInstance()->SetTestingFactoryAndUse(
chrome_browser_state_.get(),
base::BindRepeating(&CreateSyncSetupService)));
base::BindRepeating(&SyncSetupServiceMock::CreateKeyedService)));
// The other mocked functions of SyncSetupServiceMock return bools, so they
// will by default return false. GetSyncServiceState(), however, returns an
// enum, and thus always needs its default value set.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment