diff options
Diffstat (limited to '')
-rw-r--r-- | devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js b/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js new file mode 100644 index 0000000000..6da88966a1 --- /dev/null +++ b/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js @@ -0,0 +1,231 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ +/* import-globals-from helper_events_test_runner.js */ +"use strict"; + +// Test that markup view event bubbles show the correct event info for jQuery +// and jQuery Live events (jQuery version 1.1). + +const TEST_LIB = "lib_jquery_1.1.js"; +const TEST_URL = URL_ROOT_SSL + "doc_markup_events_jquery.html?" + TEST_LIB; + +loadHelperScript("helper_events_test_runner.js"); + +/*eslint-disable */ +const TEST_DATA = [ + { + selector: "html", + expected: [ + { + type: "load", + filename: TEST_URL + ":29:38", + attributes: ["Bubbling"], + handler: ` + () => { + const handler1 = function liveDivDblClick() { + alert(1); + }; + const handler2 = function liveDivDragStart() { + alert(2); + }; + const handler3 = function liveDivDragLeave() { + alert(3); + }; + const handler4 = function liveDivDragEnd() { + alert(4); + }; + const handler5 = function liveDivDrop() { + alert(5); + }; + const handler6 = function liveDivDragOver() { + alert(6); + }; + const handler7 = function divClick1() { + alert(7); + }; + const handler8 = function divClick2() { + alert(8); + }; + const handler9 = function divKeyDown() { + alert(9); + }; + const handler10 = function divDragOut() { + alert(10); + }; + + if ($("#livediv").live) { + $("#livediv").live("dblclick", handler1); + $("#livediv").live("dragstart", handler2); + } + + if ($("#livediv").delegate) { + $(document).delegate("#livediv", "dragleave", handler3); + $(document).delegate("#livediv", "dragend", handler4); + } + + if ($("#livediv").on) { + $(document).on("drop", "#livediv", handler5); + $(document).on("dragover", "#livediv", handler6); + $(document).on("dragout", "#livediv:xxxxx", handler10); + } + + const div = $("div")[0]; + $(div).click(handler7); + $(div).click(handler8); + $(div).keydown(handler9); + }`, + }, + { + type: "load", + filename: URL_ROOT_SSL + TEST_LIB + ":1224:17", + attributes: ["Bubbling"], + handler: ` + function(event) { + if (typeof jQuery == "undefined") return false; + + // Empty object is for triggered events with no data + event = jQuery.event.fix(event || window.event || {}); + + // returned undefined or false + var returnValue; + + var c = this.events[event.type]; + + var args = [].slice.call(arguments, 1); + args.unshift(event); + + for (var j in c) { + // Pass in a reference to the handler function itself + // So that we can later remove it + args[0].handler = c[j]; + args[0].data = c[j].data; + + if (c[j].apply(this, args) === false) { + event.preventDefault(); + event.stopPropagation(); + returnValue = false; + } + } + + // Clean up added properties in IE to prevent memory leak + if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = event.handler = event.data = null; + + return returnValue; + }`, + }, + ], + }, + { + selector: "#testdiv", + expected: [ + { + type: "click", + filename: TEST_URL + ":36:43", + attributes: ["jQuery"], + handler: ` + function divClick1() { + alert(7); + }`, + }, + { + type: "click", + filename: TEST_URL + ":37:43", + attributes: ["jQuery"], + handler: ` + function divClick2() { + alert(8); + }`, + }, + { + type: "click", + filename: URL_ROOT_SSL + TEST_LIB + ":1224:17", + attributes: ["Bubbling"], + handler: ` + function(event) { + if (typeof jQuery == "undefined") return false; + + // Empty object is for triggered events with no data + event = jQuery.event.fix(event || window.event || {}); + + // returned undefined or false + var returnValue; + + var c = this.events[event.type]; + + var args = [].slice.call(arguments, 1); + args.unshift(event); + + for (var j in c) { + // Pass in a reference to the handler function itself + // So that we can later remove it + args[0].handler = c[j]; + args[0].data = c[j].data; + + if (c[j].apply(this, args) === false) { + event.preventDefault(); + event.stopPropagation(); + returnValue = false; + } + } + + // Clean up added properties in IE to prevent memory leak + if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = event.handler = event.data = null; + + return returnValue; + }`, + }, + { + type: "keydown", + filename: TEST_URL + ":38:44", + attributes: ["jQuery"], + handler: ` + function divKeyDown() { + alert(9); + }`, + }, + { + type: "keydown", + filename: URL_ROOT_SSL + TEST_LIB + ":1224:17", + attributes: ["Bubbling"], + handler: ` + function(event) { + if (typeof jQuery == "undefined") return false; + + // Empty object is for triggered events with no data + event = jQuery.event.fix(event || window.event || {}); + + // returned undefined or false + var returnValue; + + var c = this.events[event.type]; + + var args = [].slice.call(arguments, 1); + args.unshift(event); + + for (var j in c) { + // Pass in a reference to the handler function itself + // So that we can later remove it + args[0].handler = c[j]; + args[0].data = c[j].data; + + if (c[j].apply(this, args) === false) { + event.preventDefault(); + event.stopPropagation(); + returnValue = false; + } + } + + // Clean up added properties in IE to prevent memory leak + if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = event.handler = event.data = null; + + return returnValue; + }`, + }, + ], + }, +]; +/* eslint-enable */ + +add_task(async function () { + await runEventPopupTests(TEST_URL, TEST_DATA); +}); |