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

Side by Side 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 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, UpdateTasksWithMultipleClicks) {
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 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
37
38 clock_ptr->SetNow(base::Time::FromInternalValue(100));
39 tab_tasks->UpdateWithNavigation(1, ui::PageTransition::PAGE_TRANSITION_TYPED);
40 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
41 ElementsAre(100));
42
43 clock_ptr->SetNow(base::Time::FromInternalValue(200));
44 tab_tasks->UpdateWithNavigation(2, ui::PageTransition::PAGE_TRANSITION_LINK);
45 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
46 ElementsAre(100));
47 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
48 ElementsAre(100, 200));
49
50 clock_ptr->SetNow(base::Time::FromInternalValue(300));
51 tab_tasks->UpdateWithNavigation(3, ui::PageTransition::PAGE_TRANSITION_LINK);
52 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
53 ElementsAre(100));
54 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
55 ElementsAre(100, 200));
56 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
57 ElementsAre(100, 200, 300));
58 }
59
60 TEST(TaskTrackerTest, UpdateTasksWithMultipleClicksAndTypes) {
61 std::unique_ptr<base::SimpleTestClock> clock =
62 base::MakeUnique<base::SimpleTestClock>();
63 base::SimpleTestClock* clock_ptr = clock.get();
64 TaskTracker task_tracker(std::move(clock));
65 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
66
67 clock_ptr->SetNow(base::Time::FromInternalValue(100));
68 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK);
69 clock_ptr->SetNow(base::Time::FromInternalValue(200));
70 tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
71 clock_ptr->SetNow(base::Time::FromInternalValue(300));
72 tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
73 clock_ptr->SetNow(base::Time::FromInternalValue(400));
74 tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_TYPED);
75 clock_ptr->SetNow(base::Time::FromInternalValue(500));
76 tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK);
77 clock_ptr->SetNow(base::Time::FromInternalValue(600));
78 tab_tasks->UpdateWithNavigation(6, ui::PAGE_TRANSITION_TYPED);
79 clock_ptr->SetNow(base::Time::FromInternalValue(700));
80 tab_tasks->UpdateWithNavigation(7, ui::PAGE_TRANSITION_LINK);
81
82 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
83 ElementsAre(100));
84 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
85 ElementsAre(100, 200));
86 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
87 ElementsAre(100, 200, 300));
88 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(4),
89 ElementsAre(400));
90 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(5),
91 ElementsAre(400, 500));
92 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(6),
93 ElementsAre(600));
94 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(7),
95 ElementsAre(600, 700));
96 }
97
98 TEST(TaskTrackerTest, UpdateTasksWithBackforwards) {
99 std::unique_ptr<base::SimpleTestClock> clock =
100 base::MakeUnique<base::SimpleTestClock>();
101 base::SimpleTestClock* clock_ptr = clock.get();
102 TaskTracker task_tracker(std::move(clock));
103 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
104
105 clock_ptr->SetNow(base::Time::FromInternalValue(100));
106 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_TYPED);
107 clock_ptr->SetNow(base::Time::FromInternalValue(200));
108 tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
109 clock_ptr->SetNow(base::Time::FromInternalValue(300));
110 tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
111
112 clock_ptr->SetNow(base::Time::FromInternalValue(400));
113 tab_tasks->UpdateWithNavigation(
114 1, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED |
115 ui::PAGE_TRANSITION_FORWARD_BACK));
116 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
117 ElementsAre(100));
118 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
119 ElementsAre(100, 200));
120 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
121 ElementsAre(100, 200, 300));
122
123 clock_ptr->SetNow(base::Time::FromInternalValue(500));
124 tab_tasks->UpdateWithNavigation(
125 3, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK |
126 ui::PAGE_TRANSITION_FORWARD_BACK));
127 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
128 ElementsAre(100));
129 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
130 ElementsAre(100, 200));
131 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3),
132 ElementsAre(100, 200, 300));
133 }
134
135 TEST(TaskTrackerTest, UpdateWithNavigationsWithBackAndForkedNavigation) {
136 std::unique_ptr<base::SimpleTestClock> clock =
137 base::MakeUnique<base::SimpleTestClock>();
138 base::SimpleTestClock* clock_ptr = clock.get();
139 TaskTracker task_tracker(std::move(clock));
140 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab1);
141 clock_ptr->SetNow(base::Time::FromInternalValue(100));
142 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK);
143 clock_ptr->SetNow(base::Time::FromInternalValue(200));
144 tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
145 clock_ptr->SetNow(base::Time::FromInternalValue(300));
146 tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_LINK);
147 clock_ptr->SetNow(base::Time::FromInternalValue(400));
148 tab_tasks->UpdateWithNavigation(
149 1, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK |
150 ui::PAGE_TRANSITION_FORWARD_BACK));
151 clock_ptr->SetNow(base::Time::FromInternalValue(500));
152 tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK);
153 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(1),
154 ElementsAre(100));
155 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(2),
156 ElementsAre(100, 500));
157 // We don't track navigation at index 3 any more, so it's unknown now.
158 ASSERT_THAT(tab_tasks->RootToSelfTaskIdsOfNavigationIndex(3), ElementsAre());
159 }
160
161 } // 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