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

Unified Diff: components/sync_sessions/task_tracker_unittest.cc

Issue 2868043003: Track task ids for navigations cross multiple tabs. (Closed)
Patch Set: fixing nits Created 3 years, 7 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
« no previous file with comments | « components/sync_sessions/task_tracker.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..5dc0c361b65a9ef50ee42ed335b2d09de3bec43b 100644
--- a/components/sync_sessions/task_tracker_unittest.cc
+++ b/components/sync_sessions/task_tracker_unittest.cc
@@ -10,6 +10,7 @@
#include "testing/gtest/include/gtest/gtest.h"
using testing::ElementsAre;
+using testing::ElementsAreArray;
using testing::SizeIs;
namespace sync_sessions {
@@ -195,4 +196,73 @@ 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);
+ ASSERT_THAT(source_tab_tasks->GetTaskIdsForNavigation(2),
+ ElementsAre(100, 200));
+
+ 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));
+}
+
+TEST(TaskTrackerTest, CreateTabTasksFromSourceTabWithLimitedTaskNum) {
+ const int kMaxNumTasksPerTab = 100;
+ TaskTracker task_tracker;
+
+ TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1);
+ // Adding max number of tasks to tab1.
+ for (int i = 0; i < kMaxNumTasksPerTab; i++) {
+ source_tab_tasks->UpdateWithNavigation(i, ui::PAGE_TRANSITION_LINK,
+ i * 100);
+ }
+
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1);
+ tab_tasks->UpdateWithNavigation(0, ui::PAGE_TRANSITION_LINK,
+ kMaxNumTasksPerTab * 100);
+
+ std::vector<int64_t> task_ids = tab_tasks->GetTaskIdsForNavigation(0);
+ // The first task from source tab is excluded because of max task number
+ // limit.
+ int expected_task_ids[kMaxNumTasksPerTab];
+ for (int i = 0; i < kMaxNumTasksPerTab; i++)
+ expected_task_ids[i] = (i + 1) * 100;
+ EXPECT_THAT(task_ids,
+ ElementsAreArray(expected_task_ids, kMaxNumTasksPerTab));
+}
+
} // namespace sync_sessions
« no previous file with comments | « components/sync_sessions/task_tracker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698