OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/sync_sessions/task_tracker.h" | 5 #include "components/sync_sessions/task_tracker.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 | 11 |
12 using testing::ElementsAre; | 12 using testing::ElementsAre; |
13 using testing::ElementsAreArray; | |
14 using testing::SizeIs; | 13 using testing::SizeIs; |
15 | 14 |
16 namespace sync_sessions { | 15 namespace sync_sessions { |
17 | 16 |
18 namespace { | 17 namespace { |
19 const int kTab1 = 15; | 18 const int kTab1 = 15; |
20 const int kTab2 = 25; | 19 const int kTab2 = 25; |
21 } // namespace | 20 } // namespace |
22 | 21 |
23 TEST(TaskTrackerTest, GetTabTasks) { | 22 TEST(TaskTrackerTest, GetTabTasks) { |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 | 188 |
190 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, | 189 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, |
191 (kMaxNumTasksPerTab + 2) * 100); | 190 (kMaxNumTasksPerTab + 2) * 100); |
192 ASSERT_THAT(tab_tasks->task_ids_, SizeIs(1)); | 191 ASSERT_THAT(tab_tasks->task_ids_, SizeIs(1)); |
193 ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2); | 192 ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2); |
194 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(0), ElementsAre()); | 193 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(0), ElementsAre()); |
195 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(1), | 194 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(1), |
196 ElementsAre((kMaxNumTasksPerTab + 2) * 100)); | 195 ElementsAre((kMaxNumTasksPerTab + 2) * 100)); |
197 } | 196 } |
198 | 197 |
199 TEST(TaskTrackerTest, CreateTabTasksFromSourceTab) { | |
200 TaskTracker task_tracker; | |
201 TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1); | |
202 source_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 100); | |
203 source_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 200); | |
204 source_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 300); | |
205 source_tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_LINK, 400); | |
206 source_tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK, 500); | |
207 | |
208 TabTasks* target_tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1); | |
209 target_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 600); | |
210 target_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 700); | |
211 target_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 800); | |
212 | |
213 EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(1), | |
214 ElementsAre(300, 400, 500, 600)); | |
215 EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(2), | |
216 ElementsAre(300, 400, 500, 600, 700)); | |
217 EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(3), ElementsAre(800)); | |
218 } | |
219 | |
220 TEST(TaskTrackerTest, CreateTabTasksFromSourceTabAfterGoingBack) { | |
221 TaskTracker task_tracker; | |
222 TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1); | |
223 source_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 100); | |
224 source_tab_tasks->UpdateWithNavigation(2, ui::PAGE_TRANSITION_LINK, 200); | |
225 source_tab_tasks->UpdateWithNavigation(3, ui::PAGE_TRANSITION_TYPED, 300); | |
226 source_tab_tasks->UpdateWithNavigation(4, ui::PAGE_TRANSITION_LINK, 400); | |
227 source_tab_tasks->UpdateWithNavigation(5, ui::PAGE_TRANSITION_LINK, 500); | |
228 source_tab_tasks->UpdateWithNavigation( | |
229 2, | |
230 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
231 ui::PAGE_TRANSITION_FORWARD_BACK), | |
232 600); | |
233 ASSERT_THAT(source_tab_tasks->GetTaskIdsForNavigation(2), | |
234 ElementsAre(100, 200)); | |
235 | |
236 TabTasks* target_tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1); | |
237 target_tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, 700); | |
238 | |
239 EXPECT_THAT(target_tab_tasks->GetTaskIdsForNavigation(1), | |
240 ElementsAre(100, 200, 700)); | |
241 } | |
242 | |
243 TEST(TaskTrackerTest, CreateTabTasksFromSourceTabWithLimitedTaskNum) { | |
244 const int kMaxNumTasksPerTab = 100; | |
245 TaskTracker task_tracker; | |
246 | |
247 TabTasks* source_tab_tasks = task_tracker.GetTabTasks(kTab1); | |
248 // Adding max number of tasks to tab1. | |
249 for (int i = 0; i < kMaxNumTasksPerTab; i++) { | |
250 source_tab_tasks->UpdateWithNavigation(i, ui::PAGE_TRANSITION_LINK, | |
251 i * 100); | |
252 } | |
253 | |
254 TabTasks* tab_tasks = task_tracker.GetTabTasks(kTab2, kTab1); | |
255 tab_tasks->UpdateWithNavigation(0, ui::PAGE_TRANSITION_LINK, | |
256 kMaxNumTasksPerTab * 100); | |
257 | |
258 std::vector<int64_t> task_ids = tab_tasks->GetTaskIdsForNavigation(0); | |
259 // The first task from source tab is excluded because of max task number | |
260 // limit. | |
261 int expected_task_ids[kMaxNumTasksPerTab]; | |
262 for (int i = 0; i < kMaxNumTasksPerTab; i++) | |
263 expected_task_ids[i] = (i + 1) * 100; | |
264 EXPECT_THAT(task_ids, | |
265 ElementsAreArray(expected_task_ids, kMaxNumTasksPerTab)); | |
266 } | |
267 | |
268 } // namespace sync_sessions | 198 } // namespace sync_sessions |
OLD | NEW |