Index: chrome/browser/sessions/persistent_tab_restore_service_unittest.cc |
diff --git a/chrome/browser/sessions/persistent_tab_restore_service_unittest.cc b/chrome/browser/sessions/persistent_tab_restore_service_unittest.cc |
index 2e0825b4b952e0886a8bba2676970007e6da1e8b..59c4148476019d36420aa9eb9e5c72608da2f5cb 100644 |
--- a/chrome/browser/sessions/persistent_tab_restore_service_unittest.cc |
+++ b/chrome/browser/sessions/persistent_tab_restore_service_unittest.cc |
@@ -226,7 +226,7 @@ TEST_F(PersistentTabRestoreServiceTest, Basic) { |
ASSERT_EQ(1U, service_->entries().size()); |
// Make sure the entry matches. |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
EXPECT_FALSE(tab->pinned); |
@@ -250,7 +250,7 @@ TEST_F(PersistentTabRestoreServiceTest, Basic) { |
ASSERT_EQ(2U, service_->entries().size()); |
// Make sure the entry matches. |
- entry = service_->entries().front(); |
+ entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
tab = static_cast<Tab*>(entry); |
EXPECT_FALSE(tab->pinned); |
@@ -286,7 +286,7 @@ TEST_F(PersistentTabRestoreServiceTest, Restore) { |
// And verify the entry. |
sessions::PersistentTabRestoreService::Entry* entry = |
- service_->entries().front(); |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
EXPECT_FALSE(tab->pinned); |
@@ -311,7 +311,7 @@ TEST_F(PersistentTabRestoreServiceTest, RestorePinnedAndApp) { |
// We have to explicitly mark the tab as pinned as there is no browser for |
// these tests. |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
tab->pinned = true; |
@@ -325,7 +325,7 @@ TEST_F(PersistentTabRestoreServiceTest, RestorePinnedAndApp) { |
ASSERT_EQ(1U, service_->entries().size()); |
// And verify the entry. |
- entry = service_->entries().front(); |
+ entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
tab = static_cast<Tab*>(entry); |
EXPECT_TRUE(tab->pinned); |
@@ -355,7 +355,7 @@ TEST_F(PersistentTabRestoreServiceTest, DontPersistPostData) { |
ASSERT_EQ(1U, service_->entries().size()); |
const sessions::TabRestoreService::Entry* restored_entry = |
- service_->entries().front(); |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, restored_entry->type); |
const Tab* restored_tab = |
@@ -402,17 +402,18 @@ TEST_F(PersistentTabRestoreServiceTest, LoadPreviousSession) { |
// Make sure we get back one entry with one tab whose url is url1. |
ASSERT_EQ(1U, service_->entries().size()); |
- sessions::TabRestoreService::Entry* entry2 = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry2 = |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::WINDOW, entry2->type); |
sessions::TabRestoreService::Window* window = |
static_cast<sessions::TabRestoreService::Window*>(entry2); |
ASSERT_EQ(1U, window->tabs.size()); |
EXPECT_EQ(0, window->timestamp.ToInternalValue()); |
EXPECT_EQ(0, window->selected_tab_index); |
- ASSERT_EQ(1U, window->tabs[0].navigations.size()); |
- EXPECT_EQ(0, window->tabs[0].current_navigation_index); |
- EXPECT_EQ(0, window->tabs[0].timestamp.ToInternalValue()); |
- EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].virtual_url()); |
+ ASSERT_EQ(1U, window->tabs[0]->navigations.size()); |
+ EXPECT_EQ(0, window->tabs[0]->current_navigation_index); |
+ EXPECT_EQ(0, window->tabs[0]->timestamp.ToInternalValue()); |
+ EXPECT_TRUE(url1_ == window->tabs[0]->navigations[0].virtual_url()); |
} |
// Makes sure we don't attempt to load previous sessions after a restore. |
@@ -461,20 +462,20 @@ TEST_F(PersistentTabRestoreServiceTest, LoadPreviousSessionAndTabs) { |
// the tab restore service. The previous session entry should be first. |
ASSERT_EQ(2U, service_->entries().size()); |
// The first entry should come from the session service. |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::WINDOW, entry->type); |
sessions::TabRestoreService::Window* window = |
static_cast<sessions::TabRestoreService::Window*>(entry); |
ASSERT_EQ(1U, window->tabs.size()); |
EXPECT_EQ(0, window->selected_tab_index); |
EXPECT_EQ(0, window->timestamp.ToInternalValue()); |
- ASSERT_EQ(1U, window->tabs[0].navigations.size()); |
- EXPECT_EQ(0, window->tabs[0].current_navigation_index); |
- EXPECT_EQ(0, window->tabs[0].timestamp.ToInternalValue()); |
- EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].virtual_url()); |
+ ASSERT_EQ(1U, window->tabs[0]->navigations.size()); |
+ EXPECT_EQ(0, window->tabs[0]->current_navigation_index); |
+ EXPECT_EQ(0, window->tabs[0]->timestamp.ToInternalValue()); |
+ EXPECT_TRUE(url1_ == window->tabs[0]->navigations[0].virtual_url()); |
// Then the closed tab. |
- entry = *(++service_->entries().begin()); |
+ entry = (++service_->entries().begin())->get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
ASSERT_FALSE(tab->pinned); |
@@ -504,19 +505,19 @@ TEST_F(PersistentTabRestoreServiceTest, LoadPreviousSessionAndTabsPinned) { |
// the tab restore service. The previous session entry should be first. |
ASSERT_EQ(2U, service_->entries().size()); |
// The first entry should come from the session service. |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::WINDOW, entry->type); |
sessions::TabRestoreService::Window* window = |
static_cast<sessions::TabRestoreService::Window*>(entry); |
ASSERT_EQ(1U, window->tabs.size()); |
EXPECT_EQ(0, window->selected_tab_index); |
- EXPECT_TRUE(window->tabs[0].pinned); |
- ASSERT_EQ(1U, window->tabs[0].navigations.size()); |
- EXPECT_EQ(0, window->tabs[0].current_navigation_index); |
- EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].virtual_url()); |
+ EXPECT_TRUE(window->tabs[0]->pinned); |
+ ASSERT_EQ(1U, window->tabs[0]->navigations.size()); |
+ EXPECT_EQ(0, window->tabs[0]->current_navigation_index); |
+ EXPECT_TRUE(url1_ == window->tabs[0]->navigations[0].virtual_url()); |
// Then the closed tab. |
- entry = *(++service_->entries().begin()); |
+ entry = (++service_->entries().begin())->get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
ASSERT_FALSE(tab->pinned); |
@@ -549,17 +550,17 @@ TEST_F(PersistentTabRestoreServiceTest, ManyWindowsInSessionService) { |
ASSERT_EQ(kMaxEntries, service_->entries().size()); |
// The first entry should come from the session service. |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::WINDOW, entry->type); |
sessions::TabRestoreService::Window* window = |
static_cast<sessions::TabRestoreService::Window*>(entry); |
ASSERT_EQ(1U, window->tabs.size()); |
EXPECT_EQ(0, window->selected_tab_index); |
EXPECT_EQ(0, window->timestamp.ToInternalValue()); |
- ASSERT_EQ(1U, window->tabs[0].navigations.size()); |
- EXPECT_EQ(0, window->tabs[0].current_navigation_index); |
- EXPECT_EQ(0, window->tabs[0].timestamp.ToInternalValue()); |
- EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].virtual_url()); |
+ ASSERT_EQ(1U, window->tabs[0]->navigations.size()); |
+ EXPECT_EQ(0, window->tabs[0]->current_navigation_index); |
+ EXPECT_EQ(0, window->tabs[0]->timestamp.ToInternalValue()); |
+ EXPECT_TRUE(url1_ == window->tabs[0]->navigations[0].virtual_url()); |
} |
// Makes sure we restore timestamps correctly. |
@@ -578,7 +579,8 @@ TEST_F(PersistentTabRestoreServiceTest, TimestampSurvivesRestore) { |
std::vector<SerializedNavigationEntry> old_navigations; |
{ |
// |entry|/|tab| doesn't survive after RecreateService(). |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
tab->timestamp = tab_timestamp; |
@@ -600,7 +602,7 @@ TEST_F(PersistentTabRestoreServiceTest, TimestampSurvivesRestore) { |
// And verify the entry. |
sessions::TabRestoreService::Entry* restored_entry = |
- service_->entries().front(); |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, restored_entry->type); |
Tab* restored_tab = |
static_cast<Tab*>(restored_entry); |
@@ -627,7 +629,8 @@ TEST_F(PersistentTabRestoreServiceTest, StatusCodesSurviveRestore) { |
std::vector<sessions::SerializedNavigationEntry> old_navigations; |
{ |
// |entry|/|tab| doesn't survive after RecreateService(). |
- sessions::TabRestoreService::Entry* entry = service_->entries().front(); |
+ sessions::TabRestoreService::Entry* entry = |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, entry->type); |
Tab* tab = static_cast<Tab*>(entry); |
old_navigations = tab->navigations; |
@@ -648,7 +651,7 @@ TEST_F(PersistentTabRestoreServiceTest, StatusCodesSurviveRestore) { |
// And verify the entry. |
sessions::TabRestoreService::Entry* restored_entry = |
- service_->entries().front(); |
+ service_->entries().front().get(); |
ASSERT_EQ(sessions::TabRestoreService::TAB, restored_entry->type); |
Tab* restored_tab = |
static_cast<Tab*>(restored_entry); |
@@ -669,11 +672,11 @@ TEST_F(PersistentTabRestoreServiceTest, PruneEntries) { |
base::StringPrintf("http://%d", static_cast<int>(i)), |
base::SizeTToString(i)); |
- Tab* tab = new Tab(); |
+ auto tab = base::MakeUnique<Tab>(); |
tab->navigations.push_back(navigation); |
tab->current_navigation_index = 0; |
- mutable_entries()->push_back(tab); |
+ mutable_entries()->push_back(std::move(tab)); |
} |
// Only keep kMaxEntries around. |
@@ -689,61 +692,62 @@ TEST_F(PersistentTabRestoreServiceTest, PruneEntries) { |
SerializedNavigationEntry navigation = |
SerializedNavigationEntryTestHelper::CreateNavigation(kRecentUrl, |
"Most recent"); |
- Tab* tab = new Tab(); |
+ auto tab = base::MakeUnique<Tab>(); |
tab->navigations.push_back(navigation); |
tab->current_navigation_index = 0; |
- mutable_entries()->push_front(tab); |
+ mutable_entries()->push_front(std::move(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())-> |
- navigations[0].virtual_url()); |
+ EXPECT_EQ(GURL(kRecentUrl), static_cast<Tab&>(*service_->entries().front()) |
+ .navigations[0] |
+ .virtual_url()); |
// Ignore NTPs. |
navigation = SerializedNavigationEntryTestHelper::CreateNavigation( |
chrome::kChromeUINewTabURL, "New tab"); |
- tab = new Tab(); |
+ tab = base::MakeUnique<Tab>(); |
tab->navigations.push_back(navigation); |
tab->current_navigation_index = 0; |
- mutable_entries()->push_front(tab); |
+ mutable_entries()->push_front(std::move(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())-> |
- navigations[0].virtual_url()); |
+ EXPECT_EQ(GURL(kRecentUrl), static_cast<Tab&>(*service_->entries().front()) |
+ .navigations[0] |
+ .virtual_url()); |
// Don't prune pinned NTPs. |
- tab = new Tab(); |
+ tab = base::MakeUnique<Tab>(); |
tab->pinned = true; |
tab->current_navigation_index = 0; |
tab->navigations.push_back(navigation); |
- mutable_entries()->push_front(tab); |
+ mutable_entries()->push_front(std::move(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())-> |
- navigations[0].virtual_url()); |
+ static_cast<Tab*>(service_->entries().front().get()) |
+ ->navigations[0] |
+ .virtual_url()); |
// Don't prune NTPs that have multiple navigations. |
// (Erase the last NTP first.) |
- delete service_->entries().front(); |
mutable_entries()->erase(mutable_entries()->begin()); |
- tab = new Tab(); |
+ tab = base::MakeUnique<Tab>(); |
tab->current_navigation_index = 1; |
tab->navigations.push_back(navigation); |
tab->navigations.push_back(navigation); |
- mutable_entries()->push_front(tab); |
+ mutable_entries()->push_front(std::move(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())-> |
- navigations[1].virtual_url()); |
+ static_cast<Tab*>(service_->entries().front().get()) |
+ ->navigations[1] |
+ .virtual_url()); |
} |
// Regression test for crbug.com/106082 |