| Index: chrome/browser/sessions/session_service_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/sessions/session_service_unittest.cc (revision 30237)
|
| +++ chrome/browser/sessions/session_service_unittest.cc (working copy)
|
| @@ -397,6 +397,9 @@
|
|
|
| // Makes sure we don't track popups.
|
| TEST_F(SessionServiceTest, IgnorePopups) {
|
| + if (browser_defaults::kRestorePopups)
|
| + return; // This test is only applicable if popups aren't restored.
|
| +
|
| SessionID window2_id;
|
| SessionID tab_id;
|
| SessionID tab2_id;
|
| @@ -431,6 +434,56 @@
|
| helper_.AssertNavigationEquals(nav1, tab->navigations[0]);
|
| }
|
|
|
| +// Makes sure we track popups.
|
| +TEST_F(SessionServiceTest, RestorePopup) {
|
| + if (!browser_defaults::kRestorePopups)
|
| + return; // This test is only applicable if popups are restored.
|
| +
|
| + SessionID window2_id;
|
| + SessionID tab_id;
|
| + SessionID tab2_id;
|
| + ASSERT_NE(window2_id.id(), window_id.id());
|
| +
|
| + service()->SetWindowType(window2_id, Browser::TYPE_POPUP);
|
| + service()->SetWindowBounds(window2_id, window_bounds, false);
|
| +
|
| + TabNavigation nav1(0, GURL("http://google.com"), GURL(),
|
| + ASCIIToUTF16("abc"), "def",
|
| + PageTransition::QUALIFIER_MASK);
|
| + TabNavigation nav2(0, GURL("http://google2.com"), GURL(),
|
| + ASCIIToUTF16("abcd"), "defg",
|
| + PageTransition::AUTO_BOOKMARK);
|
| +
|
| + helper_.PrepareTabInWindow(window_id, tab_id, 0, true);
|
| + UpdateNavigation(window_id, tab_id, nav1, 0, true);
|
| +
|
| + helper_.PrepareTabInWindow(window2_id, tab2_id, 0, false);
|
| + UpdateNavigation(window2_id, tab2_id, nav2, 0, true);
|
| +
|
| + ScopedVector<SessionWindow> windows;
|
| + ReadWindows(&(windows.get()));
|
| +
|
| + ASSERT_EQ(2U, windows->size());
|
| + int normal_index = windows[0]->type == Browser::TYPE_NORMAL ?
|
| + 0 : 1;
|
| + int popup_index = normal_index == 0 ? 1 : 0;
|
| + ASSERT_EQ(0, windows[normal_index]->selected_tab_index);
|
| + ASSERT_EQ(window_id.id(), windows[normal_index]->window_id.id());
|
| + ASSERT_EQ(1U, windows[normal_index]->tabs.size());
|
| +
|
| + SessionTab* tab = windows[normal_index]->tabs[0];
|
| + helper_.AssertTabEquals(window_id, tab_id, 0, 0, 1, *tab);
|
| + helper_.AssertNavigationEquals(nav1, tab->navigations[0]);
|
| +
|
| + ASSERT_EQ(0, windows[popup_index]->selected_tab_index);
|
| + ASSERT_EQ(window2_id.id(), windows[popup_index]->window_id.id());
|
| + ASSERT_EQ(1U, windows[popup_index]->tabs.size());
|
| +
|
| + tab = windows[popup_index]->tabs[0];
|
| + helper_.AssertTabEquals(window2_id, tab2_id, 0, 0, 1, *tab);
|
| + helper_.AssertNavigationEquals(nav2, tab->navigations[0]);
|
| +}
|
| +
|
| // Tests pruning from the front.
|
| TEST_F(SessionServiceTest, PruneFromFront) {
|
| const std::string base_url("http://google.com/");
|
|
|