Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/bind.h"
      6 #include "base/memory/ref_counted.h"
      7 #include "base/message_loop/message_loop.h"
      8 #include "remoting/base/auto_thread_task_runner.h"
      9 #include "testing/gtest/include/gtest/gtest.h"
     10 
     11 namespace {
     12 
     13 void SetFlagTask(bool* success) {
     14   *success = true;
     15 }
     16 
     17 }  // namespace
     18 
     19 namespace remoting {
     20 
     21 TEST(AutoThreadTaskRunnerTest, StartAndStop) {
     22   // Create a task runner.
     23   base::MessageLoop message_loop;
     24   scoped_refptr<AutoThreadTaskRunner> task_runner = new AutoThreadTaskRunner(
     25       message_loop.message_loop_proxy(), base::MessageLoop::QuitClosure());
     26 
     27   // Post a task to make sure it is executed.
     28   bool success = false;
     29   message_loop.PostTask(FROM_HERE, base::Bind(&SetFlagTask, &success));
     30 
     31   task_runner = NULL;
     32   message_loop.Run();
     33   EXPECT_TRUE(success);
     34 }
     35 
     36 }  // namespace remoting
     37