| 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 |