| Index: base/task_scheduler/task_scheduler_impl_unittest.cc
 | 
| diff --git a/base/task_scheduler/task_scheduler_impl_unittest.cc b/base/task_scheduler/task_scheduler_impl_unittest.cc
 | 
| index 6aaf4af8753cd16976280e8c0af0f56cbaeb93e9..bacedb7cf98747e75dc9f8987fe25b8e5027b026 100644
 | 
| --- a/base/task_scheduler/task_scheduler_impl_unittest.cc
 | 
| +++ b/base/task_scheduler/task_scheduler_impl_unittest.cc
 | 
| @@ -322,5 +322,49 @@ TEST_F(TaskSchedulerImplTest, GetMaxConcurrentTasksWithTraitsDeprecated) {
 | 
|            TaskTraits().WithPriority(TaskPriority::USER_BLOCKING).MayBlock()));
 | 
|  }
 | 
|  
 | 
| +// Verify that the RunsTasksOnCurrentThread() method of a SequencedTaskRunner
 | 
| +// returns false when called from a task that isn't part of the sequence.
 | 
| +TEST_F(TaskSchedulerImplTest, SequencedRunsTasksOnCurrentThread) {
 | 
| +  auto single_thread_task_runner =
 | 
| +      scheduler_->CreateSingleThreadTaskRunnerWithTraits(TaskTraits());
 | 
| +  auto sequenced_task_runner =
 | 
| +      scheduler_->CreateSequencedTaskRunnerWithTraits(TaskTraits());
 | 
| +
 | 
| +  WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL,
 | 
| +                         WaitableEvent::InitialState::NOT_SIGNALED);
 | 
| +  single_thread_task_runner->PostTask(
 | 
| +      FROM_HERE,
 | 
| +      Bind(
 | 
| +          [](scoped_refptr<TaskRunner> sequenced_task_runner,
 | 
| +             WaitableEvent* task_ran) {
 | 
| +            EXPECT_FALSE(sequenced_task_runner->RunsTasksOnCurrentThread());
 | 
| +            task_ran->Signal();
 | 
| +          },
 | 
| +          sequenced_task_runner, Unretained(&task_ran)));
 | 
| +  task_ran.Wait();
 | 
| +}
 | 
| +
 | 
| +// Verify that the RunsTasksOnCurrentThread() method of a SingleThreadTaskRunner
 | 
| +// returns false when called from a task that isn't part of the sequence.
 | 
| +TEST_F(TaskSchedulerImplTest, SingleThreadRunsTasksOnCurrentThread) {
 | 
| +  auto sequenced_task_runner =
 | 
| +      scheduler_->CreateSequencedTaskRunnerWithTraits(TaskTraits());
 | 
| +  auto single_thread_task_runner =
 | 
| +      scheduler_->CreateSingleThreadTaskRunnerWithTraits(TaskTraits());
 | 
| +
 | 
| +  WaitableEvent task_ran(WaitableEvent::ResetPolicy::MANUAL,
 | 
| +                         WaitableEvent::InitialState::NOT_SIGNALED);
 | 
| +  sequenced_task_runner->PostTask(
 | 
| +      FROM_HERE,
 | 
| +      Bind(
 | 
| +          [](scoped_refptr<TaskRunner> single_thread_task_runner,
 | 
| +             WaitableEvent* task_ran) {
 | 
| +            EXPECT_FALSE(single_thread_task_runner->RunsTasksOnCurrentThread());
 | 
| +            task_ran->Signal();
 | 
| +          },
 | 
| +          single_thread_task_runner, Unretained(&task_ran)));
 | 
| +  task_ran.Wait();
 | 
| +}
 | 
| +
 | 
|  }  // namespace internal
 | 
|  }  // namespace base
 | 
| 
 |