| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 "components/sync_sessions/synced_session_tracker.h" | 5 #include "components/sync_sessions/synced_session_tracker.h" |
| 6 | 6 |
| 7 #include "base/rand_util.h" | 7 #include "base/rand_util.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "components/sessions/core/serialized_navigation_entry_test_helper.h" | 10 #include "components/sessions/core/serialized_navigation_entry_test_helper.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 SyncedSession* session = GetTracker()->GetSession(kTag); | 62 SyncedSession* session = GetTracker()->GetSession(kTag); |
| 63 ASSERT_EQ(1U, session->windows.size()); | 63 ASSERT_EQ(1U, session->windows.size()); |
| 64 // Should clean up memory on its own. | 64 // Should clean up memory on its own. |
| 65 } | 65 } |
| 66 | 66 |
| 67 TEST_F(SyncedSessionTrackerTest, PutTabInWindow) { | 67 TEST_F(SyncedSessionTrackerTest, PutTabInWindow) { |
| 68 GetTracker()->PutWindowInSession(kTag, 10); | 68 GetTracker()->PutWindowInSession(kTag, 10); |
| 69 GetTracker()->PutTabInWindow(kTag, 10, 15); // win id 10, tab id 15 | 69 GetTracker()->PutTabInWindow(kTag, 10, 15); // win id 10, tab id 15 |
| 70 SyncedSession* session = GetTracker()->GetSession(kTag); | 70 SyncedSession* session = GetTracker()->GetSession(kTag); |
| 71 ASSERT_EQ(1U, session->windows.size()); | 71 ASSERT_EQ(1U, session->windows.size()); |
| 72 ASSERT_EQ(1U, session->windows[10]->tabs.size()); | 72 ASSERT_EQ(1U, session->windows[10]->wrapped_window.tabs.size()); |
| 73 ASSERT_EQ(GetTracker()->GetTab(kTag, 15), | 73 ASSERT_EQ(GetTracker()->GetTab(kTag, 15), |
| 74 session->windows[10]->tabs[0].get()); | 74 session->windows[10]->wrapped_window.tabs[0].get()); |
| 75 // Should clean up memory on its own. | 75 // Should clean up memory on its own. |
| 76 } | 76 } |
| 77 | 77 |
| 78 TEST_F(SyncedSessionTrackerTest, LookupAllForeignSessions) { | 78 TEST_F(SyncedSessionTrackerTest, LookupAllForeignSessions) { |
| 79 std::vector<const SyncedSession*> sessions; | 79 std::vector<const SyncedSession*> sessions; |
| 80 ASSERT_FALSE(GetTracker()->LookupAllForeignSessions( | 80 ASSERT_FALSE(GetTracker()->LookupAllForeignSessions( |
| 81 &sessions, SyncedSessionTracker::PRESENTABLE)); | 81 &sessions, SyncedSessionTracker::PRESENTABLE)); |
| 82 GetTracker()->GetSession(kTag); | 82 GetTracker()->GetSession(kTag); |
| 83 GetTracker()->PutWindowInSession(kTag, 0); | 83 GetTracker()->PutWindowInSession(kTag, 0); |
| 84 GetTracker()->PutTabInWindow(kTag, 0, 15); | 84 GetTracker()->PutTabInWindow(kTag, 0, 15); |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 SyncedSession* session1 = GetTracker()->GetSession(kTag); | 288 SyncedSession* session1 = GetTracker()->GetSession(kTag); |
| 289 GetTracker()->PutWindowInSession(kTag, 0); | 289 GetTracker()->PutWindowInSession(kTag, 0); |
| 290 GetTracker()->PutTabInWindow(kTag, 0, 0); | 290 GetTracker()->PutTabInWindow(kTag, 0, 0); |
| 291 GetTracker()->PutTabInWindow(kTag, 0, 1); | 291 GetTracker()->PutTabInWindow(kTag, 0, 1); |
| 292 GetTracker()->GetTab(kTag, 2)->window_id.set_id(0); // Will be unmapped. | 292 GetTracker()->GetTab(kTag, 2)->window_id.set_id(0); // Will be unmapped. |
| 293 GetTracker()->GetTab(kTag, 3)->window_id.set_id(0); // Will be unmapped. | 293 GetTracker()->GetTab(kTag, 3)->window_id.set_id(0); // Will be unmapped. |
| 294 GetTracker()->PutWindowInSession(kTag, 1); | 294 GetTracker()->PutWindowInSession(kTag, 1); |
| 295 GetTracker()->PutTabInWindow(kTag, 1, 4); | 295 GetTracker()->PutTabInWindow(kTag, 1, 4); |
| 296 GetTracker()->PutTabInWindow(kTag, 1, 5); | 296 GetTracker()->PutTabInWindow(kTag, 1, 5); |
| 297 ASSERT_EQ(2U, session1->windows.size()); | 297 ASSERT_EQ(2U, session1->windows.size()); |
| 298 ASSERT_EQ(2U, session1->windows[0]->tabs.size()); | 298 ASSERT_EQ(2U, session1->windows[0]->wrapped_window.tabs.size()); |
| 299 ASSERT_EQ(2U, session1->windows[1]->tabs.size()); | 299 ASSERT_EQ(2U, session1->windows[1]->wrapped_window.tabs.size()); |
| 300 ASSERT_EQ(6U, GetTracker()->num_synced_tabs(kTag)); | 300 ASSERT_EQ(6U, GetTracker()->num_synced_tabs(kTag)); |
| 301 | 301 |
| 302 // Create a session that should not be affected. | 302 // Create a session that should not be affected. |
| 303 SyncedSession* session2 = GetTracker()->GetSession(kTag2); | 303 SyncedSession* session2 = GetTracker()->GetSession(kTag2); |
| 304 GetTracker()->PutWindowInSession(kTag2, 2); | 304 GetTracker()->PutWindowInSession(kTag2, 2); |
| 305 GetTracker()->PutTabInWindow(kTag2, 2, 1); | 305 GetTracker()->PutTabInWindow(kTag2, 2, 1); |
| 306 ASSERT_EQ(1U, session2->windows.size()); | 306 ASSERT_EQ(1U, session2->windows.size()); |
| 307 ASSERT_EQ(1U, session2->windows[2]->tabs.size()); | 307 ASSERT_EQ(1U, session2->windows[2]->wrapped_window.tabs.size()); |
| 308 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); | 308 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); |
| 309 | 309 |
| 310 // Reset tracking and get the current windows/tabs. | 310 // Reset tracking and get the current windows/tabs. |
| 311 // We simulate moving a tab from one window to another, then closing the | 311 // We simulate moving a tab from one window to another, then closing the |
| 312 // first window (including its one remaining tab), and opening a new tab | 312 // first window (including its one remaining tab), and opening a new tab |
| 313 // on the remaining window. | 313 // on the remaining window. |
| 314 | 314 |
| 315 // New tab, arrived before meta node so unmapped. | 315 // New tab, arrived before meta node so unmapped. |
| 316 GetTracker()->GetTab(kTag, 6); | 316 GetTracker()->GetTab(kTag, 6); |
| 317 GetTracker()->ResetSessionTracking(kTag); | 317 GetTracker()->ResetSessionTracking(kTag); |
| 318 GetTracker()->PutWindowInSession(kTag, 0); | 318 GetTracker()->PutWindowInSession(kTag, 0); |
| 319 GetTracker()->PutTabInWindow(kTag, 0, 0); | 319 GetTracker()->PutTabInWindow(kTag, 0, 0); |
| 320 // Tab 1 is closed. | 320 // Tab 1 is closed. |
| 321 GetTracker()->PutTabInWindow(kTag, 0, 2); // No longer unmapped. | 321 GetTracker()->PutTabInWindow(kTag, 0, 2); // No longer unmapped. |
| 322 // Tab 3 was unmapped and does not get used. | 322 // Tab 3 was unmapped and does not get used. |
| 323 GetTracker()->PutTabInWindow(kTag, 0, 4); // Moved from window 1. | 323 GetTracker()->PutTabInWindow(kTag, 0, 4); // Moved from window 1. |
| 324 // Window 1 was closed, along with tab 5. | 324 // Window 1 was closed, along with tab 5. |
| 325 GetTracker()->PutTabInWindow(kTag, 0, 6); // No longer unmapped. | 325 GetTracker()->PutTabInWindow(kTag, 0, 6); // No longer unmapped. |
| 326 // Session 2 should not be affected. | 326 // Session 2 should not be affected. |
| 327 GetTracker()->CleanupForeignSession(kTag); | 327 GetTracker()->CleanupForeignSession(kTag); |
| 328 | 328 |
| 329 // Verify that only those parts of the session not owned have been removed. | 329 // Verify that only those parts of the session not owned have been removed. |
| 330 ASSERT_EQ(1U, session1->windows.size()); | 330 ASSERT_EQ(1U, session1->windows.size()); |
| 331 ASSERT_EQ(4U, session1->windows[0]->tabs.size()); | 331 ASSERT_EQ(4U, session1->windows[0]->wrapped_window.tabs.size()); |
| 332 ASSERT_EQ(1U, session2->windows.size()); | 332 ASSERT_EQ(1U, session2->windows.size()); |
| 333 ASSERT_EQ(1U, session2->windows[2]->tabs.size()); | 333 ASSERT_EQ(1U, session2->windows[2]->wrapped_window.tabs.size()); |
| 334 ASSERT_EQ(2U, GetTracker()->num_synced_sessions()); | 334 ASSERT_EQ(2U, GetTracker()->num_synced_sessions()); |
| 335 ASSERT_EQ(4U, GetTracker()->num_synced_tabs(kTag)); | 335 ASSERT_EQ(4U, GetTracker()->num_synced_tabs(kTag)); |
| 336 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); | 336 ASSERT_EQ(1U, GetTracker()->num_synced_tabs(kTag2)); |
| 337 | 337 |
| 338 // All memory should be properly deallocated by destructor for the | 338 // All memory should be properly deallocated by destructor for the |
| 339 // SyncedSessionTracker. | 339 // SyncedSessionTracker. |
| 340 } | 340 } |
| 341 | 341 |
| 342 TEST_F(SyncedSessionTrackerTest, DeleteForeignTab) { | 342 TEST_F(SyncedSessionTrackerTest, DeleteForeignTab) { |
| 343 int tab_node_id_1 = 1; | 343 int tab_node_id_1 = 1; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 433 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 434 | 434 |
| 435 // Map it to a window with the same tab id as it was created with. | 435 // Map it to a window with the same tab id as it was created with. |
| 436 GetTracker()->ResetSessionTracking(kTag); | 436 GetTracker()->ResetSessionTracking(kTag); |
| 437 GetTracker()->PutWindowInSession(kTag, kWindow1); | 437 GetTracker()->PutWindowInSession(kTag, kWindow1); |
| 438 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); | 438 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); |
| 439 GetTracker()->CleanupLocalTabs(&free_node_ids); | 439 GetTracker()->CleanupLocalTabs(&free_node_ids); |
| 440 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 440 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 441 SyncedSession* session = GetTracker()->GetSession(kTag); | 441 SyncedSession* session = GetTracker()->GetSession(kTag); |
| 442 ASSERT_EQ(1U, session->windows.size()); | 442 ASSERT_EQ(1U, session->windows.size()); |
| 443 ASSERT_EQ(1U, session->windows[kWindow1]->tabs.size()); | 443 ASSERT_EQ(1U, session->windows[kWindow1]->wrapped_window.tabs.size()); |
| 444 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab1), | 444 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab1), |
| 445 session->windows[kWindow1]->tabs[0].get()); | 445 session->windows[kWindow1]->wrapped_window.tabs[0].get()); |
| 446 | 446 |
| 447 // Then reassociate with a new tab id. | 447 // Then reassociate with a new tab id. |
| 448 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); | 448 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); |
| 449 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); | 449 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); |
| 450 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 450 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 451 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 451 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 452 | 452 |
| 453 // Reset tracking, and put the new tab id into the window. | 453 // Reset tracking, and put the new tab id into the window. |
| 454 GetTracker()->ResetSessionTracking(kTag); | 454 GetTracker()->ResetSessionTracking(kTag); |
| 455 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 455 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 456 GetTracker()->PutWindowInSession(kTag, kWindow1); | 456 GetTracker()->PutWindowInSession(kTag, kWindow1); |
| 457 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); | 457 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); |
| 458 GetTracker()->CleanupLocalTabs(&free_node_ids); | 458 GetTracker()->CleanupLocalTabs(&free_node_ids); |
| 459 EXPECT_TRUE(free_node_ids.empty()); | 459 EXPECT_TRUE(free_node_ids.empty()); |
| 460 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 460 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 461 | 461 |
| 462 // Now that it's been mapped, it should be accessible both via the | 462 // Now that it's been mapped, it should be accessible both via the |
| 463 // GetSession as well as the GetTab. | 463 // GetSession as well as the GetTab. |
| 464 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), | 464 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), |
| 465 session->windows[kWindow1]->tabs[0].get()); | 465 session->windows[kWindow1]->wrapped_window.tabs[0].get()); |
| 466 ASSERT_EQ(session->tab_node_ids.size(), | 466 ASSERT_EQ(session->tab_node_ids.size(), |
| 467 session->tab_node_ids.count(kTabNode)); | 467 session->tab_node_ids.count(kTabNode)); |
| 468 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); | 468 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); |
| 469 } | 469 } |
| 470 | 470 |
| 471 TEST_F(SyncedSessionTrackerTest, ReassociateTabMappedTwice) { | 471 TEST_F(SyncedSessionTrackerTest, ReassociateTabMappedTwice) { |
| 472 std::set<int> free_node_ids; | 472 std::set<int> free_node_ids; |
| 473 | 473 |
| 474 // First create the tab normally. | 474 // First create the tab normally. |
| 475 GetTracker()->SetLocalSessionTag(kTag); | 475 GetTracker()->SetLocalSessionTag(kTag); |
| 476 EXPECT_FALSE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); | 476 EXPECT_FALSE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); |
| 477 GetTracker()->ReassociateLocalTab(kTabNode, kTab1); | 477 GetTracker()->ReassociateLocalTab(kTabNode, kTab1); |
| 478 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); | 478 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); |
| 479 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 479 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 480 | 480 |
| 481 // Map it to a window with the same tab id as it was created with. | 481 // Map it to a window with the same tab id as it was created with. |
| 482 GetTracker()->ResetSessionTracking(kTag); | 482 GetTracker()->ResetSessionTracking(kTag); |
| 483 GetTracker()->PutWindowInSession(kTag, kWindow1); | 483 GetTracker()->PutWindowInSession(kTag, kWindow1); |
| 484 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); | 484 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); |
| 485 GetTracker()->CleanupLocalTabs(&free_node_ids); | 485 GetTracker()->CleanupLocalTabs(&free_node_ids); |
| 486 EXPECT_TRUE(free_node_ids.empty()); | 486 EXPECT_TRUE(free_node_ids.empty()); |
| 487 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 487 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 488 SyncedSession* session = GetTracker()->GetSession(kTag); | 488 SyncedSession* session = GetTracker()->GetSession(kTag); |
| 489 ASSERT_EQ(1U, session->windows.size()); | 489 ASSERT_EQ(1U, session->windows.size()); |
| 490 ASSERT_EQ(1U, session->windows[kWindow1]->tabs.size()); | 490 ASSERT_EQ(1U, session->windows[kWindow1]->wrapped_window.tabs.size()); |
| 491 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab1), | 491 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab1), |
| 492 session->windows[kWindow1]->tabs[0].get()); | 492 session->windows[kWindow1]->wrapped_window.tabs[0].get()); |
| 493 | 493 |
| 494 // Then reassociate with a new tab id. | 494 // Then reassociate with a new tab id. |
| 495 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); | 495 GetTracker()->ReassociateLocalTab(kTabNode, kTab2); |
| 496 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); | 496 EXPECT_TRUE(GetTracker()->IsLocalTabNodeAssociated(kTabNode)); |
| 497 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 497 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 498 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); | 498 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab1)); |
| 499 | 499 |
| 500 // Tab 1 should no longer be associated with any SessionTab object. At this | 500 // Tab 1 should no longer be associated with any SessionTab object. At this |
| 501 // point there's no need to verify it's unmapped state. | 501 // point there's no need to verify it's unmapped state. |
| 502 const sessions::SessionTab* tab_ptr = nullptr; | 502 const sessions::SessionTab* tab_ptr = nullptr; |
| 503 EXPECT_FALSE(GetTracker()->LookupSessionTab(kTag, kTab1, &tab_ptr)); | 503 EXPECT_FALSE(GetTracker()->LookupSessionTab(kTag, kTab1, &tab_ptr)); |
| 504 | 504 |
| 505 // Reset tracking and add back both the old tab and the new tab (both of which | 505 // Reset tracking and add back both the old tab and the new tab (both of which |
| 506 // refer to the same tab node id). | 506 // refer to the same tab node id). |
| 507 GetTracker()->ResetSessionTracking(kTag); | 507 GetTracker()->ResetSessionTracking(kTag); |
| 508 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 508 EXPECT_TRUE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 509 GetTracker()->PutWindowInSession(kTag, kWindow1); | 509 GetTracker()->PutWindowInSession(kTag, kWindow1); |
| 510 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); | 510 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab1); |
| 511 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); | 511 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); |
| 512 GetTracker()->CleanupLocalTabs(&free_node_ids); | 512 GetTracker()->CleanupLocalTabs(&free_node_ids); |
| 513 EXPECT_TRUE(free_node_ids.empty()); | 513 EXPECT_TRUE(free_node_ids.empty()); |
| 514 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 514 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 515 | 515 |
| 516 // Now that it's been mapped, it should be accessible both via the | 516 // Now that it's been mapped, it should be accessible both via the |
| 517 // GetSession as well as the GetTab. | 517 // GetSession as well as the GetTab. |
| 518 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab2), | 518 EXPECT_EQ(GetTracker()->GetTab(kTag, kTab2), |
| 519 session->windows[kWindow1]->tabs[1].get()); | 519 session->windows[kWindow1]->wrapped_window.tabs[1].get()); |
| 520 EXPECT_EQ(session->tab_node_ids.size(), | 520 EXPECT_EQ(session->tab_node_ids.size(), |
| 521 session->tab_node_ids.count(kTabNode)); | 521 session->tab_node_ids.count(kTabNode)); |
| 522 EXPECT_EQ(1U, GetTabNodePool()->Capacity()); | 522 EXPECT_EQ(1U, GetTabNodePool()->Capacity()); |
| 523 | 523 |
| 524 // Attempting to access the original tab will create a new SessionTab object. | 524 // Attempting to access the original tab will create a new SessionTab object. |
| 525 EXPECT_NE(GetTracker()->GetTab(kTag, kTab1), | 525 EXPECT_NE(GetTracker()->GetTab(kTag, kTab1), |
| 526 GetTracker()->GetTab(kTag, kTab2)); | 526 GetTracker()->GetTab(kTag, kTab2)); |
| 527 int tab_node_id = -1; | 527 int tab_node_id = -1; |
| 528 EXPECT_FALSE(GetTracker()->GetTabNodeFromLocalTabId(kTab1, &tab_node_id)); | 528 EXPECT_FALSE(GetTracker()->GetTabNodeFromLocalTabId(kTab1, &tab_node_id)); |
| 529 } | 529 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 547 GetTracker()->PutWindowInSession(kTag, kWindow1); | 547 GetTracker()->PutWindowInSession(kTag, kWindow1); |
| 548 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); | 548 GetTracker()->PutTabInWindow(kTag, kWindow1, kTab2); |
| 549 GetTracker()->CleanupLocalTabs(&free_node_ids); | 549 GetTracker()->CleanupLocalTabs(&free_node_ids); |
| 550 EXPECT_TRUE(free_node_ids.empty()); | 550 EXPECT_TRUE(free_node_ids.empty()); |
| 551 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); | 551 EXPECT_FALSE(GetTracker()->IsTabUnmappedForTesting(kTab2)); |
| 552 | 552 |
| 553 // Now that it's been mapped, it should be accessible both via the | 553 // Now that it's been mapped, it should be accessible both via the |
| 554 // GetSession as well as GetTab. | 554 // GetSession as well as GetTab. |
| 555 SyncedSession* session = GetTracker()->GetSession(kTag); | 555 SyncedSession* session = GetTracker()->GetSession(kTag); |
| 556 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), | 556 ASSERT_EQ(GetTracker()->GetTab(kTag, kTab2), |
| 557 session->windows[kWindow1]->tabs[0].get()); | 557 session->windows[kWindow1]->wrapped_window.tabs[0].get()); |
| 558 ASSERT_EQ(session->tab_node_ids.size(), | 558 ASSERT_EQ(session->tab_node_ids.size(), |
| 559 session->tab_node_ids.count(kTabNode)); | 559 session->tab_node_ids.count(kTabNode)); |
| 560 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); | 560 ASSERT_EQ(1U, GetTabNodePool()->Capacity()); |
| 561 } | 561 } |
| 562 | 562 |
| 563 } // namespace sync_sessions | 563 } // namespace sync_sessions |
| OLD | NEW |