Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(609)

Unified Diff: chrome/browser/ui/sync/one_click_signin_helper_unittest.cc

Issue 217883004: [Signin] Factor out a helper class to load a continue URL once Sync is configured. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: That didn't work. Oh well. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
diff --git a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
index 73dd4bbf1915b17cdd54bacb50794c3625f19bb3..ffb589f2e155f79d19e57f49a13739ae28a1ffe8 100644
--- a/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
+++ b/chrome/browser/ui/sync/one_click_signin_helper_unittest.cc
@@ -25,7 +25,6 @@
#include "chrome/browser/signin/signin_names_io_thread.h"
#include "chrome/browser/signin/signin_promo.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
-#include "chrome/browser/sync/profile_sync_service_mock.h"
#include "chrome/browser/sync/test_profile_sync_service.h"
#include "chrome/browser/ui/sync/one_click_signin_helper.h"
#include "chrome/browser/ui/webui/signin/login_ui_service.h"
@@ -47,6 +46,7 @@
#include "content/public/test/mock_render_process_host.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
@@ -160,39 +160,41 @@ public:
};
class OneClickTestProfileSyncService : public TestProfileSyncService {
- public:
- virtual ~OneClickTestProfileSyncService() {}
-
- // Helper routine to be used in conjunction with
- // BrowserContextKeyedServiceFactory::SetTestingFactory().
- static KeyedService* Build(content::BrowserContext* profile) {
- return new OneClickTestProfileSyncService(static_cast<Profile*>(profile));
- }
-
- // Need to control this for certain tests.
- virtual bool FirstSetupInProgress() const OVERRIDE {
- return first_setup_in_progress_;
- }
-
- // Controls return value of FirstSetupInProgress. Because some bits
- // of UI depend on that value, it's useful to control it separately
- // from the internal work and components that are triggered (such as
- // ReconfigureDataTypeManager) to facilitate unit tests.
- void set_first_setup_in_progress(bool in_progress) {
- first_setup_in_progress_ = in_progress;
- }
-
- private:
- explicit OneClickTestProfileSyncService(Profile* profile)
- : TestProfileSyncService(
- NULL,
- profile,
- SigninManagerFactory::GetForProfile(profile),
- ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
- browser_sync::MANUAL_START),
- first_setup_in_progress_(false) {}
-
- bool first_setup_in_progress_;
+ public:
+ virtual ~OneClickTestProfileSyncService() {}
+
+ // Helper routine to be used in conjunction with
+ // BrowserContextKeyedServiceFactory::SetTestingFactory().
+ static KeyedService* Build(content::BrowserContext* profile) {
+ return new OneClickTestProfileSyncService(static_cast<Profile*>(profile));
+ }
+
+ // Need to control this for certain tests.
+ virtual bool FirstSetupInProgress() const OVERRIDE {
+ return first_setup_in_progress_;
+ }
+
+ virtual bool sync_initialized() const OVERRIDE { return true; }
+
+ // Controls return value of FirstSetupInProgress. Because some bits
+ // of UI depend on that value, it's useful to control it separately
+ // from the internal work and components that are triggered (such as
+ // ReconfigureDataTypeManager) to facilitate unit tests.
+ void set_first_setup_in_progress(bool in_progress) {
+ first_setup_in_progress_ = in_progress;
+ }
+
+ private:
+ explicit OneClickTestProfileSyncService(Profile* profile)
+ : TestProfileSyncService(
+ NULL,
+ profile,
+ SigninManagerFactory::GetForProfile(profile),
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
+ browser_sync::MANUAL_START),
+ first_setup_in_progress_(false) {}
+
+ bool first_setup_in_progress_;
};
} // namespace
@@ -217,7 +219,6 @@ class OneClickSigninHelperTest : public ChromeRenderViewHostTestHarness {
void EnableOneClick(bool enable);
void AllowSigninCookies(bool enable);
void SetAllowedUsernamePattern(const std::string& pattern);
- ProfileSyncServiceMock* CreateProfileSyncServiceMock();
void SubmitGAIAPassword(OneClickSigninHelper* helper);
SigninManagerMock* signin_manager_;
@@ -300,24 +301,6 @@ void OneClickSigninHelperTest::SetAllowedUsernamePattern(
local_state->SetString(prefs::kGoogleServicesUsernamePattern, pattern);
}
-ProfileSyncServiceMock*
-OneClickSigninHelperTest::CreateProfileSyncServiceMock() {
- ProfileSyncServiceMock* sync_service = static_cast<ProfileSyncServiceMock*>(
- ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
- profile(),
- ProfileSyncServiceMock::BuildMockProfileSyncService));
- EXPECT_CALL(*sync_service, FirstSetupInProgress()).WillRepeatedly(
- Return(false));
- EXPECT_CALL(*sync_service, sync_initialized()).WillRepeatedly(Return(true));
- EXPECT_CALL(*sync_service, GetAuthError()).
- WillRepeatedly(::testing::ReturnRef(no_error_));
- EXPECT_CALL(*sync_service, sync_initialized()).WillRepeatedly(Return(false));
- ON_CALL(*sync_service, GetRegisteredDataTypes())
- .WillByDefault(Return(syncer::ModelTypeSet()));
- sync_service->Initialize();
- return sync_service;
-}
-
void OneClickSigninHelperTest::SubmitGAIAPassword(
OneClickSigninHelper* helper) {
autofill::PasswordForm password_form;
@@ -462,8 +445,7 @@ TEST_F(OneClickSigninHelperTest, CanOfferFirstSetup) {
OneClickTestProfileSyncService* sync =
static_cast<OneClickTestProfileSyncService*>(
ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
- static_cast<Profile*>(browser_context()),
- OneClickTestProfileSyncService::Build));
+ profile(), OneClickTestProfileSyncService::Build));
sync->Initialize();
sync->set_first_setup_in_progress(true);
@@ -674,10 +656,10 @@ TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) {
EXPECT_CALL(*signin_manager_, IsAllowedUsername(_))
.WillRepeatedly(Return(true));
- ProfileSyncServiceMock* sync_service = CreateProfileSyncServiceMock();
- EXPECT_CALL(*sync_service, AddObserver(_)).Times(AtLeast(1));
- EXPECT_CALL(*sync_service, RemoveObserver(_)).Times(AtLeast(1));
- EXPECT_CALL(*sync_service, sync_initialized()).WillRepeatedly(Return(true));
+ TestProfileSyncService* sync_service =
+ static_cast<TestProfileSyncService*>(
+ ProfileSyncServiceFactory::GetInstance()->SetTestingFactoryAndUse(
+ profile(), OneClickTestProfileSyncService::Build));
content::WebContents* contents = web_contents();
@@ -698,8 +680,8 @@ TEST_F(OneClickSigninHelperTest, SigninFromWebstoreWithConfigSyncfirst) {
NavigateAndCommit(GURL("https://chrome.google.com/webstore?source=3"));
helper->DidStopLoading(rvh());
- helper->OnStateChanged();
- EXPECT_EQ(GURL(continueUrl), contents->GetURL());
+ sync_service->NotifyObservers();
+ EXPECT_EQ(GURL(continueUrl), contents->GetVisibleURL());
}
// Checks that the state of OneClickSigninHelper is cleaned when there is a
@@ -723,25 +705,6 @@ TEST_F(OneClickSigninHelperTest, CleanTransientStateOnNavigate) {
EXPECT_EQ(OneClickSigninHelper::AUTO_ACCEPT_NONE, helper->auto_accept_);
}
-// Checks that OneClickSigninHelper doesn't stay an observer of the profile
-// sync service after it's deleted.
-TEST_F(OneClickSigninHelperTest, RemoveObserverFromProfileSyncService) {
- content::WebContents* contents = web_contents();
-
- ProfileSyncServiceMock* sync_service = CreateProfileSyncServiceMock();
-
- OneClickSigninHelper::CreateForWebContentsWithPasswordManager(contents, NULL);
- OneClickSigninHelper* helper =
- OneClickSigninHelper::FromWebContents(contents);
- helper->SetDoNotClearPendingEmailForTesting();
-
- // Need to expect two calls, because sync service also tears down observers.
- // TODO(signin): gmock probably isn't the best solution here.
- EXPECT_CALL(*sync_service, RemoveObserver(_));
- EXPECT_CALL(*sync_service, RemoveObserver(helper));
- SetContents(NULL);
-}
-
// I/O thread tests
TEST_F(OneClickSigninHelperIOTest, CanOfferOnIOThread) {

Powered by Google App Engine
This is Rietveld 408576698