summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.0.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/markup/test/browser_markup_events_jquery_1.0.js224
1 files changed, 224 insertions, 0 deletions
diff --git a/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.0.js b/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.0.js
new file mode 100644
index 0000000000..53a4805453
--- /dev/null
+++ b/devtools/client/inspector/markup/test/browser_markup_events_jquery_1.0.js
@@ -0,0 +1,224 @@
+/* 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.0).
+
+const TEST_LIB = "lib_jquery_1.0.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: "DOMContentLoaded",
+ filename: URL_ROOT_SSL + TEST_LIB + ":1117:16",
+ attributes: ["Bubbling"],
+ handler: `
+ function() {
+ // Make sure that the DOM is not already loaded
+ if (!jQuery.isReady) {
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If there are functions bound, to execute
+ if (jQuery.readyList) {
+ // Execute all of them
+ for (var i = 0; i < jQuery.readyList.length; i++)
+ jQuery.readyList[i].apply(document);
+
+ // Reset the list of functions
+ jQuery.readyList = null;
+ }
+ }
+ }`,
+ },
+ {
+ 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 + ":894:18",
+ attributes: ["Bubbling"],
+ handler: `
+ function(event) {
+ if (typeof jQuery == "undefined") return;
+
+ event = event || jQuery.event.fix(window.event);
+
+ // If no correct event was found, fail
+ if (!event) return;
+
+ var returnValue = true;
+
+ var c = this.events[event.type];
+
+ for (var j in c) {
+ if (c[j].apply(this, [event]) === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ returnValue = false;
+ }
+ }
+
+ 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 + ":894:18",
+ attributes: ["Bubbling"],
+ handler: `
+ function(event) {
+ if (typeof jQuery == "undefined") return;
+
+ event = event || jQuery.event.fix(window.event);
+
+ // If no correct event was found, fail
+ if (!event) return;
+
+ var returnValue = true;
+
+ var c = this.events[event.type];
+
+ for (var j in c) {
+ if (c[j].apply(this, [event]) === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ returnValue = false;
+ }
+ }
+
+ return returnValue;
+ }`,
+ },
+ {
+ type: "keydown",
+ filename: TEST_URL + ":38:44",
+ attributes: ["jQuery"],
+ handler: `
+ function divKeyDown() {
+ alert(9);
+ }`,
+ },
+ {
+ type: "keydown",
+ filename: URL_ROOT_SSL + TEST_LIB + ":894:18",
+ attributes: ["Bubbling"],
+ handler: `
+ function(event) {
+ if (typeof jQuery == "undefined") return;
+
+ event = event || jQuery.event.fix(window.event);
+
+ // If no correct event was found, fail
+ if (!event) return;
+
+ var returnValue = true;
+
+ var c = this.events[event.type];
+
+ for (var j in c) {
+ if (c[j].apply(this, [event]) === false) {
+ event.preventDefault();
+ event.stopPropagation();
+ returnValue = false;
+ }
+ }
+
+ return returnValue;
+ }`,
+ },
+ ],
+ },
+];
+/* eslint-enable */
+
+add_task(async function () {
+ await runEventPopupTests(TEST_URL, TEST_DATA);
+});