summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/markup/test/browser_markup_events_jquery_1.1.js231
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);
+});