| Index: chrome/browser/sessions/persistent_tab_restore_service_browsertest.cc
|
| diff --git a/chrome/browser/sessions/persistent_tab_restore_service_browsertest.cc b/chrome/browser/sessions/persistent_tab_restore_service_browsertest.cc
|
| index 399b35a863525562e2b5f7a61c872c573363d6fc..c433623e15c81057880b07252036ca4c2c3f7fa1 100644
|
| --- a/chrome/browser/sessions/persistent_tab_restore_service_browsertest.cc
|
| +++ b/chrome/browser/sessions/persistent_tab_restore_service_browsertest.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/sessions/persistent_tab_restore_service.h"
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/run_loop.h"
|
| #include "base/stringprintf.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -28,7 +29,6 @@
|
| #include "content/public/browser/notification_types.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/test/render_view_test.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| #include "content/public/test/test_utils.h"
|
| #include "content/public/test/web_contents_tester.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| @@ -61,12 +61,12 @@ class PersistentTabRestoreTimeFactory : public TabRestoreService::TimeFactory {
|
| class PersistentTabRestoreServiceTest : public ChromeRenderViewHostTestHarness {
|
| public:
|
| PersistentTabRestoreServiceTest()
|
| - : ui_thread_(content::BrowserThread::UI, &message_loop_) {
|
| - url1_ = GURL("http://1");
|
| - url2_ = GURL("http://2");
|
| - url3_ = GURL("http://3");
|
| - user_agent_override_ = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19"
|
| - " (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19";
|
| + : url1_("http://1"),
|
| + url2_("http://2"),
|
| + url3_("http://3"),
|
| + user_agent_override_(
|
| + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19"
|
| + " (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19") {
|
| }
|
|
|
| virtual ~PersistentTabRestoreServiceTest() {
|
| @@ -121,7 +121,7 @@ class PersistentTabRestoreServiceTest : public ChromeRenderViewHostTestHarness {
|
| service_->Shutdown();
|
| service_.reset();
|
| service_.reset(new PersistentTabRestoreService(profile(), time_factory_));
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
| }
|
|
|
| // Adds a window with one tab and url to the profile's session service.
|
| @@ -159,6 +159,12 @@ class PersistentTabRestoreServiceTest : public ChromeRenderViewHostTestHarness {
|
| profile()->set_last_session_exited_cleanly(false);
|
| }
|
|
|
| + void SynchronousLoadTabsFromLastSession() {
|
| + // Ensures that the load is complete before continuing.
|
| + service_->LoadTabsFromLastSession();
|
| + base::RunLoop().RunUntilIdle();
|
| + }
|
| +
|
| GURL url1_;
|
| GURL url2_;
|
| GURL url3_;
|
| @@ -167,7 +173,6 @@ class PersistentTabRestoreServiceTest : public ChromeRenderViewHostTestHarness {
|
| PersistentTabRestoreTimeFactory* time_factory_;
|
| content::RenderViewTest::RendererWebKitPlatformSupportImplNoSandbox
|
| webkit_platform_support_;
|
| - content::TestBrowserThread ui_thread_;
|
| };
|
|
|
| namespace {
|
| @@ -387,7 +392,7 @@ TEST_F(PersistentTabRestoreServiceTest, DontLoadTwice) {
|
| // Recreate the service and have it load the tabs.
|
| RecreateService();
|
|
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
|
|
| // There should only be one entry.
|
| ASSERT_EQ(1U, service_->entries().size());
|
| @@ -404,7 +409,7 @@ TEST_F(PersistentTabRestoreServiceTest, LoadPreviousSession) {
|
|
|
| TestTabRestoreServiceObserver observer;
|
| service_->AddObserver(&observer);
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
| EXPECT_TRUE(observer.got_loaded());
|
| service_->RemoveObserver(&observer);
|
|
|
| @@ -432,7 +437,7 @@ TEST_F(PersistentTabRestoreServiceTest, DontLoadAfterRestore) {
|
|
|
| profile()->set_restored_last_session(true);
|
|
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
|
|
| // Because we restored a session PersistentTabRestoreService shouldn't load
|
| // the tabs.
|
| @@ -448,7 +453,7 @@ TEST_F(PersistentTabRestoreServiceTest, DontLoadAfterCleanExit) {
|
|
|
| profile()->set_last_session_exited_cleanly(true);
|
|
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
|
|
| ASSERT_EQ(0U, service_->entries().size());
|
| }
|
| @@ -726,7 +731,7 @@ TEST_F(PersistentTabRestoreServiceTest, PruneIsCalled) {
|
|
|
| EXPECT_EQ(max_entries, service_->entries().size());
|
| // This should not crash.
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
| EXPECT_EQ(max_entries, service_->entries().size());
|
| }
|
|
|
| @@ -744,7 +749,7 @@ TEST_F(PersistentTabRestoreServiceTest, GoToLoadedWhenHaveMaxEntries) {
|
| TestTabRestoreServiceObserver observer;
|
| service_->AddObserver(&observer);
|
| EXPECT_EQ(max_entries, service_->entries().size());
|
| - service_->LoadTabsFromLastSession();
|
| + SynchronousLoadTabsFromLastSession();
|
| EXPECT_TRUE(observer.got_loaded());
|
| EXPECT_TRUE(service_->IsLoaded());
|
| service_->RemoveObserver(&observer);
|
|
|