| Index: chrome/browser/chromeos/login/merge_session_load_page_unittest.cc
|
| diff --git a/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc b/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc
|
| index 9b85e81b4ea15ee1bac61f986a392fb0717caba3..1455dfa455255bc40128184c8296a31f71514fb6 100644
|
| --- a/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc
|
| +++ b/chrome/browser/chromeos/login/merge_session_load_page_unittest.cc
|
| @@ -3,7 +3,10 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/run_loop.h"
|
| +#include "base/time/time.h"
|
| #include "chrome/browser/chromeos/login/merge_session_load_page.h"
|
| +#include "chrome/browser/chromeos/login/oauth2_login_manager.h"
|
| +#include "chrome/browser/chromeos/login/oauth2_login_manager_factory.h"
|
| #include "chrome/browser/chromeos/login/user_manager.h"
|
| #include "chrome/browser/chromeos/settings/cros_settings.h"
|
| #include "chrome/browser/chromeos/settings/device_settings_service.h"
|
| @@ -22,6 +25,8 @@ namespace {
|
| const char kURL1[] = "http://www.google.com/";
|
| const char kURL2[] = "http://mail.google.com/";
|
|
|
| +const int64 kSessionMergeTimeout = 60;
|
| +
|
| } // namespace
|
|
|
| namespace chromeos {
|
| @@ -79,6 +84,34 @@ class MergeSessionLoadPageTest : public ChromeRenderViewHostTestHarness {
|
| return InterstitialPage::GetInterstitialPage(web_contents());
|
| }
|
|
|
| + OAuth2LoginManager* GetOAuth2LoginManager() {
|
| + content::BrowserContext* browser_context =
|
| + web_contents()->GetBrowserContext();
|
| + if (!browser_context)
|
| + return NULL;
|
| +
|
| + Profile* profile = Profile::FromBrowserContext(browser_context);
|
| + if (!profile)
|
| + return NULL;
|
| +
|
| + OAuth2LoginManager* login_manager =
|
| + OAuth2LoginManagerFactory::GetInstance()->GetForProfile(
|
| + profile);
|
| + return login_manager;
|
| + }
|
| +
|
| + void SetMergeSessionState(OAuth2LoginManager::SessionRestoreState state) {
|
| + OAuth2LoginManager* login_manager = GetOAuth2LoginManager();
|
| + ASSERT_TRUE(login_manager);
|
| + login_manager->SetSessionRestoreState(state);
|
| + }
|
| +
|
| + void SetSessionRestoreStart(const base::Time& time) {
|
| + OAuth2LoginManager* login_manager = GetOAuth2LoginManager();
|
| + ASSERT_TRUE(login_manager);
|
| + login_manager->SetSessionRestoreStartForTesting(time);
|
| + }
|
| +
|
| private:
|
| ScopedTestDeviceSettingsService test_device_settings_service_;
|
| ScopedTestCrosSettings test_cros_settings_;
|
| @@ -86,8 +119,25 @@ class MergeSessionLoadPageTest : public ChromeRenderViewHostTestHarness {
|
| };
|
|
|
| TEST_F(MergeSessionLoadPageTest, MergeSessionPageNotShown) {
|
| - UserManager::Get()->SetMergeSessionState(
|
| - UserManager::MERGE_STATUS_DONE);
|
| + SetMergeSessionState(OAuth2LoginManager::SESSION_RESTORE_DONE);
|
| + // Start a load.
|
| + Navigate(kURL1, 1);
|
| + // Load next page.
|
| + controller().LoadURL(GURL(kURL2), content::Referrer(),
|
| + content::PAGE_TRANSITION_TYPED, std::string());
|
| +
|
| + // Simulate the load causing an merge session interstitial page
|
| + // to be shown.
|
| + InterstitialPage* interstitial = GetMergeSessionLoadPage();
|
| + EXPECT_FALSE(interstitial);
|
| +}
|
| +
|
| +TEST_F(MergeSessionLoadPageTest, MergeSessionPageNotShownOnTimeout) {
|
| + SetMergeSessionState(OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS);
|
| + SetSessionRestoreStart(
|
| + base::Time::Now() +
|
| + base::TimeDelta::FromSeconds(kSessionMergeTimeout + 1));
|
| +
|
| // Start a load.
|
| Navigate(kURL1, 1);
|
| // Load next page.
|
| @@ -101,8 +151,8 @@ TEST_F(MergeSessionLoadPageTest, MergeSessionPageNotShown) {
|
| }
|
|
|
| TEST_F(MergeSessionLoadPageTest, MergeSessionPageShown) {
|
| - UserManager::Get()->SetMergeSessionState(
|
| - UserManager::MERGE_STATUS_IN_PROCESS);
|
| + SetMergeSessionState(OAuth2LoginManager::SESSION_RESTORE_IN_PROGRESS);
|
| +
|
| // Start a load.
|
| Navigate(kURL1, 1);
|
| // Load next page.
|
| @@ -117,8 +167,7 @@ TEST_F(MergeSessionLoadPageTest, MergeSessionPageShown) {
|
| base::RunLoop().RunUntilIdle();
|
|
|
| // Simulate merge session completion.
|
| - UserManager::Get()->SetMergeSessionState(
|
| - UserManager::MERGE_STATUS_DONE);
|
| + SetMergeSessionState(OAuth2LoginManager::SESSION_RESTORE_DONE);
|
| base::RunLoop().RunUntilIdle();
|
|
|
| // The URL remains to be URL2.
|
|
|