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

Unified Diff: chrome/browser/sessions/tab_restore_service_browsertest.cc

Issue 10989027: Split TabRestoreService into InMemoryTRS and PersistentTRS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix some comments Created 8 years, 2 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/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
// 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());
}

Powered by Google App Engine
This is Rietveld 408576698