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

Side by Side Diff: chrome/browser/sessions/tab_restore_service_browsertest.cc

Issue 3537005: Merge 58701 - Relanding this:... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/517/src/
Patch Set: Created 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/defaults.h" 5 #include "chrome/browser/defaults.h"
6 #include "chrome/browser/renderer_host/test/test_render_view_host.h" 6 #include "chrome/browser/renderer_host/test/test_render_view_host.h"
7 #include "chrome/browser/sessions/session_types.h" 7 #include "chrome/browser/sessions/session_types.h"
8 #include "chrome/browser/sessions/session_service.h" 8 #include "chrome/browser/sessions/session_service.h"
9 #include "chrome/browser/sessions/tab_restore_service.h" 9 #include "chrome/browser/sessions/tab_restore_service.h"
10 #include "chrome/browser/tab_contents/navigation_controller.h" 10 #include "chrome/browser/tab_contents/navigation_controller.h"
11 #include "chrome/browser/tab_contents/navigation_entry.h" 11 #include "chrome/browser/tab_contents/navigation_entry.h"
12 #include "chrome/browser/tab_contents/test_tab_contents.h"
12 #include "chrome/test/render_view_test.h" 13 #include "chrome/test/render_view_test.h"
13 #include "chrome/test/testing_profile.h" 14 #include "chrome/test/testing_profile.h"
14 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/WebKit/WebKit/chromium/public/WebKit.h" 16 #include "third_party/WebKit/WebKit/chromium/public/WebKit.h"
16 17
17 // Create subclass that overrides TimeNow so that we can control the time used 18 // Create subclass that overrides TimeNow so that we can control the time used
18 // for closed tabs and windows. 19 // for closed tabs and windows.
19 class TabRestoreTimeFactory : public TabRestoreService::TimeFactory { 20 class TabRestoreTimeFactory : public TabRestoreService::TimeFactory {
20 public: 21 public:
21 TabRestoreTimeFactory() : time_(base::Time::Now()) {} 22 TabRestoreTimeFactory() : time_(base::Time::Now()) {}
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 // Navigate to three URLs. 62 // Navigate to three URLs.
62 NavigateAndCommit(url1_); 63 NavigateAndCommit(url1_);
63 NavigateAndCommit(url2_); 64 NavigateAndCommit(url2_);
64 NavigateAndCommit(url3_); 65 NavigateAndCommit(url3_);
65 } 66 }
66 67
67 void NavigateToIndex(int index) { 68 void NavigateToIndex(int index) {
68 // Navigate back. We have to do this song and dance as NavigationController 69 // Navigate back. We have to do this song and dance as NavigationController
69 // isn't happy if you navigate immediately while going back. 70 // isn't happy if you navigate immediately while going back.
70 controller().GoToIndex(index); 71 controller().GoToIndex(index);
71 rvh()->SendNavigate(controller().pending_entry()->page_id(), 72 contents()->CommitPendingNavigation();
72 controller().pending_entry()->url());
73 } 73 }
74 74
75 void RecreateService() { 75 void RecreateService() {
76 // Must set service to null first so that it is destroyed before the new 76 // Must set service to null first so that it is destroyed before the new
77 // one is created. 77 // one is created.
78 service_ = NULL; 78 service_ = NULL;
79 service_ = new TabRestoreService(profile(), time_factory_); 79 service_ = new TabRestoreService(profile(), time_factory_);
80 service_->LoadTabsFromLastSession(); 80 service_->LoadTabsFromLastSession();
81 } 81 }
82 82
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 150
151 // There should be two entries now. 151 // There should be two entries now.
152 ASSERT_EQ(2U, service_->entries().size()); 152 ASSERT_EQ(2U, service_->entries().size());
153 153
154 // Make sure the entry matches 154 // Make sure the entry matches
155 entry = service_->entries().front(); 155 entry = service_->entries().front();
156 ASSERT_EQ(TabRestoreService::TAB, entry->type); 156 ASSERT_EQ(TabRestoreService::TAB, entry->type);
157 tab = static_cast<TabRestoreService::Tab*>(entry); 157 tab = static_cast<TabRestoreService::Tab*>(entry);
158 EXPECT_FALSE(tab->pinned); 158 EXPECT_FALSE(tab->pinned);
159 ASSERT_EQ(3U, tab->navigations.size()); 159 ASSERT_EQ(3U, tab->navigations.size());
160 EXPECT_TRUE(url1_ == tab->navigations[0].virtual_url()); 160 EXPECT_EQ(url1_, tab->navigations[0].virtual_url());
161 EXPECT_TRUE(url2_ == tab->navigations[1].virtual_url()); 161 EXPECT_EQ(url2_, tab->navigations[1].virtual_url());
162 EXPECT_TRUE(url3_ == tab->navigations[2].virtual_url()); 162 EXPECT_EQ(url3_, tab->navigations[2].virtual_url());
163 EXPECT_EQ(1, tab->current_navigation_index); 163 EXPECT_EQ(1, tab->current_navigation_index);
164 EXPECT_EQ(time_factory_->TimeNow().ToInternalValue(), 164 EXPECT_EQ(time_factory_->TimeNow().ToInternalValue(),
165 tab->timestamp.ToInternalValue()); 165 tab->timestamp.ToInternalValue());
166 } 166 }
167 167
168 // Make sure TabRestoreService doesn't create an entry for a tab with no 168 // Make sure TabRestoreService doesn't create an entry for a tab with no
169 // navigations. 169 // navigations.
170 TEST_F(TabRestoreServiceTest, DontCreateEmptyTab) { 170 TEST_F(TabRestoreServiceTest, DontCreateEmptyTab) {
171 service_->CreateHistoricalTab(&controller()); 171 service_->CreateHistoricalTab(&controller());
172 EXPECT_TRUE(service_->entries().empty()); 172 EXPECT_TRUE(service_->entries().empty());
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 ASSERT_EQ(1U, service_->entries().size()); 475 ASSERT_EQ(1U, service_->entries().size());
476 476
477 // And verify the entry. 477 // And verify the entry.
478 TabRestoreService::Entry* restored_entry = service_->entries().front(); 478 TabRestoreService::Entry* restored_entry = service_->entries().front();
479 ASSERT_EQ(TabRestoreService::TAB, restored_entry->type); 479 ASSERT_EQ(TabRestoreService::TAB, restored_entry->type);
480 TabRestoreService::Tab* restored_tab = 480 TabRestoreService::Tab* restored_tab =
481 static_cast<TabRestoreService::Tab*>(restored_entry); 481 static_cast<TabRestoreService::Tab*>(restored_entry);
482 EXPECT_EQ(tab_timestamp.ToInternalValue(), 482 EXPECT_EQ(tab_timestamp.ToInternalValue(),
483 restored_tab->timestamp.ToInternalValue()); 483 restored_tab->timestamp.ToInternalValue());
484 } 484 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698