| Index: ppapi/tests/test_flash_message_loop.cc
|
| diff --git a/ppapi/tests/test_flash_message_loop.cc b/ppapi/tests/test_flash_message_loop.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5143fe78d170f09743845d964b37e87555e3e30b
|
| --- /dev/null
|
| +++ b/ppapi/tests/test_flash_message_loop.cc
|
| @@ -0,0 +1,81 @@
|
| +// Copyright (c) 2012 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 "ppapi/tests/test_flash_message_loop.h"
|
| +
|
| +#include "ppapi/c/pp_macros.h"
|
| +#include "ppapi/cpp/core.h"
|
| +#include "ppapi/cpp/logging.h"
|
| +#include "ppapi/cpp/module.h"
|
| +#include "ppapi/cpp/private/flash_message_loop.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
| +
|
| +REGISTER_TEST_CASE(FlashMessageLoop);
|
| +
|
| +TestFlashMessageLoop::TestFlashMessageLoop(TestingInstance* instance)
|
| + : TestCase(instance),
|
| + message_loop_(NULL),
|
| + PP_ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {
|
| +}
|
| +
|
| +TestFlashMessageLoop::~TestFlashMessageLoop() {
|
| + PP_DCHECK(!message_loop_);
|
| +}
|
| +
|
| +void TestFlashMessageLoop::RunTests(const std::string& filter) {
|
| + RUN_TEST(Basics, filter);
|
| + RUN_TEST(RunWithoutQuit, filter);
|
| +}
|
| +
|
| +std::string TestFlashMessageLoop::TestBasics() {
|
| + message_loop_ = new pp::flash::MessageLoop(instance_);
|
| +
|
| + pp::CompletionCallback callback =
|
| + callback_factory_.NewRequiredCallback(
|
| + &TestFlashMessageLoop::QuitMessageLoopTask);
|
| + pp::Module::Get()->core()->CallOnMainThread(0, callback);
|
| + int32_t result = message_loop_->Run();
|
| +
|
| + ASSERT_TRUE(message_loop_);
|
| + delete message_loop_;
|
| + message_loop_ = NULL;
|
| +
|
| + ASSERT_EQ(result, PP_OK);
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestFlashMessageLoop::TestRunWithoutQuit() {
|
| + message_loop_ = new pp::flash::MessageLoop(instance_);
|
| +
|
| + pp::CompletionCallback callback =
|
| + callback_factory_.NewRequiredCallback(
|
| + &TestFlashMessageLoop::DestroyMessageLoopResourceTask);
|
| + pp::Module::Get()->core()->CallOnMainThread(0, callback);
|
| + int32_t result = message_loop_->Run();
|
| +
|
| + if (message_loop_) {
|
| + delete message_loop_;
|
| + message_loop_ = NULL;
|
| + ASSERT_TRUE(false);
|
| + }
|
| +
|
| + ASSERT_EQ(result, PP_ERROR_ABORTED);
|
| + PASS();
|
| +}
|
| +
|
| +void TestFlashMessageLoop::QuitMessageLoopTask(int32_t unused) {
|
| + if (message_loop_)
|
| + message_loop_->Quit();
|
| + else
|
| + PP_NOTREACHED();
|
| +}
|
| +
|
| +void TestFlashMessageLoop::DestroyMessageLoopResourceTask(int32_t unused) {
|
| + if (message_loop_) {
|
| + delete message_loop_;
|
| + message_loop_ = NULL;
|
| + } else {
|
| + PP_NOTREACHED();
|
| + }
|
| +}
|
|
|