| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/sessions_sync_manager.h" | 5 #include "components/sync_sessions/sessions_sync_manager.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1688 &tab_node_ids); | 1688 &tab_node_ids); |
| 1689 EXPECT_EQ(1U, tab_node_ids.size()); | 1689 EXPECT_EQ(1U, tab_node_ids.size()); |
| 1690 EXPECT_TRUE(tab_node_ids.find(tab_node_id_unique) != tab_node_ids.end()); | 1690 EXPECT_TRUE(tab_node_ids.find(tab_node_id_unique) != tab_node_ids.end()); |
| 1691 | 1691 |
| 1692 manager()->DoGarbageCollection(); | 1692 manager()->DoGarbageCollection(); |
| 1693 EXPECT_EQ(1U, output.size()); | 1693 EXPECT_EQ(1U, output.size()); |
| 1694 } | 1694 } |
| 1695 | 1695 |
| 1696 TEST_F(SessionsSyncManagerTest, AssociationReusesNodes) { | 1696 TEST_F(SessionsSyncManagerTest, AssociationReusesNodes) { |
| 1697 SyncChangeList changes; | 1697 SyncChangeList changes; |
| 1698 AddTab(AddWindow()->GetSessionId(), kFoo1); | 1698 TestSyncedWindowDelegate* window = AddWindow(); |
| 1699 TestSyncedTabDelegate* tab = AddTab(window->GetSessionId(), kFoo1); |
| 1699 InitWithSyncDataTakeOutput(SyncDataList(), &changes); | 1700 InitWithSyncDataTakeOutput(SyncDataList(), &changes); |
| 1700 ASSERT_TRUE(ChangeTypeMatches(changes, | 1701 ASSERT_TRUE(ChangeTypeMatches(changes, |
| 1701 {SyncChange::ACTION_ADD, SyncChange::ACTION_ADD, | 1702 {SyncChange::ACTION_ADD, SyncChange::ACTION_ADD, |
| 1702 SyncChange::ACTION_UPDATE})); | 1703 SyncChange::ACTION_UPDATE})); |
| 1703 ASSERT_TRUE(changes[1].sync_data().GetSpecifics().session().has_tab()); | 1704 ASSERT_TRUE(changes[1].sync_data().GetSpecifics().session().has_tab()); |
| 1704 int tab_node_id = | 1705 int tab_node_id = |
| 1705 changes[1].sync_data().GetSpecifics().session().tab_node_id(); | 1706 changes[1].sync_data().GetSpecifics().session().tab_node_id(); |
| 1706 | 1707 |
| 1707 // Pass back the previous tab and header nodes at association, along with a | 1708 // Pass back the previous tab and header nodes at association, along with a |
| 1708 // second tab node (with a rewritten tab node id). | 1709 // second tab node (with a rewritten tab node id). |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1721 manager()->StopSyncing(syncer::SESSIONS); | 1722 manager()->StopSyncing(syncer::SESSIONS); |
| 1722 InitWithSyncDataTakeOutput(in, &changes); | 1723 InitWithSyncDataTakeOutput(in, &changes); |
| 1723 | 1724 |
| 1724 // No tab entities should be deleted. The original (lower) tab node id should | 1725 // No tab entities should be deleted. The original (lower) tab node id should |
| 1725 // be reused for association. | 1726 // be reused for association. |
| 1726 FilterOutLocalHeaderChanges(&changes); | 1727 FilterOutLocalHeaderChanges(&changes); |
| 1727 ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE})); | 1728 ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE})); |
| 1728 VerifyLocalTabChange(changes[0], 1, kFoo1); | 1729 VerifyLocalTabChange(changes[0], 1, kFoo1); |
| 1729 EXPECT_EQ(tab_node_id, | 1730 EXPECT_EQ(tab_node_id, |
| 1730 changes[0].sync_data().GetSpecifics().session().tab_node_id()); | 1731 changes[0].sync_data().GetSpecifics().session().tab_node_id()); |
| 1732 changes.clear(); |
| 1733 |
| 1734 // Update the original tab. Ensure the same tab node is updated. |
| 1735 NavigateTab(tab, kFoo2); |
| 1736 FilterOutLocalHeaderChanges(&changes); |
| 1737 ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE})); |
| 1738 VerifyLocalTabChange(changes[0], 2, kFoo2); |
| 1739 EXPECT_EQ(tab_node_id, |
| 1740 changes[0].sync_data().GetSpecifics().session().tab_node_id()); |
| 1741 changes.clear(); |
| 1742 |
| 1743 // Add a new tab. It should reuse the second tab node. |
| 1744 AddTab(window->GetSessionId(), kBar1); |
| 1745 FilterOutLocalHeaderChanges(&changes); |
| 1746 ASSERT_TRUE(ChangeTypeMatches(changes, {SyncChange::ACTION_UPDATE})); |
| 1747 VerifyLocalTabChange(changes[0], 1, kBar1); |
| 1748 EXPECT_EQ(tab_node_id + 1, |
| 1749 changes[0].sync_data().GetSpecifics().session().tab_node_id()); |
| 1731 } | 1750 } |
| 1732 | 1751 |
| 1733 // Ensure that the merge process deletes a tab node without a tab id. | 1752 // Ensure that the merge process deletes a tab node without a tab id. |
| 1734 TEST_F(SessionsSyncManagerTest, MergeDeletesTabMissingTabId) { | 1753 TEST_F(SessionsSyncManagerTest, MergeDeletesTabMissingTabId) { |
| 1735 SyncChangeList changes; | 1754 SyncChangeList changes; |
| 1736 InitWithNoSyncData(); | 1755 InitWithNoSyncData(); |
| 1737 | 1756 |
| 1738 std::string local_tag = manager()->current_machine_tag(); | 1757 std::string local_tag = manager()->current_machine_tag(); |
| 1739 int tab_node_id = 0; | 1758 int tab_node_id = 0; |
| 1740 sync_pb::SessionSpecifics specifics; | 1759 sync_pb::SessionSpecifics specifics; |
| (...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2588 EXPECT_EQ(tab.navigation_size(), 2); | 2607 EXPECT_EQ(tab.navigation_size(), 2); |
| 2589 EXPECT_EQ(tab.navigation(0).global_id(), tab.navigation(0).task_id()); | 2608 EXPECT_EQ(tab.navigation(0).global_id(), tab.navigation(0).task_id()); |
| 2590 EXPECT_TRUE(tab.navigation(0).ancestor_task_id().empty()); | 2609 EXPECT_TRUE(tab.navigation(0).ancestor_task_id().empty()); |
| 2591 EXPECT_EQ(tab.navigation(1).global_id(), tab.navigation(1).task_id()); | 2610 EXPECT_EQ(tab.navigation(1).global_id(), tab.navigation(1).task_id()); |
| 2592 // navigation(1) is a subtask of navigation(0). | 2611 // navigation(1) is a subtask of navigation(0). |
| 2593 EXPECT_EQ(tab.navigation(1).ancestor_task_id_size(), 1); | 2612 EXPECT_EQ(tab.navigation(1).ancestor_task_id_size(), 1); |
| 2594 EXPECT_EQ(tab.navigation(1).ancestor_task_id(0), tab.navigation(0).task_id()); | 2613 EXPECT_EQ(tab.navigation(1).ancestor_task_id(0), tab.navigation(0).task_id()); |
| 2595 } | 2614 } |
| 2596 | 2615 |
| 2597 } // namespace sync_sessions | 2616 } // namespace sync_sessions |
| OLD | NEW |