OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/scheduler/child/task_queue_manager.h" | 5 #include "components/scheduler/child/task_queue_manager.h" |
6 | 6 |
7 #include "base/location.h" | 7 #include "base/location.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
10 #include "base/test/simple_test_tick_clock.h" | 10 #include "base/test/simple_test_tick_clock.h" |
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1230 runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order), | 1230 runners_[0]->PostDelayedTask(FROM_HERE, base::Bind(&TestTask, 3, &run_order), |
1231 base::TimeDelta::FromMilliseconds(30)); | 1231 base::TimeDelta::FromMilliseconds(30)); |
1232 | 1232 |
1233 runners_[1]->UnregisterTaskQueue(); | 1233 runners_[1]->UnregisterTaskQueue(); |
1234 test_task_runner_->RunUntilIdle(); | 1234 test_task_runner_->RunUntilIdle(); |
1235 | 1235 |
1236 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40)); | 1236 test_task_runner_->RunForPeriod(base::TimeDelta::FromMilliseconds(40)); |
1237 ASSERT_THAT(run_order, ElementsAre(1, 3)); | 1237 ASSERT_THAT(run_order, ElementsAre(1, 3)); |
1238 } | 1238 } |
1239 | 1239 |
| 1240 namespace { |
| 1241 class MockObserver : public TaskQueueManager::Observer { |
| 1242 public: |
| 1243 MOCK_METHOD1(OnUnregisterTaskQueue, |
| 1244 void(const scoped_refptr<internal::TaskQueueImpl>& queue)); |
| 1245 }; |
| 1246 } // namespace |
| 1247 |
| 1248 TEST_F(TaskQueueManagerTest, OnUnregisterTaskQueue) { |
| 1249 Initialize(0u); |
| 1250 |
| 1251 MockObserver observer; |
| 1252 manager_->SetQueueObserver(&observer); |
| 1253 |
| 1254 scoped_refptr<internal::TaskQueueImpl> task_queue = |
| 1255 manager_->NewTaskQueue(TaskQueue::Spec("test_queue")); |
| 1256 |
| 1257 EXPECT_CALL(observer, OnUnregisterTaskQueue(_)).Times(2); |
| 1258 task_queue->UnregisterTaskQueue(); |
| 1259 |
| 1260 // Tidy up. |
| 1261 manager_->SetQueueObserver(nullptr); |
| 1262 } |
| 1263 |
1240 } // namespace scheduler | 1264 } // namespace scheduler |
OLD | NEW |