Chromium Code Reviews| Index: content/renderer/scheduler/task_queue_manager_unittest.cc |
| diff --git a/content/renderer/scheduler/task_queue_manager_unittest.cc b/content/renderer/scheduler/task_queue_manager_unittest.cc |
| index 0106eb23d52513d7a254cc310c86e273b7fb9789..43238250180c20cc6b776a94ab0f7f2e548f9d80 100644 |
| --- a/content/renderer/scheduler/task_queue_manager_unittest.cc |
| +++ b/content/renderer/scheduler/task_queue_manager_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include "content/renderer/scheduler/task_queue_manager.h" |
| #include "base/test/test_simple_task_runner.h" |
| +#include "base/threading/thread.h" |
| #include "content/renderer/scheduler/task_queue_selector.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -327,5 +328,31 @@ TEST_F(TaskQueueManagerTest, NoTasksAfterShutdown) { |
| EXPECT_TRUE(run_order.empty()); |
| } |
| +void PostTaskToRunner(scoped_refptr<base::SingleThreadTaskRunner> runner, |
|
rmcilroy
2014/10/24 09:36:41
Thanks for adding a test!
Sami
2014/10/24 09:59:12
My pleasure :)
|
| + std::vector<int>* run_order) { |
| + runner->PostTask(FROM_HERE, base::Bind(&TestTask, 1, run_order)); |
| +} |
| + |
| +TEST_F(TaskQueueManagerTest, PostFromThread) { |
| + base::MessageLoop message_loop; |
| + selector_ = make_scoped_ptr(new SelectorForTest); |
| + manager_ = make_scoped_ptr( |
| + new TaskQueueManager(1u, message_loop.task_runner(), selector_.get())); |
| + |
| + std::vector<int> run_order; |
| + scoped_refptr<base::SingleThreadTaskRunner> runner = |
| + manager_->TaskRunnerForQueue(0); |
| + |
| + base::Thread thread("TestThread"); |
| + thread.Start(); |
| + thread.message_loop()->PostTask( |
| + FROM_HERE, base::Bind(&PostTaskToRunner, runner, &run_order)); |
| + thread.Stop(); |
| + |
| + selector_->AppendQueueToService(0); |
| + message_loop.RunUntilIdle(); |
| + EXPECT_EQ(1, run_order[0]); |
| +} |
| + |
| } // namespace |
| } // namespace content |