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; |
13 using testing::SizeIs; | 14 using testing::SizeIs; |
14 | 15 |
15 namespace sync_sessions { | 16 namespace sync_sessions { |
16 | 17 |
17 namespace { | 18 namespace { |
18 const int kTab1 = 15; | 19 const int kTab1 = 15; |
19 const int kTab2 = 25; | 20 const int kTab2 = 25; |
20 } // namespace | 21 } // namespace |
21 | 22 |
22 TEST(TaskTrackerTest, GetTabTasks) { | 23 TEST(TaskTrackerTest, GetTabTasks) { |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 | 189 |
189 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, | 190 tab_tasks->UpdateWithNavigation(1, ui::PAGE_TRANSITION_LINK, |
190 (kMaxNumTasksPerTab + 2) * 100); | 191 (kMaxNumTasksPerTab + 2) * 100); |
191 ASSERT_THAT(tab_tasks->task_ids_, SizeIs(1)); | 192 ASSERT_THAT(tab_tasks->task_ids_, SizeIs(1)); |
192 ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2); | 193 ASSERT_EQ(tab_tasks->GetNavigationsCount(), 2); |
193 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(0), ElementsAre()); | 194 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(0), ElementsAre()); |
194 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(1), | 195 EXPECT_THAT(tab_tasks->GetTaskIdsForNavigation(1), |
195 ElementsAre((kMaxNumTasksPerTab + 2) * 100)); | 196 ElementsAre((kMaxNumTasksPerTab + 2) * 100)); |
196 } | 197 } |
197 | 198 |
| 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 |
198 } // namespace sync_sessions | 268 } // namespace sync_sessions |
OLD | NEW |