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

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

Issue 42619: Fixes bug where first login attempt to hotmail after session restore... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/sessions/session_types.h" 5 #include "chrome/browser/sessions/session_types.h"
6 #include "chrome/browser/sessions/tab_restore_service.h" 6 #include "chrome/browser/sessions/tab_restore_service.h"
7 #include "chrome/browser/tab_contents/navigation_entry.h" 7 #include "chrome/browser/tab_contents/navigation_entry.h"
8 #include "chrome/test/test_tab_contents.h" 8 #include "chrome/test/test_tab_contents.h"
9 #include "chrome/test/testing_profile.h" 9 #include "chrome/test/testing_profile.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 service_->RestoreEntryById(NULL, service_->entries().front()->id, true); 172 service_->RestoreEntryById(NULL, service_->entries().front()->id, true);
173 ASSERT_TRUE(service_->entries().empty()); 173 ASSERT_TRUE(service_->entries().empty());
174 174
175 // Recreate the service and have it load the tabs. 175 // Recreate the service and have it load the tabs.
176 RecreateService(); 176 RecreateService();
177 177
178 // There should be no entries. 178 // There should be no entries.
179 ASSERT_EQ(0U, service_->entries().size()); 179 ASSERT_EQ(0U, service_->entries().size());
180 } 180 }
181 181
182 // Make sure we don't persist entries to disk that have post data. 182 // Make sure we persist entries to disk that have post data.
183 TEST_F(TabRestoreServiceTest, DontPersistPostData1) { 183 TEST_F(TabRestoreServiceTest, DontPersistPostData) {
184 AddThreeNavigations(); 184 AddThreeNavigations();
185 controller_->GetEntryAtIndex(0)->set_has_post_data(true);
186 controller_->GetEntryAtIndex(1)->set_has_post_data(true);
185 controller_->GetEntryAtIndex(2)->set_has_post_data(true); 187 controller_->GetEntryAtIndex(2)->set_has_post_data(true);
186 188
187 // Have the service record the tab. 189 // Have the service record the tab.
188 service_->CreateHistoricalTab(controller_); 190 service_->CreateHistoricalTab(controller_);
189 ASSERT_EQ(1U, service_->entries().size());
190
191 // Recreate the service and have it load the tabs.
192 RecreateService();
193
194 // One entry should be created.
195 ASSERT_EQ(1U, service_->entries().size());
196
197 // And verify the entry, the last navigation (url3_) should not have
198 // been written to disk as it contained post data.
199 TabRestoreService::Entry* entry = service_->entries().front();
200 ASSERT_EQ(TabRestoreService::TAB, entry->type);
201 TabRestoreService::Tab* tab = static_cast<TabRestoreService::Tab*>(entry);
202 ASSERT_EQ(2U, tab->navigations.size());
203 EXPECT_TRUE(url1_ == tab->navigations[0].url());
204 EXPECT_TRUE(url2_ == tab->navigations[1].url());
205 EXPECT_EQ(1, tab->current_navigation_index);
206 }
207
208 // Make sure we don't persist entries to disk that have post data. This
209 // differs from DontPersistPostData1 in that all navigations before the
210 // current index have post data.
211 TEST_F(TabRestoreServiceTest, DontPersistPostData2) {
212 AddThreeNavigations();
213 NavigateToIndex(1);
214 controller_->GetEntryAtIndex(0)->set_has_post_data(true);
215 controller_->GetEntryAtIndex(1)->set_has_post_data(true);
216
217 // Have the service record the tab.
218 service_->CreateHistoricalTab(controller_);
219 ASSERT_EQ(1U, service_->entries().size()); 191 ASSERT_EQ(1U, service_->entries().size());
220 192
221 // Recreate the service and have it load the tabs. 193 // Recreate the service and have it load the tabs.
222 RecreateService(); 194 RecreateService();
223 195
224 // One entry should be created. 196 // One entry should be created.
225 ASSERT_EQ(1U, service_->entries().size()); 197 ASSERT_EQ(1U, service_->entries().size());
226 198
227 // And verify the entry, the last navigation (url3_) should not have 199 const TabRestoreService::Entry* restored_entry = service_->entries().front();
228 // been written to disk as it contained post data. 200 ASSERT_EQ(TabRestoreService::TAB, restored_entry->type);
229 TabRestoreService::Entry* entry = service_->entries().front(); 201
230 ASSERT_EQ(TabRestoreService::TAB, entry->type); 202 const TabRestoreService::Tab* restored_tab =
231 TabRestoreService::Tab* tab = static_cast<TabRestoreService::Tab*>(entry); 203 static_cast<const TabRestoreService::Tab*>(restored_entry);
232 ASSERT_EQ(1U, tab->navigations.size()); 204 // There should be 3 navs.
233 EXPECT_TRUE(url3_ == tab->navigations[0].url()); 205 ASSERT_EQ(3U, restored_tab->navigations.size());
234 EXPECT_EQ(0, tab->current_navigation_index);
235 } 206 }
236 207
237 // Make sure we don't persist entries to disk that have post data. This 208 // Make sure we don't persist entries to disk that have post data. This
238 // differs from DontPersistPostData1 in that all the navigations have post
239 // data, so that nothing should be persisted.
240 TEST_F(TabRestoreServiceTest, DontPersistPostData3) {
241 AddThreeNavigations();
242 controller_->GetEntryAtIndex(0)->set_has_post_data(true);
243 controller_->GetEntryAtIndex(1)->set_has_post_data(true);
244 controller_->GetEntryAtIndex(2)->set_has_post_data(true);
245
246 // Have the service record the tab.
247 service_->CreateHistoricalTab(controller_);
248 ASSERT_EQ(1U, service_->entries().size());
249
250 // Recreate the service and have it load the tabs.
251 RecreateService();
252
253 // One entry should be created.
254 ASSERT_TRUE(service_->entries().empty());
255 }
256
257 // Make sure we don't persist entries to disk that have post data. This
258 // differs from DontPersistPostData1 in that all the navigations have post 209 // differs from DontPersistPostData1 in that all the navigations have post
259 // data, so that nothing should be persisted. 210 // data, so that nothing should be persisted.
260 TEST_F(TabRestoreServiceTest, DontLoadTwice) { 211 TEST_F(TabRestoreServiceTest, DontLoadTwice) {
261 AddThreeNavigations(); 212 AddThreeNavigations();
262 213
263 // Have the service record the tab. 214 // Have the service record the tab.
264 service_->CreateHistoricalTab(controller_); 215 service_->CreateHistoricalTab(controller_);
265 ASSERT_EQ(1U, service_->entries().size()); 216 ASSERT_EQ(1U, service_->entries().size());
266 217
267 // Recreate the service and have it load the tabs. 218 // Recreate the service and have it load the tabs.
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 TabRestoreService::Entry* entry = service_->entries().front(); 332 TabRestoreService::Entry* entry = service_->entries().front();
382 ASSERT_EQ(TabRestoreService::WINDOW, entry->type); 333 ASSERT_EQ(TabRestoreService::WINDOW, entry->type);
383 TabRestoreService::Window* window = 334 TabRestoreService::Window* window =
384 static_cast<TabRestoreService::Window*>(entry); 335 static_cast<TabRestoreService::Window*>(entry);
385 ASSERT_EQ(1U, window->tabs.size()); 336 ASSERT_EQ(1U, window->tabs.size());
386 EXPECT_EQ(0, window->selected_tab_index); 337 EXPECT_EQ(0, window->selected_tab_index);
387 ASSERT_EQ(1U, window->tabs[0].navigations.size()); 338 ASSERT_EQ(1U, window->tabs[0].navigations.size());
388 EXPECT_EQ(0, window->tabs[0].current_navigation_index); 339 EXPECT_EQ(0, window->tabs[0].current_navigation_index);
389 EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].url()); 340 EXPECT_TRUE(url1_ == window->tabs[0].navigations[0].url());
390 } 341 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698