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/message_loop/message_loop.h" 6 #include "base/run_loop.h" 7 #include "remoting/base/auto_thread_task_runner.h" 8 #include "remoting/host/chromoting_host_context.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 11 namespace remoting { 12 13 // A simple test that starts and stop the context. This tests the context 14 // operates properly and all threads and message loops are valid. 15 TEST(ChromotingHostContextTest, StartAndStop) { 16 base::MessageLoopForUI message_loop; 17 base::RunLoop run_loop; 18 19 scoped_ptr<ChromotingHostContext> context = 20 ChromotingHostContext::Create(new AutoThreadTaskRunner( 21 message_loop.message_loop_proxy(), run_loop.QuitClosure())); 22 23 EXPECT_TRUE(context); 24 if (!context) 25 return; 26 EXPECT_TRUE(context->audio_task_runner().get()); 27 EXPECT_TRUE(context->video_capture_task_runner().get()); 28 EXPECT_TRUE(context->video_encode_task_runner().get()); 29 EXPECT_TRUE(context->file_task_runner().get()); 30 EXPECT_TRUE(context->input_task_runner().get()); 31 EXPECT_TRUE(context->network_task_runner().get()); 32 EXPECT_TRUE(context->ui_task_runner().get()); 33 34 context.reset(); 35 run_loop.Run(); 36 } 37 38 } // namespace remoting 39