| Index: ppapi/tests/test_flash.cc
|
| diff --git a/ppapi/tests/test_flash.cc b/ppapi/tests/test_flash.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d7ac95ad8b724e34fc54728aa69902f1bff553e3
|
| --- /dev/null
|
| +++ b/ppapi/tests/test_flash.cc
|
| @@ -0,0 +1,104 @@
|
| +// Copyright (c) 2011 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.h"
|
| +
|
| +#include "base/compiler_specific.h"
|
| +#include "ppapi/c/private/ppb_flash.h"
|
| +#include "ppapi/cpp/instance.h"
|
| +#include "ppapi/cpp/module.h"
|
| +#include "ppapi/cpp/var.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
| +
|
| +REGISTER_TEST_CASE(Flash);
|
| +
|
| +using pp::Var;
|
| +
|
| +TestFlash::TestFlash(TestingInstance* instance)
|
| + : TestCase(instance),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {
|
| +}
|
| +
|
| +bool TestFlash::Init() {
|
| + flash_interface_ = static_cast<const PPB_Flash*>(
|
| + pp::Module::Get()->GetBrowserInterface(PPB_FLASH_INTERFACE));
|
| + return !!flash_interface_;
|
| +}
|
| +
|
| +void TestFlash::RunTests(const std::string& filter) {
|
| + RUN_TEST(SetInstanceAlwaysOnTop, filter);
|
| + RUN_TEST(GetProxyForURL, filter);
|
| + RUN_TEST(MessageLoop, filter);
|
| + RUN_TEST(GetLocalTimeZoneOffset, filter);
|
| + RUN_TEST(GetCommandLineArgs, filter);
|
| +}
|
| +
|
| +std::string TestFlash::TestSetInstanceAlwaysOnTop() {
|
| + flash_interface_->SetInstanceAlwaysOnTop(instance_->pp_instance(), PP_TRUE);
|
| + flash_interface_->SetInstanceAlwaysOnTop(instance_->pp_instance(), PP_FALSE);
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestFlash::TestGetProxyForURL() {
|
| + Var result(Var::PassRef(),
|
| + flash_interface_->GetProxyForURL(instance_->pp_instance(),
|
| + "http://127.0.0.1/foobar/"));
|
| + ASSERT_TRUE(result.is_string());
|
| + // Assume no one configures a proxy for localhost.
|
| + ASSERT_EQ("DIRECT", result.AsString());
|
| +
|
| + result = Var(Var::PassRef(),
|
| + flash_interface_->GetProxyForURL(instance_->pp_instance(),
|
| + "http://www.google.com"));
|
| + // Don't know what the proxy might be, but it should be a valid result.
|
| + ASSERT_TRUE(result.is_string());
|
| +
|
| + result = Var(Var::PassRef(),
|
| + flash_interface_->GetProxyForURL(instance_->pp_instance(),
|
| + "file:///tmp"));
|
| + ASSERT_TRUE(result.is_string());
|
| + // Should get "DIRECT" for file:// URLs.
|
| + ASSERT_EQ("DIRECT", result.AsString());
|
| +
|
| + result = Var(Var::PassRef(),
|
| + flash_interface_->GetProxyForURL(instance_->pp_instance(),
|
| + "this_isnt_an_url"));
|
| + // Should be an error.
|
| + ASSERT_TRUE(result.is_undefined());
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestFlash::TestMessageLoop() {
|
| + pp::CompletionCallback callback =
|
| + callback_factory_.NewRequiredCallback(&TestFlash::QuitMessageLoopTask);
|
| + pp::Module::Get()->core()->CallOnMainThread(0, callback);
|
| + flash_interface_->RunMessageLoop(instance_->pp_instance());
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestFlash::TestGetLocalTimeZoneOffset() {
|
| + double result = flash_interface_->GetLocalTimeZoneOffset(
|
| + instance_->pp_instance(), 1321491298.0);
|
| + // The result depends on the local time zone, but +/- 14h from UTC should
|
| + // cover the possibilities.
|
| + ASSERT_TRUE(result >= -14 * 60 * 60);
|
| + ASSERT_TRUE(result <= 14 * 60 * 60);
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +std::string TestFlash::TestGetCommandLineArgs() {
|
| + Var result(Var::PassRef(),
|
| + flash_interface_->GetCommandLineArgs(
|
| + pp::Module::Get()->pp_module()));
|
| + ASSERT_TRUE(result.is_string());
|
| +
|
| + PASS();
|
| +}
|
| +
|
| +void TestFlash::QuitMessageLoopTask(int32_t) {
|
| + flash_interface_->QuitMessageLoop(instance_->pp_instance());
|
| +}
|
|
|