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

Unified Diff: content/browser/plugin_browsertest.cc

Issue 10389111: Convert the remaining plugin_tests from ui_tests to browser_tests. Also remove the remaining refere… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Don't run if the test data isn't there (since it's not public) Created 8 years, 7 months 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 | « chrome/test/data/simple.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/plugin_browsertest.cc
===================================================================
--- content/browser/plugin_browsertest.cc (revision 136820)
+++ content/browser/plugin_browsertest.cc (working copy)
@@ -11,7 +11,12 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/common/content_switches.h"
#include "content/test/net/url_request_mock_http_job.h"
+#include "webkit/plugins/plugin_switches.h"
+#if defined(OS_WIN)
+#include "base/win/registry.h"
+#endif
+
using content::BrowserThread;
namespace {
@@ -31,7 +36,27 @@
command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose_gc");
// For OpenPopupWindowWithPlugin.
command_line->AppendSwitch(switches::kDisablePopupBlocking);
-#if defined(OS_MACOSX)
+#if defined(OS_WIN)
+ const testing::TestInfo* const test_info =
+ testing::UnitTest::GetInstance()->current_test_info();
+ if (strcmp(test_info->name(), "MediaPlayerNew") == 0) {
+ // The installer adds our process names to the registry key below. Since
+ // the installer might not have run on this machine, add it manually.
+ base::win::RegKey regkey;
+ if (regkey.Open(HKEY_LOCAL_MACHINE,
+ L"Software\\Microsoft\\MediaPlayer\\ShimInclusionList",
+ KEY_WRITE) == ERROR_SUCCESS) {
+ regkey.CreateKey(L"BROWSER_TESTS.EXE", KEY_READ);
+ }
+ } else if (strcmp(test_info->name(), "MediaPlayerOld") == 0) {
+ // When testing the old WMP plugin, we need to force Chrome to not load
+ // the new plugin.
+ command_line->AppendSwitch(switches::kUseOldWMPPlugin);
+ } else if (strcmp(test_info->name(), "FlashSecurity") == 0) {
+ command_line->AppendSwitchASCII(switches::kTestSandbox,
+ "security_tests.dll");
+ }
+#elif defined(OS_MACOSX)
FilePath plugin_dir;
PathService::Get(base::DIR_MODULE, &plugin_dir);
plugin_dir = plugin_dir.AppendASCII("plugins");
@@ -39,6 +64,15 @@
// explicitly registered.
command_line->AppendSwitchPath(switches::kExtraPluginDir, plugin_dir);
#endif
+
+ // TODO(jam): since these plugin tests are running under Chrome, we need to
+ // tell it to disable its security features for old plugins. Once this is
+ // running under content_browsertests, these flags won't be needed.
+ // http://crbug.com/90448
+ // switches::kAllowOutdatedPlugins
+ command_line->AppendSwitch("allow-outdated-plugins");
+ // switches::kAlwaysAuthorizePlugins
+ command_line->AppendSwitch("always-authorize-plugins");
}
virtual void SetUpOnMainThread() OVERRIDE {
@@ -47,31 +81,56 @@
BrowserThread::IO, FROM_HERE, base::Bind(&SetUrlRequestMock, path));
}
- void LoadAndWait(const GURL& url, const char* title) {
- string16 expected_title(ASCIIToUTF16(title));
+ void LoadAndWait(const GURL& url) {
+ string16 expected_title(ASCIIToUTF16("OK"));
ui_test_utils::TitleWatcher title_watcher(
browser()->GetSelectedWebContents(), expected_title);
title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
+ title_watcher.AlsoWaitForTitle(ASCIIToUTF16("plugin_not_found"));
ui_test_utils::NavigateToURL(browser(), url);
- EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
+ string16 title = title_watcher.WaitAndGetTitle();
+ if (title == ASCIIToUTF16("plugin_not_found")) {
+ const testing::TestInfo* const test_info =
+ testing::UnitTest::GetInstance()->current_test_info();
+ LOG(INFO) << "PluginTest." << test_info->name() <<
+ " not running because plugin not installed.";
+ } else {
+ EXPECT_EQ(expected_title, title);
+ }
}
GURL GetURL(const char* filename) {
return ui_test_utils::GetTestUrl(
- FilePath().AppendASCII("npapi"), FilePath().AppendASCII(filename));
+ FilePath().AppendASCII("npapi"), FilePath().AppendASCII(filename));
}
void NavigateAway() {
GURL url = ui_test_utils::GetTestUrl(
FilePath(), FilePath().AppendASCII("simple.html"));
- LoadAndWait(url, "simple.html");
+ LoadAndWait(url);
}
+
+ void TestPlugin(const char* filename) {
+ FilePath path = ui_test_utils::GetTestFilePath(
+ FilePath().AppendASCII("plugin"), FilePath().AppendASCII(filename));
+ if (!file_util::PathExists(path)) {
+ const testing::TestInfo* const test_info =
+ testing::UnitTest::GetInstance()->current_test_info();
+ LOG(INFO) << "PluginTest." << test_info->name() <<
+ " not running because test data wasn't found.";
+ return;
+ }
+
+ GURL url = ui_test_utils::GetTestUrl(
+ FilePath().AppendASCII("plugin"), FilePath().AppendASCII(filename));
+ LoadAndWait(url);
+ }
};
// Make sure that navigating away from a plugin referenced by JS doesn't
// crash.
IN_PROC_BROWSER_TEST_F(PluginTest, UnloadNoCrash) {
- LoadAndWait(GetURL("layout_test_plugin.html"), "Layout Test Plugin Test");
+ LoadAndWait(GetURL("layout_test_plugin.html"));
NavigateAway();
}
@@ -79,14 +138,14 @@
// works without crashing or hanging
// Flaky: http://crbug.com/59327
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginGetUrl) {
- LoadAndWait(GetURL("self_delete_plugin_geturl.html"), "OK");
+ LoadAndWait(GetURL("self_delete_plugin_geturl.html"));
}
// Tests if a plugin executing a self deleting script using Invoke
// works without crashing or hanging
// Flaky. See http://crbug.com/30702
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginInvoke) {
- LoadAndWait(GetURL("self_delete_plugin_invoke.html"), "OK");
+ LoadAndWait(GetURL("self_delete_plugin_invoke.html"));
}
IN_PROC_BROWSER_TEST_F(PluginTest, NPObjectReleasedOnDestruction) {
@@ -100,7 +159,7 @@
// the more interesting case is out of process, where we must route
// the exception to the correct renderer.
IN_PROC_BROWSER_TEST_F(PluginTest, NPObjectSetException) {
- LoadAndWait(GetURL("npobject_set_exception.html"), "OK");
+ LoadAndWait(GetURL("npobject_set_exception.html"));
}
#if defined(OS_WIN)
@@ -128,7 +187,7 @@
GURL url(URLRequestMockHTTPJob::GetMockUrl(
FilePath().AppendASCII("npapi").
AppendASCII("plugin_url_request_404.html")));
- LoadAndWait(url, "OK");
+ LoadAndWait(url);
}
// Tests if a plugin executing a self deleting script using Invoke with
@@ -153,47 +212,47 @@
// Test passing arguments to a plugin.
IN_PROC_BROWSER_TEST_F(PluginTest, Arguments) {
- LoadAndWait(GetURL("arguments.html"), "OK");
+ LoadAndWait(GetURL("arguments.html"));
}
// Test invoking many plugins within a single page.
IN_PROC_BROWSER_TEST_F(PluginTest, ManyPlugins) {
- LoadAndWait(GetURL("many_plugins.html"), "OK");
+ LoadAndWait(GetURL("many_plugins.html"));
}
// Test various calls to GetURL from a plugin.
IN_PROC_BROWSER_TEST_F(PluginTest, GetURL) {
- LoadAndWait(GetURL("geturl.html"), "OK");
+ LoadAndWait(GetURL("geturl.html"));
}
// Test various calls to GetURL for javascript URLs with
// non NULL targets from a plugin.
IN_PROC_BROWSER_TEST_F(PluginTest, GetJavaScriptURL) {
- LoadAndWait(GetURL("get_javascript_url.html"), "OK");
+ LoadAndWait(GetURL("get_javascript_url.html"));
}
// Test that calling GetURL with a javascript URL and target=_self
// works properly when the plugin is embedded in a subframe.
IN_PROC_BROWSER_TEST_F(PluginTest, GetJavaScriptURL2) {
- LoadAndWait(GetURL("get_javascript_url2.html"), "OK");
+ LoadAndWait(GetURL("get_javascript_url2.html"));
}
// Test is flaky on linux/cros/win builders. http://crbug.com/71904
IN_PROC_BROWSER_TEST_F(PluginTest, GetURLRedirectNotification) {
- LoadAndWait(GetURL("geturl_redirect_notify.html"), "OK");
+ LoadAndWait(GetURL("geturl_redirect_notify.html"));
}
// Tests that identity is preserved for NPObjects passed from a plugin
// into JavaScript.
IN_PROC_BROWSER_TEST_F(PluginTest, NPObjectIdentity) {
- LoadAndWait(GetURL("npobject_identity.html"), "OK");
+ LoadAndWait(GetURL("npobject_identity.html"));
}
// Tests that if an NPObject is proxies back to its original process, the
// original pointer is returned and not a proxy. If this fails the plugin
// will crash.
IN_PROC_BROWSER_TEST_F(PluginTest, NPObjectProxy) {
- LoadAndWait(GetURL("npobject_proxy.html"), "OK");
+ LoadAndWait(GetURL("npobject_proxy.html"));
}
#if defined(OS_WIN) || defined(OS_MACOSX)
@@ -201,32 +260,32 @@
// a synchronous paint event works correctly
// http://crbug.com/44960
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginInvokeInSynchronousPaint) {
- LoadAndWait(GetURL("execute_script_delete_in_paint.html"), "OK");
+ LoadAndWait(GetURL("execute_script_delete_in_paint.html"));
}
#endif
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginInNewStream) {
- LoadAndWait(GetURL("self_delete_plugin_stream.html"), "OK");
+ LoadAndWait(GetURL("self_delete_plugin_stream.html"));
}
// This test asserts on Mac in plugin_host in the NPNVWindowNPObject case.
#if !(defined(OS_MACOSX) && !defined(NDEBUG))
// If this test flakes use http://crbug.com/95558.
IN_PROC_BROWSER_TEST_F(PluginTest, DeletePluginInDeallocate) {
- LoadAndWait(GetURL("plugin_delete_in_deallocate.html"), "OK");
+ LoadAndWait(GetURL("plugin_delete_in_deallocate.html"));
}
#endif
#if defined(OS_WIN)
IN_PROC_BROWSER_TEST_F(PluginTest, VerifyPluginWindowRect) {
- LoadAndWait(GetURL("verify_plugin_window_rect.html"), "OK");
+ LoadAndWait(GetURL("verify_plugin_window_rect.html"));
}
// Tests that creating a new instance of a plugin while another one is handling
// a paint message doesn't cause deadlock.
IN_PROC_BROWSER_TEST_F(PluginTest, CreateInstanceInPaint) {
- LoadAndWait(GetURL("create_instance_in_paint.html"), "OK");
+ LoadAndWait(GetURL("create_instance_in_paint.html"));
}
// Tests that putting up an alert in response to a paint doesn't deadlock.
@@ -239,20 +298,20 @@
}
IN_PROC_BROWSER_TEST_F(PluginTest, VerifyNPObjectLifetimeTest) {
- LoadAndWait(GetURL("npobject_lifetime_test.html"), "OK");
+ LoadAndWait(GetURL("npobject_lifetime_test.html"));
}
// Tests that we don't crash or assert if NPP_New fails
IN_PROC_BROWSER_TEST_F(PluginTest, NewFails) {
- LoadAndWait(GetURL("new_fails.html"), "OK");
+ LoadAndWait(GetURL("new_fails.html"));
}
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginInNPNEvaluate) {
- LoadAndWait(GetURL("execute_script_delete_in_npn_evaluate.html"), "OK");
+ LoadAndWait(GetURL("execute_script_delete_in_npn_evaluate.html"));
}
IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeleteCreatePluginInNPNEvaluate) {
- LoadAndWait(GetURL("npn_plugin_delete_create_in_evaluate.html"), "OK");
+ LoadAndWait(GetURL("npn_plugin_delete_create_in_evaluate.html"));
}
#endif // OS_WIN
@@ -263,34 +322,34 @@
// Disabled on Mac because the plugin side isn't implemented yet, see
// "TODO(port)" in plugin_javascript_open_popup.cc.
IN_PROC_BROWSER_TEST_F(PluginTest, OpenPopupWindowWithPlugin) {
- LoadAndWait(GetURL("get_javascript_open_popup_with_plugin.html"), "OK");
+ LoadAndWait(GetURL("get_javascript_open_popup_with_plugin.html"));
}
#endif
// Test checking the privacy mode is off.
IN_PROC_BROWSER_TEST_F(PluginTest, PrivateDisabled) {
- LoadAndWait(GetURL("private.html"), "OK");
+ LoadAndWait(GetURL("private.html"));
}
IN_PROC_BROWSER_TEST_F(PluginTest, ScheduleTimer) {
- LoadAndWait(GetURL("schedule_timer.html"), "OK");
+ LoadAndWait(GetURL("schedule_timer.html"));
}
IN_PROC_BROWSER_TEST_F(PluginTest, PluginThreadAsyncCall) {
- LoadAndWait(GetURL("plugin_thread_async_call.html"), "OK");
+ LoadAndWait(GetURL("plugin_thread_async_call.html"));
}
// Test checking the privacy mode is on.
// If this flakes on Linux, use http://crbug.com/104380
IN_PROC_BROWSER_TEST_F(PluginTest, PrivateEnabled) {
- LoadAndWait(GetURL("private.html"), "OK");
+ LoadAndWait(GetURL("private.html"));
}
#if defined(OS_WIN) || defined(OS_MACOSX)
// Test a browser hang due to special case of multiple
// plugin instances indulged in sync calls across renderer.
IN_PROC_BROWSER_TEST_F(PluginTest, MultipleInstancesSyncCalls) {
- LoadAndWait(GetURL("multiple_instances_sync_calls.html"), "OK");
+ LoadAndWait(GetURL("multiple_instances_sync_calls.html"));
}
#endif
@@ -298,12 +357,12 @@
GURL url(URLRequestMockHTTPJob::GetMockUrl(
FilePath().AppendASCII("npapi").
AppendASCII("plugin_url_request_fail_write.html")));
- LoadAndWait(url, "OK");
+ LoadAndWait(url);
}
#if defined(OS_WIN)
IN_PROC_BROWSER_TEST_F(PluginTest, EnsureScriptingWorksInDestroy) {
- LoadAndWait(GetURL("ensure_scripting_works_in_destroy.html"), "OK");
+ LoadAndWait(GetURL("ensure_scripting_works_in_destroy.html"));
}
// This test uses a Windows Event to signal to the plugin that it should crash
@@ -311,7 +370,7 @@
IN_PROC_BROWSER_TEST_F(PluginTest, NoHangIfInitCrashes) {
HANDLE crash_event = CreateEvent(NULL, TRUE, FALSE, L"TestPluginCrashOnInit");
SetEvent(crash_event);
- LoadAndWait(GetURL("no_hang_if_init_crashes.html"), "OK");
+ LoadAndWait(GetURL("no_hang_if_init_crashes.html"));
CloseHandle(crash_event);
}
#endif
@@ -321,7 +380,7 @@
GURL url(URLRequestMockHTTPJob::GetMockUrl(
FilePath().AppendASCII("npapi").
AppendASCII("plugin_url_request_referrer_test.html")));
- LoadAndWait(url, "OK");
+ LoadAndWait(url);
}
#if defined(OS_MACOSX)
@@ -344,3 +403,60 @@
EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
#endif
+
+IN_PROC_BROWSER_TEST_F(PluginTest, Flash) {
+ TestPlugin("flash.html");
+}
+
+#if defined(OS_WIN)
+// Windows only test
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_FlashSecurity) {
+ TestPlugin("flash.html");
+}
+#endif // defined(OS_WIN)
+
+#if defined(OS_WIN)
+// TODO(port) Port the following tests to platforms that have the required
+// plugins.
+// Flaky: http://crbug.com/55915
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_Quicktime) {
+ TestPlugin("quicktime.html");
+}
+
+// Disabled - http://crbug.com/44662
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_MediaPlayerNew) {
+ TestPlugin("wmp_new.html");
+}
+
+// http://crbug.com/4809
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_MediaPlayerOld) {
+ TestPlugin("wmp_old.html");
+}
+
+// Disabled - http://crbug.com/44673
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_Real) {
+ TestPlugin("real.html");
+}
+
+IN_PROC_BROWSER_TEST_F(PluginTest, FlashOctetStream) {
+ TestPlugin("flash-octet-stream.html");
+}
+
+#if defined(OS_WIN)
+// http://crbug.com/53926
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_FlashLayoutWhilePainting) {
+#else
+IN_PROC_BROWSER_TEST_F(PluginTest, FlashLayoutWhilePainting) {
+#endif
+ TestPlugin("flash-layout-while-painting.html");
+}
+
+// http://crbug.com/8690
+IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_Java) {
+ TestPlugin("Java.html");
+}
+
+IN_PROC_BROWSER_TEST_F(PluginTest, Silverlight) {
+ TestPlugin("silverlight.html");
+}
+#endif // defined(OS_WIN)
« no previous file with comments | « chrome/test/data/simple.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698