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

Unified Diff: ppapi/native_client/tests/ppapi_browser/ppp_input_event/ppapi_ppp_input_event.js

Issue 7740013: Cloning a bunch of stuff from the native_client repository at r6528 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 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
Index: ppapi/native_client/tests/ppapi_browser/ppp_input_event/ppapi_ppp_input_event.js
===================================================================
--- ppapi/native_client/tests/ppapi_browser/ppp_input_event/ppapi_ppp_input_event.js (revision 0)
+++ ppapi/native_client/tests/ppapi_browser/ppp_input_event/ppapi_ppp_input_event.js (revision 0)
@@ -0,0 +1,89 @@
+// Copyright (c) 2011 The Native Client Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function setupTests(tester, plugin) {
+ //////////////////////////////////////////////////////////////////////////////
+ // Test Helpers
+ //////////////////////////////////////////////////////////////////////////////
+
+ // These are the coordinates of the upper-left corner of the nacl plugin
+ // TODO(mball): Avoid hardcoding this location by querying the location
+ // of the plugin.
+ var leftCorner = 8, topCorner = 79
+
+ function simulateMouseEvent(eventName) {
+ var event = document.createEvent('MouseEvents');
+ event.initMouseEvent(
+ eventName,
+ true, // bubbles
+ true, // cancelable
+ document.defaultView,
+ 1, // one click
+ 0, 0, // Screen coordinate
+ leftCorner, topCorner, // Client coordinate
+ false, false, false, false, // no key modifiers
+ 0, // button: 0 - left, 1 - middle, 2 - right
+ null); // no related targets
+ plugin.dispatchEvent(event);
+ }
+
+ function addTest(testName, testCaseEvent, eventResponse,
+ eventGeneratorCallback) {
+ tester.addAsyncTest('PPP_InputEvent::' + testName + '_' + testCaseEvent,
+ function(test) {
+ var messages = [testName + ':PASSED',
+ 'HandleInputEvent:' + eventResponse,
+ 'Cleanup:PASSED'];
+ // TODO(mball,polina): These listener functions should fail when an event
+ // is not bubbled up from the Nacl module.
+ var pluginListener = test.wrap(function(message) {
+ test.log('plugin received ' + message);
+ });
+ var parentListener = test.wrap(function(message) {
+ test.log('plugin.parentNode received ' + message);
+ });
+ test.expectMessageSequence(
+ plugin, messages,
+ function(message) {
+ if (message == messages[0]) {
+ // TODO(polina): why does this forward and bubble the event even
+ // though it was handled? Based on headers, the listeners below
+ // should contain test.fail(). Figure out if this is a bug
+ // (crbug.com/88728) or if the header comments are off.
+ plugin.addEventListener(testCaseEvent, pluginListener, false);
+ plugin.parentNode.addEventListener(
+ testCaseEvent, parentListener, false);
+ eventGeneratorCallback(testCaseEvent);
+ } else if (message == messages[1]) {
+ plugin.removeEventListener(testCaseEvent, pluginListener, false);
+ plugin.parentNode.removeEventListener(
+ testCaseEvent, parentListener, false);
+ plugin.postMessage('Cleanup');
+ } else if (message != messages[2]) {
+ test.fail('Unknown message: ' + message);
+ }
+ });
+ plugin.postMessage(testName);
+ });
+ }
+
+ //////////////////////////////////////////////////////////////////////////////
+ // Tests
+ //////////////////////////////////////////////////////////////////////////////
+ var mouseEventTests = [
+ 'TestUnfilteredMouseEvents',
+ 'TestBubbledMouseEvents',
+ 'TestUnbubbledMouseEvents'];
+
+ mouseEventTests.map(function(testName) {
+ addTest(
+ testName,
+ 'mousedown',
+ 'PP_INPUTEVENT_TYPE_MOUSEDOWN' +
+ ':PP_INPUTEVENT_MODIFIER_LEFTBUTTONDOWN' +
+ ':PP_INPUTEVENT_MOUSEBUTTON_LEFT' +
+ ':Position=0,0:ClickCount=1',
+ simulateMouseEvent);
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698