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

Side by Side 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, 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/sync_sessions/task_tracker.h"
6
7 #include <utility>
8
9 #include "base/test/simple_test_clock.h"
10 #include "base/time/time.h"
11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 using testing::ElementsAre;
15
16 namespace sync_sessions {
17
18 namespace {
19 const int kTab1 = 15;
20 const int kTab2 = 25;
21 } // namespace
22
23 TEST(TaskTrackerTest, GetTabTasks) {
24 TaskTracker task_tracker;
25 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
26 ASSERT_NE(tab_tasks, nullptr);
27 ASSERT_EQ(task_tracker.GetTabTasks(kTab1), tab_tasks);
28 ASSERT_NE(task_tracker.GetTabTasks(kTab2), tab_tasks);
29 }
30
31 TEST(TaskTrackerTest, UpdateTasksWithinTab) {
32 std::unique_ptr<base::SimpleTestClock> clock =
33 base::MakeUnique<base::SimpleTestClock>();
34 base::SimpleTestClock* clock_ptr = clock.get();
35 TaskTracker task_tracker(std::move(clock));
36 clock_ptr->SetNow(base::Time::FromTimeT(1));
37
38 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
39 tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_KEYWORD);
40 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
41
42 clock_ptr->SetNow(base::Time::FromTimeT(2));
43 // ignoring this update
44 tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_RELOAD);
45 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
46
47 // adding two tasks from two clicks
48 clock_ptr->SetNow(base::Time::FromTimeT(3));
49 tab_tasks->UpdateTask(1, ui::PageTransition::PAGE_TRANSITION_LINK);
50 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
51 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
52 clock_ptr->SetNow(base::Time::FromTimeT(4));
53 tab_tasks->UpdateTask(2, ui::PageTransition::PAGE_TRANSITION_LINK);
54 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
55 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
56 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
57
58 // back to task 1
59 clock_ptr->SetNow(base::Time::FromTimeT(5));
60 tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
61 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
62 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
63 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
64
65 // forward to task 4
66 clock_ptr->SetNow(base::Time::FromTimeT(6));
67 tab_tasks->UpdateTask(2, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
68 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
69 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 3));
70 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(2), ElementsAre(1, 3, 4));
71
72 // back to task 1 and have a new task by clicking
73 clock_ptr->SetNow(base::Time::FromTimeT(7));
74 tab_tasks->UpdateTask(0, ui::PageTransition::PAGE_TRANSITION_FORWARD_BACK);
75 clock_ptr->SetNow(base::Time::FromTimeT(8));
76 tab_tasks->UpdateTask(1, ui::PageTransition::PAGE_TRANSITION_LINK);
77 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
78 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(0), ElementsAre(1));
79 ASSERT_THAT(tab_tasks->GetTaskIdAtNavIndex(1), ElementsAre(1, 8));
80 ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2);
81 }
82
83 } // namespace sync_sessions
OLDNEW
« 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