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); |