Index: components/sync_sessions/task_tracker_unittest.cc |
diff --git a/components/sync_sessions/task_tracker_unittest.cc b/components/sync_sessions/task_tracker_unittest.cc |
index 40fd0424d4d118b7904378366e637d8b8811ff64..b390228019d1059891c2e51ecad85bb158a00cc8 100644 |
--- a/components/sync_sessions/task_tracker_unittest.cc |
+++ b/components/sync_sessions/task_tracker_unittest.cc |
@@ -195,4 +195,46 @@ TEST(TaskTrackerTest, CreateSubTaskFromExcludedAncestorTask) { |
ElementsAre((kMaxNumTasksPerTab + 2) * 100)); |
} |
+TEST(TaskTrackerTest, CreateTabTasksFromSourceTab) { |
+ TaskTracker task_tracker; |
+ TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1); |
+ source_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 100); |
+ source_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 200); |
+ source_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 300); |
+ source_tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_LINK, 400); |
+ source_tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK, 500); |
+ |
+ TabTasks* target_tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1); |
+ target_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 600); |
+ target_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 700); |
+ target_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 800); |
+ |
+ EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(1), |
+ ElementsAre(300, 400, 500, 600)); |
+ EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(2), |
+ ElementsAre(300, 400, 500, 600, 700)); |
+ EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(3), ElementsAre(800)); |
+} |
+ |
+TEST(TaskTrackerTest, CreateTabTasksFromSourceTabAfterGoingBack) { |
+ TaskTracker task_tracker; |
+ TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1); |
+ source_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 100); |
+ source_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 200); |
+ source_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 300); |
+ source_tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_LINK, 400); |
+ source_tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK, 500); |
+ source_tab_tasks->UpdateWithNavigation( |
+ 2, |
+ ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | |
+ ui::PAGE_TRANSITION_FORWARD_BACK), |
+ 600); |
+ |
+ TabTasks* target_tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1); |
+ target_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 700); |
+ |
+ EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(1), |
+ ElementsAre(100, 200, 700)); |
+} |
+ |
} // namespace sync_sessions |