| Index: chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| diff --git a/chrome/browser/automation/automation_tab_helper_browsertest.cc b/chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| index 59ae8af41894097e940dd62a551594d22c8410f0..d51babc5f81698034f118d680309702a2cad6c28 100644
|
| --- a/chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| +++ b/chrome/browser/automation/automation_tab_helper_browsertest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/automation/mock_tab_event_observer.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
|
| +#include "chrome/common/automation_events.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "chrome/common/url_constants.h"
|
| @@ -28,6 +29,7 @@
|
| #include "net/base/net_util.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "ui/gfx/point.h"
|
|
|
| using testing::_;
|
|
|
| @@ -214,3 +216,44 @@ IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest,
|
|
|
| ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUICrashURL));
|
| }
|
| +
|
| +IN_PROC_BROWSER_TEST_F(AutomationTabHelperBrowserTest, ProcessMouseEvent) {
|
| + MockTabEventObserver mock_tab_observer(tab_helper());
|
| +
|
| + EXPECT_CALL(mock_tab_observer,
|
| + OnWillProcessMouseEventAt(
|
| + testing::AllOf(
|
| + testing::Property(&gfx::Point::x, testing::Eq(5)),
|
| + testing::Property(&gfx::Point::y, testing::Eq(10)))))
|
| + .Times(2);
|
| + EXPECT_CALL(mock_tab_observer, OnProcessMouseEventACK(true, _))
|
| + .Times(2);
|
| +
|
| + ASSERT_TRUE(ui_test_utils::ExecuteJavaScript(
|
| + browser()->GetSelectedWebContents()->GetRenderViewHost(),
|
| + L"",
|
| + L"window.didClick = false;"
|
| + L"document.body.innerHTML ="
|
| + L" '<a style=\\'position:absolute; left:0; top:0\\'>link</a>';"
|
| + L"document.querySelector('a').addEventListener('click', function() {"
|
| + L" window.didClick = true;"
|
| + L"}, true);"));
|
| + AutomationMouseEvent automation_event;
|
| + automation_event.location_script_chain.push_back(
|
| + ScriptEvaluationRequest("{'x': 5, 'y': 10}", ""));
|
| + WebKit::WebMouseEvent& mouse_event = automation_event.mouse_event;
|
| + mouse_event.type = WebKit::WebInputEvent::MouseDown;
|
| + mouse_event.button = WebKit::WebMouseEvent::ButtonLeft;
|
| + mouse_event.clickCount = 1;
|
| + tab_helper()->ProcessMouseEvent(automation_event);
|
| + mouse_event.type = WebKit::WebInputEvent::MouseUp;
|
| + tab_helper()->ProcessMouseEvent(automation_event);
|
| +
|
| + bool did_click = false;
|
| + ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
|
| + browser()->GetSelectedWebContents()->GetRenderViewHost(),
|
| + L"",
|
| + L"window.domAutomationController.send(window.didClick);",
|
| + &did_click));
|
| + EXPECT_TRUE(did_click);
|
| +}
|
|
|