blob: 1582eaf4dff2de1e87d450ebb1ca125a7fb98c28 [file] [log] [blame]
// 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.
// NPAPI interactive UI tests.
#include "base/file_path.h"
#include "base/test/test_timeouts.h"
#include "chrome/test/automation/automation_proxy.h"
#include "chrome/test/automation/window_proxy.h"
#include "chrome/test/base/ui_test_utils.h"
#include "chrome/test/ui/npapi_test_helper.h"
#include "content/browser/net/url_request_mock_http_job.h"
#include "ui/base/keycodes/keyboard_codes.h"
const char kTestCompleteCookie[] = "status";
const char kTestCompleteSuccess[] = "OK";
static const FilePath::CharType* kTestDir = FILE_PATH_LITERAL("npapi");
// Tests if a plugin executing a self deleting script in the context of
// a synchronous mousemove works correctly
TEST_F(NPAPIVisiblePluginTester, SelfDeletePluginInvokeInSynchronousMouseMove) {
show_window_ = true;
const FilePath kTestDir(FILE_PATH_LITERAL("npapi"));
const FilePath test_case(
FILE_PATH_LITERAL("execute_script_delete_in_mouse_move.html"));
GURL url = ui_test_utils::GetTestUrl(kTestDir, test_case);
NavigateToURL(url);
scoped_refptr<WindowProxy> window(automation()->GetActiveWindow());
gfx::Point cursor_position(150, 250);
window->SimulateOSMouseMove(cursor_position);
WaitForFinish("execute_script_delete_in_mouse_move", "1", url,
kTestCompleteCookie, kTestCompleteSuccess,
TestTimeouts::action_max_timeout_ms());
}
// Flaky, http://crbug.com/60071.
TEST_F(NPAPIVisiblePluginTester, FLAKY_GetURLRequest404Response) {
GURL url(URLRequestMockHTTPJob::GetMockUrl(
FilePath(FILE_PATH_LITERAL(
"npapi/plugin_url_request_404.html"))));
NavigateToURL(url);
// Wait for the alert dialog and then close it.
automation()->WaitForAppModalDialog();
scoped_refptr<WindowProxy> window(automation()->GetActiveWindow());
ASSERT_TRUE(window.get());
ASSERT_TRUE(window->SimulateOSKeyPress(ui::VKEY_ESCAPE, 0));
WaitForFinish("geturl_404_response", "1", url, kTestCompleteCookie,
kTestCompleteSuccess, TestTimeouts::action_max_timeout_ms());
}
// Tests if a plugin executing a self deleting script using Invoke with
// a modal dialog showing works without crashing or hanging
// Disabled, flakily exceeds timeout, http://crbug.com/46257.
TEST_F(NPAPIVisiblePluginTester, DISABLED_SelfDeletePluginInvokeAlert) {
const FilePath test_case(
FILE_PATH_LITERAL("self_delete_plugin_invoke_alert.html"));
GURL url = ui_test_utils::GetTestUrl(FilePath(kTestDir), test_case);
ASSERT_NO_FATAL_FAILURE(NavigateToURL(url));
// Wait for the alert dialog and then close it.
ASSERT_TRUE(automation()->WaitForAppModalDialog());
scoped_refptr<WindowProxy> window(automation()->GetActiveWindow());
ASSERT_TRUE(window.get());
ASSERT_TRUE(window->SimulateOSKeyPress(ui::VKEY_ESCAPE, 0));
WaitForFinish("self_delete_plugin_invoke_alert", "1", url,
kTestCompleteCookie, kTestCompleteSuccess,
TestTimeouts::action_max_timeout_ms());
}