Home | History | Annotate | Download | only in host
      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