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

Unified Diff: components/sync_sessions/task_tracker_unittest.cc

Issue 2776633003: Add taskid for navigation, created in session sync (Closed)
Patch Set: Fixing a bug where root of the task is not considered and addressing comments. 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/task_tracker_unittest.cc
diff --git a/components/sync_sessions/task_tracker_unittest.cc b/components/sync_sessions/task_tracker_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..36fa36978afcf48c9bee5155120ea61cc82da594
--- /dev/null
+++ b/components/sync_sessions/task_tracker_unittest.cc
@@ -0,0 +1,161 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/sync_sessions/task_tracker.h"
+
+#include <utility>
+
+#include "base/test/simple_test_clock.h"
+#include "base/time/time.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using testing::ElementsAre;
+
+namespace sync_sessions {
+
+namespace {
+const int kTab1 = 15;
+const int kTab2 = 25;
+} // namespace
+
+TEST(TaskTrackerTest, GetTabTasks) {
+ TaskTracker task_tracker;
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+ ASSERT_NE(tab_tasks, nullptr);
+ ASSERT_EQ(task_tracker.GetTabTasks(kTab1), tab_tasks);
+ ASSERT_NE(task_tracker.GetTabTasks(kTab2), tab_tasks);
+}
+
+TEST(TaskTrackerTest, UpdateTasksWithMultipleClicks) {
+ std::unique_ptr<base::SimpleTestClock> clock =
+ base::MakeUnique<base::SimpleTestClock>();
+ base::SimpleTestClock* clock_ptr = clock.get();
+ TaskTracker task_tracker(std::move(clock));
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(100));
+ tab_tasks->UpdateWithNavigation(1, ui::PageTransition::PAGE_TRANSITION_TYPED);
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(200));
+ tab_tasks->UpdateWithNavigation(2, ui::PageTransition::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 200));
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(300));
+ tab_tasks->UpdateWithNavigation(3, ui::PageTransition::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 200));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
+ ElementsAre(100, 200, 300));
+}
+
+TEST(TaskTrackerTest, UpdateTasksWithMultipleClicksAndTypes) {
+ std::unique_ptr<base::SimpleTestClock> clock =
+ base::MakeUnique<base::SimpleTestClock>();
+ base::SimpleTestClock* clock_ptr = clock.get();
+ TaskTracker task_tracker(std::move(clock));
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(100));
+ tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(200));
+ tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(300));
+ tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(400));
+ tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_TYPED);
+ clock_ptr->SetNow(base::Time::FromInternalValue(500));
+ tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(600));
+ tab_tasks->UpdateWithNavigation(6, ui::PAGE_TRANSITION_TYPED);
+ clock_ptr->SetNow(base::Time::FromInternalValue(700));
+ tab_tasks->UpdateWithNavigation(7, ui::PAGE_TRANSITION_LINK);
+
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 200));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
+ ElementsAre(100, 200, 300));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(4),
+ ElementsAre(400));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(5),
+ ElementsAre(400, 500));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(6),
+ ElementsAre(600));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(7),
+ ElementsAre(600, 700));
+}
+
+TEST(TaskTrackerTest, UpdateTasksWithBackforwards) {
+ std::unique_ptr<base::SimpleTestClock> clock =
+ base::MakeUnique<base::SimpleTestClock>();
+ base::SimpleTestClock* clock_ptr = clock.get();
+ TaskTracker task_tracker(std::move(clock));
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(100));
+ tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_TYPED);
+ clock_ptr->SetNow(base::Time::FromInternalValue(200));
+ tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(300));
+ tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(400));
+ tab_tasks->UpdateWithNavigation(
+ 1, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED |
+ ui::PAGE_TRANSITION_FORWARD_BACK));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 200));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
+ ElementsAre(100, 200, 300));
+
+ clock_ptr->SetNow(base::Time::FromInternalValue(500));
+ tab_tasks->UpdateWithNavigation(
+ 3, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK |
+ ui::PAGE_TRANSITION_FORWARD_BACK));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 200));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
+ ElementsAre(100, 200, 300));
+}
+
+TEST(TaskTrackerTest, UpdateWithNavigationsWithBackAndForkedNavigation) {
+ std::unique_ptr<base::SimpleTestClock> clock =
+ base::MakeUnique<base::SimpleTestClock>();
+ base::SimpleTestClock* clock_ptr = clock.get();
+ TaskTracker task_tracker(std::move(clock));
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+ clock_ptr->SetNow(base::Time::FromInternalValue(100));
+ tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(200));
+ tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(300));
+ tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
+ clock_ptr->SetNow(base::Time::FromInternalValue(400));
+ tab_tasks->UpdateWithNavigation(
+ 1, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK |
+ ui::PAGE_TRANSITION_FORWARD_BACK));
+ clock_ptr->SetNow(base::Time::FromInternalValue(500));
+ tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
+ ElementsAre(100));
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
+ ElementsAre(100, 500));
+ // We don't track navigation at index 3 any more, so it's unknown now.
+ ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3), ElementsAre());
+}
+
+} // namespace sync_sessions
« components/sync_sessions/task_tracker.cc ('K') | « components/sync_sessions/task_tracker.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698