| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "base/memory/scoped_vector.h" | 7 #include "base/memory/scoped_vector.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/scoped_temp_dir.h" | 9 #include "base/scoped_temp_dir.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 39 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 40 path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("SessionTestDirs")); | 40 path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("SessionTestDirs")); |
| 41 ASSERT_TRUE(file_util::CreateDirectory(path_)); | 41 ASSERT_TRUE(file_util::CreateDirectory(path_)); |
| 42 path_ = path_.AppendASCII(b); | 42 path_ = path_.AppendASCII(b); |
| 43 | 43 |
| 44 SessionService* session_service = new SessionService(path_); | 44 SessionService* session_service = new SessionService(path_); |
| 45 helper_.set_service(session_service); | 45 helper_.set_service(session_service); |
| 46 | 46 |
| 47 service()->SetWindowType(window_id, Browser::TYPE_TABBED); | 47 service()->SetWindowType(window_id, Browser::TYPE_TABBED); |
| 48 service()->SetWindowBounds(window_id, window_bounds, false); | 48 service()->SetWindowBounds(window_id, |
| 49 window_bounds, |
| 50 ui::SHOW_STATE_NORMAL); |
| 49 } | 51 } |
| 50 | 52 |
| 51 // Upon notification, increment the sync_save_count variable | 53 // Upon notification, increment the sync_save_count variable |
| 52 void Observe(int type, | 54 void Observe(int type, |
| 53 const NotificationSource& source, | 55 const NotificationSource& source, |
| 54 const NotificationDetails& details) { | 56 const NotificationDetails& details) { |
| 55 ASSERT_EQ(type, chrome::NOTIFICATION_SESSION_SERVICE_SAVED); | 57 ASSERT_EQ(type, chrome::NOTIFICATION_SESSION_SERVICE_SAVED); |
| 56 sync_save_count_++; | 58 sync_save_count_++; |
| 57 } | 59 } |
| 58 | 60 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 PageTransition::QUALIFIER_MASK); | 263 PageTransition::QUALIFIER_MASK); |
| 262 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), | 264 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), |
| 263 ASCIIToUTF16("abcd"), "defg", | 265 ASCIIToUTF16("abcd"), "defg", |
| 264 PageTransition::AUTO_BOOKMARK); | 266 PageTransition::AUTO_BOOKMARK); |
| 265 | 267 |
| 266 helper_.PrepareTabInWindow(window_id, tab1_id, 0, true); | 268 helper_.PrepareTabInWindow(window_id, tab1_id, 0, true); |
| 267 UpdateNavigation(window_id, tab1_id, nav1, 0, true); | 269 UpdateNavigation(window_id, tab1_id, nav1, 0, true); |
| 268 | 270 |
| 269 const gfx::Rect window2_bounds(3, 4, 5, 6); | 271 const gfx::Rect window2_bounds(3, 4, 5, 6); |
| 270 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); | 272 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); |
| 271 service()->SetWindowBounds(window2_id, window2_bounds, true); | 273 service()->SetWindowBounds(window2_id, |
| 274 window2_bounds, |
| 275 ui::SHOW_STATE_MAXIMIZED); |
| 272 helper_.PrepareTabInWindow(window2_id, tab2_id, 0, true); | 276 helper_.PrepareTabInWindow(window2_id, tab2_id, 0, true); |
| 273 UpdateNavigation(window2_id, tab2_id, nav2, 0, true); | 277 UpdateNavigation(window2_id, tab2_id, nav2, 0, true); |
| 274 | 278 |
| 275 ScopedVector<SessionWindow> windows; | 279 ScopedVector<SessionWindow> windows; |
| 276 ReadWindows(&(windows.get())); | 280 ReadWindows(&(windows.get())); |
| 277 | 281 |
| 278 ASSERT_EQ(2U, windows->size()); | 282 ASSERT_EQ(2U, windows->size()); |
| 279 ASSERT_EQ(0, windows[0]->selected_tab_index); | 283 ASSERT_EQ(0, windows[0]->selected_tab_index); |
| 280 ASSERT_EQ(0, windows[1]->selected_tab_index); | 284 ASSERT_EQ(0, windows[1]->selected_tab_index); |
| 281 ASSERT_EQ(1U, windows[0]->tabs.size()); | 285 ASSERT_EQ(1U, windows[0]->tabs.size()); |
| 282 ASSERT_EQ(1U, windows[1]->tabs.size()); | 286 ASSERT_EQ(1U, windows[1]->tabs.size()); |
| 283 | 287 |
| 284 SessionTab* rt1; | 288 SessionTab* rt1; |
| 285 SessionTab* rt2; | 289 SessionTab* rt2; |
| 286 if (windows[0]->window_id.id() == window_id.id()) { | 290 if (windows[0]->window_id.id() == window_id.id()) { |
| 287 ASSERT_EQ(window2_id.id(), windows[1]->window_id.id()); | 291 ASSERT_EQ(window2_id.id(), windows[1]->window_id.id()); |
| 288 ASSERT_FALSE(windows[0]->is_maximized); | 292 ASSERT_EQ(ui::SHOW_STATE_NORMAL, windows[0]->show_state); |
| 289 ASSERT_TRUE(windows[1]->is_maximized); | 293 ASSERT_EQ(ui::SHOW_STATE_MAXIMIZED, windows[1]->show_state); |
| 290 rt1 = windows[0]->tabs[0]; | 294 rt1 = windows[0]->tabs[0]; |
| 291 rt2 = windows[1]->tabs[0]; | 295 rt2 = windows[1]->tabs[0]; |
| 292 } else { | 296 } else { |
| 293 ASSERT_EQ(window2_id.id(), windows[0]->window_id.id()); | 297 ASSERT_EQ(window2_id.id(), windows[0]->window_id.id()); |
| 294 ASSERT_EQ(window_id.id(), windows[1]->window_id.id()); | 298 ASSERT_EQ(window_id.id(), windows[1]->window_id.id()); |
| 295 ASSERT_TRUE(windows[0]->is_maximized); | 299 ASSERT_EQ(ui::SHOW_STATE_MAXIMIZED, windows[0]->show_state); |
| 296 ASSERT_FALSE(windows[1]->is_maximized); | 300 ASSERT_EQ(ui::SHOW_STATE_NORMAL, windows[1]->show_state); |
| 297 rt1 = windows[1]->tabs[0]; | 301 rt1 = windows[1]->tabs[0]; |
| 298 rt2 = windows[0]->tabs[0]; | 302 rt2 = windows[0]->tabs[0]; |
| 299 } | 303 } |
| 300 SessionTab* tab = rt1; | 304 SessionTab* tab = rt1; |
| 301 helper_.AssertTabEquals(window_id, tab1_id, 0, 0, 1, *tab); | 305 helper_.AssertTabEquals(window_id, tab1_id, 0, 0, 1, *tab); |
| 302 helper_.AssertNavigationEquals(nav1, tab->navigations[0]); | 306 helper_.AssertNavigationEquals(nav1, tab->navigations[0]); |
| 303 | 307 |
| 304 tab = rt2; | 308 tab = rt2; |
| 305 helper_.AssertTabEquals(window2_id, tab2_id, 0, 0, 1, *tab); | 309 helper_.AssertTabEquals(window2_id, tab2_id, 0, 0, 1, *tab); |
| 306 helper_.AssertNavigationEquals(nav2, tab->navigations[0]); | 310 helper_.AssertNavigationEquals(nav2, tab->navigations[0]); |
| 307 } | 311 } |
| 308 | 312 |
| 309 TEST_F(SessionServiceTest, WindowWithNoTabsGetsPruned) { | 313 TEST_F(SessionServiceTest, WindowWithNoTabsGetsPruned) { |
| 310 SessionID window2_id; | 314 SessionID window2_id; |
| 311 SessionID tab1_id; | 315 SessionID tab1_id; |
| 312 SessionID tab2_id; | 316 SessionID tab2_id; |
| 313 | 317 |
| 314 TabNavigation nav1(0, GURL("http://google.com"), GURL(), | 318 TabNavigation nav1(0, GURL("http://google.com"), GURL(), |
| 315 ASCIIToUTF16("abc"), "def", | 319 ASCIIToUTF16("abc"), "def", |
| 316 PageTransition::QUALIFIER_MASK); | 320 PageTransition::QUALIFIER_MASK); |
| 317 | 321 |
| 318 helper_.PrepareTabInWindow(window_id, tab1_id, 0, true); | 322 helper_.PrepareTabInWindow(window_id, tab1_id, 0, true); |
| 319 UpdateNavigation(window_id, tab1_id, nav1, 0, true); | 323 UpdateNavigation(window_id, tab1_id, nav1, 0, true); |
| 320 | 324 |
| 321 const gfx::Rect window2_bounds(3, 4, 5, 6); | 325 const gfx::Rect window2_bounds(3, 4, 5, 6); |
| 322 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); | 326 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); |
| 323 service()->SetWindowBounds(window2_id, window2_bounds, false); | 327 service()->SetWindowBounds(window2_id, |
| 328 window2_bounds, |
| 329 ui::SHOW_STATE_NORMAL); |
| 324 helper_.PrepareTabInWindow(window2_id, tab2_id, 0, true); | 330 helper_.PrepareTabInWindow(window2_id, tab2_id, 0, true); |
| 325 | 331 |
| 326 ScopedVector<SessionWindow> windows; | 332 ScopedVector<SessionWindow> windows; |
| 327 ReadWindows(&(windows.get())); | 333 ReadWindows(&(windows.get())); |
| 328 | 334 |
| 329 ASSERT_EQ(1U, windows->size()); | 335 ASSERT_EQ(1U, windows->size()); |
| 330 ASSERT_EQ(0, windows[0]->selected_tab_index); | 336 ASSERT_EQ(0, windows[0]->selected_tab_index); |
| 331 ASSERT_EQ(1U, windows[0]->tabs.size()); | 337 ASSERT_EQ(1U, windows[0]->tabs.size()); |
| 332 ASSERT_EQ(window_id.id(), windows[0]->window_id.id()); | 338 ASSERT_EQ(window_id.id(), windows[0]->window_id.id()); |
| 333 | 339 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 helper_.AssertNavigationEquals(nav2, tab->navigations[0]); | 379 helper_.AssertNavigationEquals(nav2, tab->navigations[0]); |
| 374 } | 380 } |
| 375 | 381 |
| 376 TEST_F(SessionServiceTest, WindowCloseCommittedAfterNavigate) { | 382 TEST_F(SessionServiceTest, WindowCloseCommittedAfterNavigate) { |
| 377 SessionID window2_id; | 383 SessionID window2_id; |
| 378 SessionID tab_id; | 384 SessionID tab_id; |
| 379 SessionID tab2_id; | 385 SessionID tab2_id; |
| 380 ASSERT_NE(window2_id.id(), window_id.id()); | 386 ASSERT_NE(window2_id.id(), window_id.id()); |
| 381 | 387 |
| 382 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); | 388 service()->SetWindowType(window2_id, Browser::TYPE_TABBED); |
| 383 service()->SetWindowBounds(window2_id, window_bounds, false); | 389 service()->SetWindowBounds(window2_id, |
| 390 window_bounds, |
| 391 ui::SHOW_STATE_NORMAL); |
| 384 | 392 |
| 385 TabNavigation nav1(0, GURL("http://google.com"), GURL(), | 393 TabNavigation nav1(0, GURL("http://google.com"), GURL(), |
| 386 ASCIIToUTF16("abc"), "def", | 394 ASCIIToUTF16("abc"), "def", |
| 387 PageTransition::QUALIFIER_MASK); | 395 PageTransition::QUALIFIER_MASK); |
| 388 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), | 396 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), |
| 389 ASCIIToUTF16("abcd"), "defg", | 397 ASCIIToUTF16("abcd"), "defg", |
| 390 PageTransition::AUTO_BOOKMARK); | 398 PageTransition::AUTO_BOOKMARK); |
| 391 | 399 |
| 392 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); | 400 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); |
| 393 UpdateNavigation(window_id, tab_id, nav1, 0, true); | 401 UpdateNavigation(window_id, tab_id, nav1, 0, true); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 416 TEST_F(SessionServiceTest, IgnorePopups) { | 424 TEST_F(SessionServiceTest, IgnorePopups) { |
| 417 if (browser_defaults::kRestorePopups) | 425 if (browser_defaults::kRestorePopups) |
| 418 return; // This test is only applicable if popups aren't restored. | 426 return; // This test is only applicable if popups aren't restored. |
| 419 | 427 |
| 420 SessionID window2_id; | 428 SessionID window2_id; |
| 421 SessionID tab_id; | 429 SessionID tab_id; |
| 422 SessionID tab2_id; | 430 SessionID tab2_id; |
| 423 ASSERT_NE(window2_id.id(), window_id.id()); | 431 ASSERT_NE(window2_id.id(), window_id.id()); |
| 424 | 432 |
| 425 service()->SetWindowType(window2_id, Browser::TYPE_POPUP); | 433 service()->SetWindowType(window2_id, Browser::TYPE_POPUP); |
| 426 service()->SetWindowBounds(window2_id, window_bounds, false); | 434 service()->SetWindowBounds(window2_id, |
| 435 window_bounds, |
| 436 ui::SHOW_STATE_NORMAL); |
| 427 | 437 |
| 428 TabNavigation nav1(0, GURL("http://google.com"), GURL(), | 438 TabNavigation nav1(0, GURL("http://google.com"), GURL(), |
| 429 ASCIIToUTF16("abc"), "def", | 439 ASCIIToUTF16("abc"), "def", |
| 430 PageTransition::QUALIFIER_MASK); | 440 PageTransition::QUALIFIER_MASK); |
| 431 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), | 441 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), |
| 432 ASCIIToUTF16("abcd"), "defg", | 442 ASCIIToUTF16("abcd"), "defg", |
| 433 PageTransition::AUTO_BOOKMARK); | 443 PageTransition::AUTO_BOOKMARK); |
| 434 | 444 |
| 435 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); | 445 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); |
| 436 UpdateNavigation(window_id, tab_id, nav1, 0, true); | 446 UpdateNavigation(window_id, tab_id, nav1, 0, true); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 455 TEST_F(SessionServiceTest, RestorePopup) { | 465 TEST_F(SessionServiceTest, RestorePopup) { |
| 456 if (!browser_defaults::kRestorePopups) | 466 if (!browser_defaults::kRestorePopups) |
| 457 return; // This test is only applicable if popups are restored. | 467 return; // This test is only applicable if popups are restored. |
| 458 | 468 |
| 459 SessionID window2_id; | 469 SessionID window2_id; |
| 460 SessionID tab_id; | 470 SessionID tab_id; |
| 461 SessionID tab2_id; | 471 SessionID tab2_id; |
| 462 ASSERT_NE(window2_id.id(), window_id.id()); | 472 ASSERT_NE(window2_id.id(), window_id.id()); |
| 463 | 473 |
| 464 service()->SetWindowType(window2_id, Browser::TYPE_POPUP); | 474 service()->SetWindowType(window2_id, Browser::TYPE_POPUP); |
| 465 service()->SetWindowBounds(window2_id, window_bounds, false); | 475 service()->SetWindowBounds(window2_id, |
| 476 window_bounds, |
| 477 ui::SHOW_STATE_NORMAL); |
| 466 | 478 |
| 467 TabNavigation nav1(0, GURL("http://google.com"), GURL(), | 479 TabNavigation nav1(0, GURL("http://google.com"), GURL(), |
| 468 ASCIIToUTF16("abc"), "def", | 480 ASCIIToUTF16("abc"), "def", |
| 469 PageTransition::QUALIFIER_MASK); | 481 PageTransition::QUALIFIER_MASK); |
| 470 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), | 482 TabNavigation nav2(0, GURL("http://google2.com"), GURL(), |
| 471 ASCIIToUTF16("abcd"), "defg", | 483 ASCIIToUTF16("abcd"), "defg", |
| 472 PageTransition::AUTO_BOOKMARK); | 484 PageTransition::AUTO_BOOKMARK); |
| 473 | 485 |
| 474 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); | 486 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); |
| 475 UpdateNavigation(window_id, tab_id, nav1, 0, true); | 487 UpdateNavigation(window_id, tab_id, nav1, 0, true); |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 653 | 665 |
| 654 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); | 666 helper_.PrepareTabInWindow(window_id, tab_id, 0, true); |
| 655 UpdateNavigation(window_id, tab_id, nav1, 0, true); | 667 UpdateNavigation(window_id, tab_id, nav1, 0, true); |
| 656 service()->TabClosed(window_id, tab_id, true); | 668 service()->TabClosed(window_id, tab_id, true); |
| 657 | 669 |
| 658 ScopedVector<SessionWindow> windows; | 670 ScopedVector<SessionWindow> windows; |
| 659 ReadWindows(&(windows.get())); | 671 ReadWindows(&(windows.get())); |
| 660 | 672 |
| 661 ASSERT_TRUE(windows->empty()); | 673 ASSERT_TRUE(windows->empty()); |
| 662 } | 674 } |
| OLD | NEW |