blob: 89a0f545f2cb0a355933e67e17638adbb7ac9e88 [file] [log] [blame]
// Copyright (c) 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/message_loop/message_loop.h"
#include "base/run_loop.h"
#include "remoting/base/auto_thread_task_runner.h"
#include "remoting/client/chromoting_client_runtime.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace remoting {
#if defined(OS_IOS) || defined(OS_ANDROID)
// A simple test that starts and stop the runtime. This tests the runtime
// operates properly and all threads and message loops are valid.
TEST(ChromotingClientRuntimeTest, StartAndStop) {
scoped_ptr<base::MessageLoopForUI> ui_loop;
ui_loop.reset(new base::MessageLoopForUI());
#if defined(OS_IOS)
ui_loop->Attach();
#elif defined(OS_ANDROID)
ui_loop->Start();
#endif
scoped_ptr<ChromotingClientRuntime> runtime =
ChromotingClientRuntime::Create(ui_loop.get());
ASSERT_TRUE(runtime);
EXPECT_TRUE(runtime->network_task_runner().get());
EXPECT_TRUE(runtime->ui_task_runner().get());
EXPECT_TRUE(runtime->display_task_runner().get());
EXPECT_TRUE(runtime->file_task_runner().get());
EXPECT_TRUE(runtime->url_requester().get());
}
#endif
} // namespace remoting