Chromium Code Reviews| Index: chrome/browser/sessions/tab_restore_service_browsertest.cc |
| diff --git a/chrome/browser/sessions/tab_restore_service_browsertest.cc b/chrome/browser/sessions/tab_restore_service_browsertest.cc |
| index 4a8ed63b32bdbaad0c10201dd8c4f273486880d1..5e45685de401210a1e090477f08e2845a0cd5af3 100644 |
| --- a/chrome/browser/sessions/tab_restore_service_browsertest.cc |
| +++ b/chrome/browser/sessions/tab_restore_service_browsertest.cc |
| @@ -2,13 +2,14 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
|
sky
2012/10/25 00:45:44
This file mostly tests persistant_tab_restore_serv
Philippe
2012/10/25 15:37:07
Right, done. We will see in a next CL how to split
|
| // found in the LICENSE file. |
| +#include "base/compiler_specific.h" |
| #include "base/stringprintf.h" |
| #include "base/utf_string_conversions.h" |
| +#include "chrome/browser/sessions/persistent_tab_restore_service.h" |
| #include "chrome/browser/sessions/session_service.h" |
| #include "chrome/browser/sessions/session_service_factory.h" |
| #include "chrome/browser/sessions/session_types.h" |
| #include "chrome/browser/sessions/session_types_test_helper.h" |
| -#include "chrome/browser/sessions/tab_restore_service.h" |
| #include "chrome/browser/sessions/tab_restore_service_factory.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/common/chrome_notification_types.h" |
| @@ -67,15 +68,17 @@ class TabRestoreServiceTest : public ChromeRenderViewHostTestHarness { |
| } |
| protected: |
| - // testing::Test overrides |
| - virtual void SetUp() { |
| + static const size_t kMaxEntries; |
| + |
| + // testing::Test: |
| + virtual void SetUp() OVERRIDE { |
| WebKit::initialize(webkit_platform_support_.Get()); |
| ChromeRenderViewHostTestHarness::SetUp(); |
| time_factory_ = new TabRestoreTimeFactory(); |
| - service_.reset(new TabRestoreService(profile(), time_factory_)); |
| + service_.reset(new PersistentTabRestoreService(profile(), time_factory_)); |
| } |
| - virtual void TearDown() { |
| + virtual void TearDown() OVERRIDE { |
| service_->Shutdown(); |
| service_.reset(); |
| delete time_factory_; |
| @@ -83,6 +86,14 @@ class TabRestoreServiceTest : public ChromeRenderViewHostTestHarness { |
| WebKit::shutdown(); |
| } |
| + TabRestoreService::Entries* mutable_entries() { |
| + return service_->mutable_entries(); |
| + } |
| + |
| + void PruneEntries() { |
| + service_->PruneEntries(); |
| + } |
| + |
| void AddThreeNavigations() { |
| // Navigate to three URLs. |
| NavigateAndCommit(url1_); |
| @@ -102,7 +113,7 @@ class TabRestoreServiceTest : public ChromeRenderViewHostTestHarness { |
| // one is created. |
| service_->Shutdown(); |
| service_.reset(); |
| - service_.reset(new TabRestoreService(profile(), time_factory_)); |
| + service_.reset(new PersistentTabRestoreService(profile(), time_factory_)); |
| service_->LoadTabsFromLastSession(); |
| } |
| @@ -144,13 +155,16 @@ class TabRestoreServiceTest : public ChromeRenderViewHostTestHarness { |
| GURL url2_; |
| GURL url3_; |
| std::string user_agent_override_; |
| - scoped_ptr<TabRestoreService> service_; |
| + scoped_ptr<PersistentTabRestoreService> service_; |
| TabRestoreTimeFactory* time_factory_; |
| content::RenderViewTest::RendererWebKitPlatformSupportImplNoSandbox |
| webkit_platform_support_; |
| content::TestBrowserThread ui_thread_; |
| }; |
| +const size_t TabRestoreServiceTest::kMaxEntries = |
| + TabRestoreServiceHelper::kMaxEntries; |
| + |
| TEST_F(TabRestoreServiceTest, Basic) { |
| AddThreeNavigations(); |
| @@ -487,7 +501,7 @@ TEST_F(TabRestoreServiceTest, LoadPreviousSessionAndTabsPinned) { |
| TEST_F(TabRestoreServiceTest, ManyWindowsInSessionService) { |
| CreateSessionServiceWithOneWindow(false); |
| - for (size_t i = 0; i < TabRestoreService::kMaxEntries; ++i) |
| + for (size_t i = 0; i < kMaxEntries; ++i) |
| AddWindowWithOneTabToSessionService(false); |
| SessionServiceFactory::GetForProfile(profile())-> |
| @@ -501,7 +515,7 @@ TEST_F(TabRestoreServiceTest, ManyWindowsInSessionService) { |
| // We should get back kMaxEntries entries. We added more, but |
| // TabRestoreService only allows up to kMaxEntries. |
| - ASSERT_EQ(TabRestoreService::kMaxEntries, service_->entries().size()); |
| + ASSERT_EQ(kMaxEntries, service_->entries().size()); |
| // The first entry should come from the session service. |
| TabRestoreService::Entry* entry = service_->entries().front(); |
| @@ -573,7 +587,7 @@ TEST_F(TabRestoreServiceTest, PruneEntries) { |
| service_->ClearEntries(); |
| ASSERT_TRUE(service_->entries().empty()); |
| - const size_t max_entries = TabRestoreService::kMaxEntries; |
| + const size_t max_entries = kMaxEntries; |
| for (size_t i = 0; i < max_entries + 5; i++) { |
| TabNavigation navigation = |
| SessionTypesTestHelper::CreateNavigation( |
| @@ -584,16 +598,16 @@ TEST_F(TabRestoreServiceTest, PruneEntries) { |
| tab->navigations.push_back(navigation); |
| tab->current_navigation_index = 0; |
| - service_->entries_.push_back(tab); |
| + mutable_entries()->push_back(tab); |
| } |
| // Only keep kMaxEntries around. |
| - EXPECT_EQ(max_entries + 5, service_->entries_.size()); |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + EXPECT_EQ(max_entries + 5, service_->entries().size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| // Pruning again does nothing. |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| // Prune older first. |
| const char kRecentUrl[] = "http://recent"; |
| @@ -602,12 +616,12 @@ TEST_F(TabRestoreServiceTest, PruneEntries) { |
| Tab* tab = new Tab(); |
| tab->navigations.push_back(navigation); |
| tab->current_navigation_index = 0; |
| - service_->entries_.push_front(tab); |
| - EXPECT_EQ(max_entries + 1, service_->entries_.size()); |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + mutable_entries()->push_front(tab); |
| + EXPECT_EQ(max_entries + 1, service_->entries().size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| EXPECT_EQ(GURL(kRecentUrl), |
| - static_cast<Tab*>(service_->entries_.front())-> |
| + static_cast<Tab*>(service_->entries().front())-> |
| navigations[0].virtual_url()); |
| // Ignore NTPs. |
| @@ -618,13 +632,13 @@ TEST_F(TabRestoreServiceTest, PruneEntries) { |
| tab = new Tab(); |
| tab->navigations.push_back(navigation); |
| tab->current_navigation_index = 0; |
| - service_->entries_.push_front(tab); |
| + mutable_entries()->push_front(tab); |
| - EXPECT_EQ(max_entries + 1, service_->entries_.size()); |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + EXPECT_EQ(max_entries + 1, service_->entries().size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| EXPECT_EQ(GURL(kRecentUrl), |
| - static_cast<Tab*>(service_->entries_.front())-> |
| + static_cast<Tab*>(service_->entries().front())-> |
| navigations[0].virtual_url()); |
| // Don't prune pinned NTPs. |
| @@ -632,28 +646,28 @@ TEST_F(TabRestoreServiceTest, PruneEntries) { |
| tab->pinned = true; |
| tab->current_navigation_index = 0; |
| tab->navigations.push_back(navigation); |
| - service_->entries_.push_front(tab); |
| - EXPECT_EQ(max_entries + 1, service_->entries_.size()); |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + mutable_entries()->push_front(tab); |
| + EXPECT_EQ(max_entries + 1, service_->entries().size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), |
| - static_cast<Tab*>(service_->entries_.front())-> |
| + static_cast<Tab*>(service_->entries().front())-> |
| navigations[0].virtual_url()); |
| // Don't prune NTPs that have multiple navigations. |
| // (Erase the last NTP first.) |
| - delete service_->entries_.front(); |
| - service_->entries_.erase(service_->entries_.begin()); |
| + delete service_->entries().front(); |
| + mutable_entries()->erase(mutable_entries()->begin()); |
| tab = new Tab(); |
| tab->current_navigation_index = 1; |
| tab->navigations.push_back(navigation); |
| tab->navigations.push_back(navigation); |
| - service_->entries_.push_front(tab); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| - service_->PruneEntries(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + mutable_entries()->push_front(tab); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| + PruneEntries(); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), |
| - static_cast<Tab*>(service_->entries_.front())-> |
| + static_cast<Tab*>(service_->entries().front())-> |
| navigations[1].virtual_url()); |
| } |
| @@ -666,14 +680,14 @@ TEST_F(TabRestoreServiceTest, PruneIsCalled) { |
| profile()->set_restored_last_session(true); |
| - const size_t max_entries = TabRestoreService::kMaxEntries; |
| + const size_t max_entries = kMaxEntries; |
| for (size_t i = 0; i < max_entries + 5; i++) { |
| NavigateAndCommit(GURL(StringPrintf("http://%d", static_cast<int>(i)))); |
| service_->CreateHistoricalTab(contents(), -1); |
| } |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| // This should not crash. |
| service_->LoadTabsFromLastSession(); |
| - EXPECT_EQ(max_entries, service_->entries_.size()); |
| + EXPECT_EQ(max_entries, service_->entries().size()); |
| } |