| Index: components/sync_sessions/sessions_sync_manager_unittest.cc
|
| diff --git a/components/sync_sessions/sessions_sync_manager_unittest.cc b/components/sync_sessions/sessions_sync_manager_unittest.cc
|
| index 41c3eada3c6a8e9a64e965130ff97633ca2e2ffa..26eac1b51362afe702b56cbadd162e82a698b333 100644
|
| --- a/components/sync_sessions/sessions_sync_manager_unittest.cc
|
| +++ b/components/sync_sessions/sessions_sync_manager_unittest.cc
|
| @@ -1695,7 +1695,8 @@ TEST_F(SessionsSyncManagerTest, ProcessForeignDeleteTabsWithReusedNodeIds) {
|
|
|
| TEST_F(SessionsSyncManagerTest, AssociationReusesNodes) {
|
| SyncChangeList changes;
|
| - AddTab(AddWindow()->GetSessionId(), kFoo1);
|
| + TestSyncedWindowDelegate* window = AddWindow();
|
| + TestSyncedTabDelegate* tab = AddTab(window->GetSessionId(), kFoo1);
|
| InitWithSyncDataTakeOutput(SyncDataList(), &changes);
|
| ASSERT_TRUE(ChangeTypeMatches(changes,
|
| {SyncChange::ACTION_ADD, SyncChange::ACTION_ADD,
|
| @@ -1728,6 +1729,24 @@ TEST_F(SessionsSyncManagerTest, AssociationReusesNodes) {
|
| VerifyLocalTabChange(changes[0], 1, kFoo1);
|
| EXPECT_EQ(tab_node_id,
|
| changes[0].sync_data().GetSpecifics().session().tab_node_id());
|
| + changes.clear();
|
| +
|
| + // Update the original tab. Ensure the same tab node is updated.
|
| + NavigateTab(tab, kFoo2);
|
| + FilterOutLocalHeaderChanges(&changes);
|
| + ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE}));
|
| + VerifyLocalTabChange(changes[0], 2, kFoo2);
|
| + EXPECT_EQ(tab_node_id,
|
| + changes[0].sync_data().GetSpecifics().session().tab_node_id());
|
| + changes.clear();
|
| +
|
| + // Add a new tab. It should reuse the second tab node.
|
| + AddTab(window->GetSessionId(), kBar1);
|
| + FilterOutLocalHeaderChanges(&changes);
|
| + ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE}));
|
| + VerifyLocalTabChange(changes[0], 1, kBar1);
|
| + EXPECT_EQ(tab_node_id + 1,
|
| + changes[0].sync_data().GetSpecifics().session().tab_node_id());
|
| }
|
|
|
| // Ensure that the merge process deletes a tab node without a tab id.
|
|
|