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

Unified Diff: webkit/tools/test_shell/plugin_tests.cc

Issue 14304004: Convert a bunch of test_shell_tests to content_browsertests. These are tests that depend on loading… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 7 years, 8 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 | « webkit/tools/test_shell/mock_spellcheck_unittest.cc ('k') | webkit/tools/test_shell/run_all_tests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/tools/test_shell/plugin_tests.cc
===================================================================
--- webkit/tools/test_shell/plugin_tests.cc (revision 195684)
+++ webkit/tools/test_shell/plugin_tests.cc (working copy)
@@ -1,201 +0,0 @@
-// 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 <string>
-
-#include "base/file_util.h"
-#include "base/files/file_path.h"
-#include "base/path_service.h"
-#include "base/string_util.h"
-#include "net/base/escape.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/WebKit/Source/Platform/chromium/public/WebData.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
-#include "webkit/tools/test_shell/test_shell.h"
-#include "webkit/tools/test_shell/test_shell_test.h"
-
-using WebKit::WebFrame;
-using WebKit::WebScriptSource;
-using WebKit::WebString;
-
-#if defined(OS_WIN)
-#define TEST_PLUGIN_NAME "npapi_test_plugin.dll"
-#elif defined(OS_MACOSX)
-#define TEST_PLUGIN_NAME "npapi_test_plugin.plugin"
-#elif defined(OS_POSIX)
-#define TEST_PLUGIN_NAME "libnpapi_test_plugin.so"
-#endif
-
-namespace {
-
-const char kPluginsDir[] = "plugins";
-
-}
-
-// Ignore these until 64-bit plugin build is fixed. http://crbug.com/18337
-#if !defined(ARCH_CPU_64_BITS)
-// Provides functionality for creating plugin tests.
-class PluginTest : public TestShellTest {
- public:
- PluginTest() {
- base::FilePath executable_directory;
- PathService::Get(base::DIR_EXE, &executable_directory);
- plugin_src_ = executable_directory.AppendASCII(TEST_PLUGIN_NAME);
- CHECK(file_util::PathExists(plugin_src_));
-
- plugin_file_path_ = executable_directory.AppendASCII(kPluginsDir);
- file_util::CreateDirectory(plugin_file_path_);
-
- plugin_file_path_ = plugin_file_path_.AppendASCII(TEST_PLUGIN_NAME);
- }
-
- void CopyTestPlugin() {
- // On Linux, we need to delete before copying because if the plugin is a
- // hard link, the copy will fail.
- DeleteTestPlugin();
- ASSERT_TRUE(file_util::CopyDirectory(plugin_src_, plugin_file_path_, true));
- }
-
- void DeleteTestPlugin() {
- file_util::Delete(plugin_file_path_, true);
- }
-
- virtual void SetUp() {
- CopyTestPlugin();
- TestShellTest::SetUp();
- }
-
- base::FilePath plugin_src_;
- base::FilePath plugin_file_path_;
-};
-
-// Tests navigator.plugins.refresh() works.
-TEST_F(PluginTest, Refresh) {
- std::string html = "\
- <div id='result'>Test running....</div>\
- <script>\
- function check() {\
- var l = navigator.plugins.length;\
- var result = document.getElementById('result');\
- for(var i = 0; i < l; i++) {\
- if (navigator.plugins[i].filename == '" TEST_PLUGIN_NAME "') {\
- result.innerHTML = 'DONE';\
- break;\
- }\
- }\
- \
- if (result.innerHTML != 'DONE')\
- result.innerHTML = 'FAIL';\
- }\
- </script>\
- ";
-
- WebScriptSource call_check(
- WebString::fromUTF8("check();"));
- WebScriptSource refresh(
- WebString::fromUTF8("navigator.plugins.refresh(false)"));
-
- // Remove any leftover from previous tests if they exist. We must also
- // refresh WebKit's plugin cache since it might have had an entry for the
- // test plugin from a previous test.
- DeleteTestPlugin();
- ASSERT_FALSE(file_util::PathExists(plugin_file_path_));
- test_shell_->webView()->mainFrame()->executeScript(refresh);
-
- test_shell_->webView()->mainFrame()->loadHTMLString(
- html, GURL("about:blank"));
- test_shell_->WaitTestFinished();
-
- std::string text;
- test_shell_->webView()->mainFrame()->executeScript(call_check);
- text = test_shell_->webView()->mainFrame()->contentAsText(10000).utf8();
- ASSERT_EQ(text, "FAIL");
-
- CopyTestPlugin();
-
- test_shell_->webView()->mainFrame()->executeScript(refresh);
- test_shell_->webView()->mainFrame()->executeScript(call_check);
- text = test_shell_->webView()->mainFrame()->contentAsText(10000).utf8();
- ASSERT_EQ(text, "DONE");
-}
-
-// Tests that if a frame is deleted as a result of calling NPP_HandleEvent, we
-// don't crash.
-TEST_F(PluginTest, DeleteFrameDuringEvent) {
- base::FilePath test_html = data_dir_;
- test_html = test_html.AppendASCII(kPluginsDir);
- test_html = test_html.AppendASCII("delete_frame.html");
- test_shell_->LoadFile(test_html);
- test_shell_->WaitTestFinished();
-
- WebKit::WebMouseEvent input;
- input.button = WebKit::WebMouseEvent::ButtonLeft;
- input.x = 50;
- input.y = 50;
- input.type = WebKit::WebInputEvent::MouseUp;
- test_shell_->webView()->handleInputEvent(input);
-
- // No crash means we passed.
-}
-
-// Tests that a forced reload of the plugin will not crash.
-TEST_F(PluginTest, ForceReload) {
- base::FilePath test_html = data_dir_;
- test_html = test_html.AppendASCII(kPluginsDir);
- test_html = test_html.AppendASCII("force_reload.html");
- test_shell_->LoadFile(test_html);
- test_shell_->WaitTestFinished();
-
- // No crash means we passed.
-}
-
-#if defined(OS_WIN)
-BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lparam) {
- HWND* plugin_hwnd = reinterpret_cast<HWND*>(lparam);
- if (*plugin_hwnd) {
- // More than one child window found, unexpected.
- plugin_hwnd = NULL;
- return FALSE;
- }
- *plugin_hwnd = hwnd;
- return TRUE;
-}
-
-// Tests that hiding/showing the parent frame hides/shows the plugin.
-// Fails for WIN. http://crbug.com/111601
-#if defined(OS_WIN)
-#define MAYBE_PluginVisibilty DISABLED_PluginVisibilty
-#else
-#define MAYBE_PluginVisibilty PluginVisibilty
-#endif
-
-TEST_F(PluginTest, MAYBE_PluginVisibilty) {
- base::FilePath test_html = data_dir_;
- test_html = test_html.AppendASCII(kPluginsDir);
- test_html = test_html.AppendASCII("plugin_visibility.html");
- test_shell_->LoadFile(test_html);
- test_shell_->WaitTestFinished();
-
- WebFrame* main_frame = test_shell_->webView()->mainFrame();
- HWND frame_hwnd = test_shell_->webViewWnd();
- HWND plugin_hwnd = NULL;
- EnumChildWindows(frame_hwnd, EnumChildProc,
- reinterpret_cast<LPARAM>(&plugin_hwnd));
- ASSERT_TRUE(plugin_hwnd != NULL);
- ASSERT_FALSE(IsWindowVisible(plugin_hwnd));
-
- main_frame->executeScript(WebString::fromUTF8("showPlugin(true)"));
- ASSERT_TRUE(IsWindowVisible(plugin_hwnd));
-
- main_frame->executeScript(WebString::fromUTF8("showFrame(false)"));
- ASSERT_FALSE(IsWindowVisible(plugin_hwnd));
-
- main_frame->executeScript(WebString::fromUTF8("showFrame(true)"));
- ASSERT_TRUE(IsWindowVisible(plugin_hwnd));
-}
-#endif
-#endif //!ARCH_CPU_64_BITS
« no previous file with comments | « webkit/tools/test_shell/mock_spellcheck_unittest.cc ('k') | webkit/tools/test_shell/run_all_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698