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

Unified Diff: chrome/browser/chromeos/login/merge_session_load_page_unittest.cc

Issue 23678007: OAuth2LoginManager+MergeSessionThrottle hardening, multi-profle support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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/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.
« no previous file with comments | « chrome/browser/chromeos/login/merge_session_load_page.cc ('k') | chrome/browser/chromeos/login/merge_session_throttle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698