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

Unified Diff: components/sync_sessions/sessions_sync_manager_unittest.cc

Issue 2856913007: [Sync] Handle reassociation of tabs where the old tab is already mapped. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698