| Index: chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
|
| diff --git a/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc b/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
|
| index 11e35ef315a9d6316815258f98c946ca4e5770d7..9bdd5d189980df5c361a27bc42e4d3c209644332 100644
|
| --- a/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
|
| +++ b/chrome/browser/sync/sessions/sessions_sync_manager_unittest.cc
|
| @@ -549,11 +549,17 @@ class SyncedTabDelegateFake : public SyncedTabDelegate {
|
| int GetEntryCount() const override { return entries_.size(); }
|
|
|
| SessionID::id_type GetWindowId() const override {
|
| - return SessionID::id_type();
|
| + return window_id_;
|
| + }
|
| + void SetWindowId(SessionID::id_type window_id) {
|
| + window_id_ = window_id;
|
| }
|
|
|
| SessionID::id_type GetSessionId() const override {
|
| - return SessionID::id_type();
|
| + return tab_id_;
|
| + }
|
| + void SetSessionId(SessionID::id_type id) {
|
| + tab_id_ = id;
|
| }
|
|
|
| bool IsBeingDestroyed() const override { return false; }
|
| @@ -594,6 +600,8 @@ class SyncedTabDelegateFake : public SyncedTabDelegate {
|
| int current_entry_index_;
|
| bool is_supervised_;
|
| int sync_id_;
|
| + SessionID::id_type tab_id_ = 0;
|
| + SessionID::id_type window_id_ = 0;
|
| std::vector<std::unique_ptr<const sessions::SerializedNavigationEntry>>
|
| blocked_navigations_;
|
| std::vector<std::unique_ptr<content::NavigationEntry>> entries_;
|
| @@ -988,7 +996,9 @@ TEST_F(SessionsSyncManagerTest, SwappedOutOnRestore) {
|
| ASSERT_EQ(1U, windows.size());
|
| SyncedTabDelegateFake t1_override, t2_override;
|
| t1_override.SetSyncId(1); // No WebContents by default.
|
| + t1_override.SetSessionId(kNewTabId);
|
| t2_override.SetSyncId(2); // No WebContents by default.
|
| + t2_override.SetSessionId(t2_entity.session().tab().tab_id());
|
| SyncedWindowDelegateOverride window_override(*windows.begin());
|
| window_override.OverrideTabAt(1, &t1_override, kNewTabId);
|
| window_override.OverrideTabAt(2, &t2_override,
|
| @@ -1006,12 +1016,15 @@ TEST_F(SessionsSyncManagerTest, SwappedOutOnRestore) {
|
| new syncer::SyncErrorFactoryMock()));
|
|
|
| // There should be two changes, one for the fully associated tab, and
|
| - // one for the tab_id update to t1. t2 shouldn't need to be updated.
|
| - ASSERT_EQ(2U, FilterOutLocalHeaderChanges(&out)->size());
|
| + // one each for the tab_id updates to t1 and t2.
|
| + ASSERT_EQ(3U, FilterOutLocalHeaderChanges(&out)->size());
|
| EXPECT_EQ(SyncChange::ACTION_UPDATE, out[0].change_type());
|
| EXPECT_EQ(SyncChange::ACTION_UPDATE, out[1].change_type());
|
| + EXPECT_EQ(SyncChange::ACTION_UPDATE, out[2].change_type());
|
| EXPECT_EQ(kNewTabId,
|
| out[1].sync_data().GetSpecifics().session().tab().tab_id());
|
| + EXPECT_EQ(t2_entity.session().tab().tab_id(),
|
| + out[2].sync_data().GetSpecifics().session().tab().tab_id());
|
|
|
| // Verify TabLinks.
|
| SessionsSyncManager::TabLinksMap tab_map = manager()->local_tab_map_;
|
| @@ -1021,10 +1034,6 @@ TEST_F(SessionsSyncManagerTest, SwappedOutOnRestore) {
|
| EXPECT_EQ(1, tab_map.find(kNewTabId)->second->tab_node_id());
|
| int t0_tab_id = out[0].sync_data().GetSpecifics().session().tab().tab_id();
|
| EXPECT_EQ(0, tab_map.find(t0_tab_id)->second->tab_node_id());
|
| - // TODO(tim): Once bug 337057 is fixed, we can issue an OnLocalTabModified
|
| - // from here (using an override similar to above) to return a new tab id
|
| - // and verify that we don't see any node creations in the SyncChangeProcessor
|
| - // (similar to how SessionsSyncManagerTest.OnLocalTabModified works.)
|
| }
|
|
|
| // Ensure model association updates the window ID for tabs whose window's ID has
|
| @@ -1050,6 +1059,7 @@ TEST_F(SessionsSyncManagerTest, WindowIdUpdatedOnRestore) {
|
| // SyncedTabDelegateFake is a placeholder (no WebContents) by default.
|
| SyncedTabDelegateFake t0_override;
|
| t0_override.SetSyncId(t0_entity.session().tab_node_id());
|
| + t0_override.SetWindowId(kNewWindowId);
|
|
|
| // Set up the window override with the new window ID and placeholder tab.
|
| const std::set<const SyncedWindowDelegate*>& windows =
|
| @@ -1307,10 +1317,10 @@ TEST_F(SessionsSyncManagerTest, DeleteForeignSession) {
|
| tag, tab_nums1, &tabs));
|
|
|
| // Update associator with the session's meta node, window, and tabs.
|
| - manager()->UpdateTrackerWithForeignSession(meta, base::Time());
|
| + manager()->UpdateTrackerWithSpecifics(meta, base::Time());
|
| for (std::vector<sync_pb::SessionSpecifics>::iterator iter = tabs.begin();
|
| iter != tabs.end(); ++iter) {
|
| - manager()->UpdateTrackerWithForeignSession(*iter, base::Time());
|
| + manager()->UpdateTrackerWithSpecifics(*iter, base::Time());
|
| }
|
| ASSERT_TRUE(manager()->GetAllForeignSessions(&foreign_sessions));
|
| ASSERT_EQ(1U, foreign_sessions.size());
|
| @@ -2070,13 +2080,9 @@ TEST_F(SessionsSyncManagerTest, MergeLocalSessionExistingTabs) {
|
| // Tabs are ordered by sessionid in tab_map, so should be able to traverse
|
| // the tree based on order of tabs created
|
| SessionsSyncManager::TabLinksMap::iterator iter = tab_map.begin();
|
| - ASSERT_EQ(2, iter->second->tab()->GetEntryCount());
|
| - EXPECT_EQ(GURL("http://foo1"), iter->second->tab()->GetVirtualURLAtIndex(0));
|
| - EXPECT_EQ(GURL("http://foo2"), iter->second->tab()->GetVirtualURLAtIndex(1));
|
| + EXPECT_EQ(GURL("http://foo2"), iter->second->url());
|
| iter++;
|
| - ASSERT_EQ(2, iter->second->tab()->GetEntryCount());
|
| - EXPECT_EQ(GURL("http://bar1"), iter->second->tab()->GetVirtualURLAtIndex(0));
|
| - EXPECT_EQ(GURL("http://bar2"), iter->second->tab()->GetVirtualURLAtIndex(1));
|
| + EXPECT_EQ(GURL("http://bar2"), iter->second->url());
|
| }
|
|
|
| TEST_F(SessionsSyncManagerTest, ForeignSessionModifiedTime) {
|
|
|