Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Unified Diff: ppapi/tests/test_flash.cc

Issue 8589009: Pepper: Add some simple tests for most functions in the PPB_Flash interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fixes Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/tests/test_flash.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
+}
« no previous file with comments | « ppapi/tests/test_flash.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698