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

Unified Diff: components/sync_sessions/task_tracker_unittest.cc

Issue 2776633003: Add taskid for navigation, created in session sync (Closed)
Patch Set: comments and refactoring Created 3 years, 9 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..9a2ce56584367839526517514045bd60993c0192
--- /dev/null
+++ b/components/sync_sessions/task_tracker_unittest.cc
@@ -0,0 +1,83 @@
+// 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, UpdateTasksWithinTab) {
+ std::unique_ptr<base::SimpleTestClock> clock =
+ base::MakeUnique<base::SimpleTestClock>();
+ base::SimpleTestClock* clock_ptr = clock.get();
+ TaskTracker task_tracker(std::move(clock));
+ clock_ptr->SetNow(base::Time::FromTimeT(1));
+
+ TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
+ tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_KEYWORD);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+
+ clock_ptr->SetNow(base::Time::FromTimeT(2));
+ // ignoring this update
+ tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_RELOAD);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+
+ // adding two tasks from two clicks
+ clock_ptr->SetNow(base::Time::FromTimeT(3));
+ tab_tasks->UpdateTask(1, ui::PageTransition::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
+ clock_ptr->SetNow(base::Time::FromTimeT(4));
+ tab_tasks->UpdateTask(2, ui::PageTransition::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
+
+ // back to task 1
+ clock_ptr->SetNow(base::Time::FromTimeT(5));
+ tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
+
+ // forward to task 4
+ clock_ptr->SetNow(base::Time::FromTimeT(6));
+ tab_tasks->UpdateTask(2, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
+
+ // back to task 1 and have a new task by clicking
+ clock_ptr->SetNow(base::Time::FromTimeT(7));
+ tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
+ clock_ptr->SetNow(base::Time::FromTimeT(8));
+ tab_tasks->UpdateTask(1, ui::PageTransition::PAGE_TRANSITION_LINK);
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
+ ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 8));
+ ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2);
+}
+
+} // 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