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