| Index: content/browser/plugin_browsertest.cc
|
| ===================================================================
|
| --- content/browser/plugin_browsertest.cc (revision 147965)
|
| +++ content/browser/plugin_browsertest.cc (working copy)
|
| @@ -3,24 +3,24 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/command_line.h"
|
| +#include "base/file_util.h"
|
| #include "base/path_service.h"
|
| #include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/browser/ui/browser_tabstrip.h"
|
| -#include "chrome/test/base/in_process_browser_test.h"
|
| -#include "chrome/test/base/ui_test_utils.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/test/browser_test_utils.h"
|
| +#include "content/shell/shell.h"
|
| +#include "content/shell/shell_switches.h"
|
| +#include "content/test/content_browser_test.h"
|
| +#include "content/test/content_browser_test_utils.h"
|
| #include "content/test/net/url_request_mock_http_job.h"
|
| +#include "ui/gfx/rect.h"
|
| #include "webkit/plugins/plugin_switches.h"
|
|
|
| #if defined(OS_WIN)
|
| #include "base/win/registry.h"
|
| #endif
|
|
|
| -using content::BrowserThread;
|
| -
|
| namespace {
|
|
|
| void SetUrlRequestMock(const FilePath& path) {
|
| @@ -29,19 +29,23 @@
|
|
|
| }
|
|
|
| -class PluginTest : public InProcessBrowserTest {
|
| +namespace content {
|
| +
|
| +class PluginTest : public ContentBrowserTest {
|
| protected:
|
| PluginTest() {}
|
|
|
| virtual void SetUpCommandLine(CommandLine* command_line) {
|
| // Some NPAPI tests schedule garbage collection to force object tear-down.
|
| command_line->AppendSwitchASCII(switches::kJavaScriptFlags, "--expose_gc");
|
| - // For OpenPopupWindowWithPlugin.
|
| - command_line->AppendSwitch(switches::kDisablePopupBlocking);
|
| -#if defined(OS_WIN)
|
| +
|
| const testing::TestInfo* const test_info =
|
| testing::UnitTest::GetInstance()->current_test_info();
|
| - if (strcmp(test_info->name(), "MediaPlayerNew") == 0) {
|
| + if (strcmp(test_info->name(), "PrivateEnabled") == 0) {
|
| + command_line->AppendSwitch(switches::kOffTheRecord);
|
| + }
|
| +#if defined(OS_WIN)
|
| + else 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;
|
| @@ -66,30 +70,20 @@
|
| // 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 {
|
| - FilePath path = ui_test_utils::GetTestFilePath(FilePath(), FilePath());
|
| + FilePath path = GetTestFilePath("", "");
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE, base::Bind(&SetUrlRequestMock, path));
|
| }
|
|
|
| void LoadAndWait(const GURL& url) {
|
| string16 expected_title(ASCIIToUTF16("OK"));
|
| - content::TitleWatcher title_watcher(
|
| - chrome::GetActiveWebContents(browser()), expected_title);
|
| + TitleWatcher title_watcher(shell()->web_contents(), expected_title);
|
| title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
|
| title_watcher.AlsoWaitForTitle(ASCIIToUTF16("plugin_not_found"));
|
| - ui_test_utils::NavigateToURL(browser(), url);
|
| + NavigateToURL(shell(), url);
|
| string16 title = title_watcher.WaitAndGetTitle();
|
| if (title == ASCIIToUTF16("plugin_not_found")) {
|
| const testing::TestInfo* const test_info =
|
| @@ -102,19 +96,16 @@
|
| }
|
|
|
| GURL GetURL(const char* filename) {
|
| - return ui_test_utils::GetTestUrl(
|
| - FilePath().AppendASCII("npapi"), FilePath().AppendASCII(filename));
|
| + return GetTestUrl("npapi", filename);
|
| }
|
|
|
| void NavigateAway() {
|
| - GURL url = ui_test_utils::GetTestUrl(
|
| - FilePath(), FilePath().AppendASCII("simple.html"));
|
| + GURL url = GetTestUrl(".", "simple_page.html");
|
| LoadAndWait(url);
|
| }
|
|
|
| void TestPlugin(const char* filename) {
|
| - FilePath path = ui_test_utils::GetTestFilePath(
|
| - FilePath().AppendASCII("plugin"), FilePath().AppendASCII(filename));
|
| + FilePath path = GetTestFilePath("plugin", filename);
|
| if (!file_util::PathExists(path)) {
|
| const testing::TestInfo* const test_info =
|
| testing::UnitTest::GetInstance()->current_test_info();
|
| @@ -123,8 +114,7 @@
|
| return;
|
| }
|
|
|
| - GURL url = ui_test_utils::GetTestUrl(
|
| - FilePath().AppendASCII("plugin"), FilePath().AppendASCII(filename));
|
| + GURL url = GetTestUrl("plugin", filename);
|
| LoadAndWait(url);
|
| }
|
| };
|
| @@ -151,8 +141,7 @@
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(PluginTest, NPObjectReleasedOnDestruction) {
|
| - ui_test_utils::NavigateToURL(
|
| - browser(), GetURL("npobject_released_on_destruction.html"));
|
| + NavigateToURL(shell(), GetURL("npobject_released_on_destruction.html"));
|
| NavigateAway();
|
| }
|
|
|
| @@ -171,14 +160,12 @@
|
| // SimulateMouseClick get to Mac plugins, currently it doesn't work.
|
| IN_PROC_BROWSER_TEST_F(PluginTest,
|
| SelfDeletePluginInvokeInSynchronousMouseUp) {
|
| - ui_test_utils::NavigateToURL(
|
| - browser(), GetURL("execute_script_delete_in_mouse_up.html"));
|
| + NavigateToURL(shell(), GetURL("execute_script_delete_in_mouse_up.html"));
|
|
|
| string16 expected_title(ASCIIToUTF16("OK"));
|
| - content::TitleWatcher title_watcher(
|
| - chrome::GetActiveWebContents(browser()), expected_title);
|
| + TitleWatcher title_watcher(shell()->web_contents(), expected_title);
|
| title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
|
| - SimulateMouseClick(chrome::GetActiveWebContents(browser()));
|
| + SimulateMouseClick(shell()->web_contents());
|
| EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
|
| }
|
| #endif
|
| @@ -197,16 +184,13 @@
|
| IN_PROC_BROWSER_TEST_F(PluginTest, SelfDeletePluginInvokeAlert) {
|
| // Navigate asynchronously because if we waitd until it completes, there's a
|
| // race condition where the alert can come up before we start watching for it.
|
| - ui_test_utils::NavigateToURLWithDisposition(
|
| - browser(), GetURL("self_delete_plugin_invoke_alert.html"), CURRENT_TAB,
|
| - 0);
|
| + shell()->LoadURL(GetURL("self_delete_plugin_invoke_alert.html"));
|
|
|
| string16 expected_title(ASCIIToUTF16("OK"));
|
| - content::TitleWatcher title_watcher(
|
| - chrome::GetActiveWebContents(browser()), expected_title);
|
| + TitleWatcher title_watcher(shell()->web_contents(), expected_title);
|
| title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
|
|
|
| - ui_test_utils::WaitForAppModalDialogAndCloseIt();
|
| + WaitForAppModalDialog(shell());
|
|
|
| EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
|
| }
|
| @@ -296,11 +280,10 @@
|
| #define MAYBE_AlertInWindowMessage AlertInWindowMessage
|
| #endif
|
| IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE_AlertInWindowMessage) {
|
| - ui_test_utils::NavigateToURL(
|
| - browser(), GetURL("alert_in_window_message.html"));
|
| + NavigateToURL(shell(), GetURL("alert_in_window_message.html"));
|
|
|
| - ui_test_utils::WaitForAppModalDialogAndCloseIt();
|
| - ui_test_utils::WaitForAppModalDialogAndCloseIt();
|
| + WaitForAppModalDialog(shell());
|
| + WaitForAppModalDialog(shell());
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(PluginTest, VerifyNPObjectLifetimeTest) {
|
| @@ -348,7 +331,9 @@
|
| // 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"));
|
| + GURL url = GetURL("private.html");
|
| + url = GURL(url.spec() + "?private");
|
| + LoadAndWait(url);
|
| }
|
|
|
| #if defined(OS_WIN) || defined(OS_MACOSX)
|
| @@ -392,21 +377,21 @@
|
| #if defined(OS_MACOSX)
|
| // Test is flaky, see http://crbug.com/134515.
|
| IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_PluginConvertPointTest) {
|
| - gfx::NativeWindow window = NULL;
|
| gfx::Rect bounds(50, 50, 400, 400);
|
| - ui_test_utils::GetNativeWindow(browser(), &window);
|
| - ui_test_utils::SetWindowBounds(window, bounds);
|
| + SetWindowBounds(shell()->window(), bounds);
|
|
|
| - ui_test_utils::NavigateToURL(browser(), GetURL("convert_point.html"));
|
| + NavigateToURL(shell(), GetURL("convert_point.html"));
|
|
|
| string16 expected_title(ASCIIToUTF16("OK"));
|
| - content::TitleWatcher title_watcher(
|
| - chrome::GetActiveWebContents(browser()), expected_title);
|
| + TitleWatcher title_watcher(shell()->web_contents(), expected_title);
|
| title_watcher.AlsoWaitForTitle(ASCIIToUTF16("FAIL"));
|
| // TODO(stuartmorgan): When the automation system supports sending clicks,
|
| // change the test to trigger on mouse-down rather than window focus.
|
| - static_cast<content::WebContentsDelegate*>(browser())->
|
| - ActivateContents(chrome::GetActiveWebContents(browser()));
|
| +
|
| + // TODO: is this code still needed? It was here when it used to run in
|
| + // browser_tests.
|
| + //static_cast<WebContentsDelegate*>(shell())->
|
| + // ActivateContents(shell()->web_contents());
|
| EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
|
| }
|
| #endif
|
| @@ -467,3 +452,5 @@
|
| TestPlugin("silverlight.html");
|
| }
|
| #endif // defined(OS_WIN)
|
| +
|
| +} // namespace content
|
|
|