tenfourfox/devtools/client/markupview/test/browser_markupview_events_jquery_1.2.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

188 lines
6.5 KiB
JavaScript

/* vim: set ts=2 et sw=2 tw=80: */
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// Test that markup view event bubbles show the correct event info for jQuery
// and jQuery Live events (jQuery version 1.2).
const TEST_LIB = "lib_jquery_1.2_min.js";
const TEST_URL = TEST_URL_ROOT + "doc_markup_events_jquery.html?" + TEST_LIB;
loadHelperScript("helper_events_test_runner.js");
const TEST_DATA = [
{
selector: "html",
expected: [
{
type: "load",
filename: TEST_URL + ":27",
attributes: [
"Bubbling",
"DOM2"
],
handler: "() => {\n" +
" var handler1 = function liveDivDblClick() {\n" +
" alert(1);\n" +
" };\n" +
" var handler2 = function liveDivDragStart() {\n" +
" alert(2);\n" +
" };\n" +
" var handler3 = function liveDivDragLeave() {\n" +
" alert(3);\n" +
" };\n" +
" var handler4 = function liveDivDragEnd() {\n" +
" alert(4);\n" +
" };\n" +
" var handler5 = function liveDivDrop() {\n" +
" alert(5);\n" +
" };\n" +
" var handler6 = function liveDivDragOver() {\n" +
" alert(6);\n" +
" };\n" +
" var handler7 = function divClick1() {\n" +
" alert(7);\n" +
" };\n" +
" var handler8 = function divClick2() {\n" +
" alert(8);\n" +
" };\n" +
" var handler9 = function divKeyDown() {\n" +
" alert(9);\n" +
" };\n" +
" var handler10 = function divDragOut() {\n" +
" alert(10);\n" +
" };\n" +
"\n" +
" if ($(\"#livediv\").live) {\n" +
" $(\"#livediv\").live(\"dblclick\", handler1);\n" +
" $(\"#livediv\").live(\"dragstart\", handler2);\n" +
" }\n" +
"\n" +
" if ($(\"#livediv\").delegate) {\n" +
" $(document).delegate(\"#livediv\", \"dragleave\", handler3);\n" +
" $(document).delegate(\"#livediv\", \"dragend\", handler4);\n" +
" }\n" +
"\n" +
" if ($(\"#livediv\").on) {\n" +
" $(document).on(\"drop\", \"#livediv\", handler5);\n" +
" $(document).on(\"dragover\", \"#livediv\", handler6);\n" +
" $(document).on(\"dragout\", \"#livediv:xxxxx\", handler10);\n" +
" }\n" +
"\n" +
" var div = $(\"div\")[0];\n" +
" $(div).click(handler7);\n" +
" $(div).click(handler8);\n" +
" $(div).keydown(handler9);\n" +
"}"
},
{
type: "load",
filename: TEST_URL_ROOT + TEST_LIB,
attributes: [
"Bubbling",
"DOM0"
],
handler: "handle: function(event) {\n" +
" if (typeof jQuery == \"undefined\") return false;\n" +
"\n" +
" // Empty object is for triggered events with no data\n" +
" event = jQuery.event.fix(event || window.event || {});\n" +
"\n" +
" // returned undefined or false\n" +
" var returnValue;\n" +
"\n" +
" var c = this.events[event.type];\n" +
"\n" +
" var args = [].slice.call(arguments, 1);\n" +
" args.unshift(event);\n" +
"\n" +
" for (var j in c) {\n" +
" // Pass in a reference to the handler function itself\n" +
" // So that we can later remove it\n" +
" args[0].handler = c[j];\n" +
" args[0].data = c[j].data;\n" +
"\n" +
" if (c[j].apply(this, args) === false) {\n" +
" event.preventDefault();\n" +
" event.stopPropagation();\n" +
" returnValue = false;\n" +
" }\n" +
" }\n" +
"\n" +
" // Clean up added properties in IE to prevent memory leak\n" +
" if (jQuery.browser.msie) event.target = event.preventDefault = event.stopPropagation = event.handler = event.data = null;\n" +
"\n" +
" return returnValue;\n" +
"}"
}
]
},
{
selector: "#testdiv",
expected: [
{
type: "click",
filename: TEST_URL + ":34",
attributes: [
"jQuery"
],
handler: "var handler7 = function divClick1() {\n" +
" alert(7);\n" +
"}"
},
{
type: "click",
filename: TEST_URL + ":35",
attributes: [
"jQuery"
],
handler: "var handler8 = function divClick2() {\n" +
" alert(8);\n" +
"}"
},
{
type: "click",
filename: TEST_URL_ROOT + TEST_LIB + ":24",
attributes: [
"Bubbling",
"DOM2"
],
handler: "function() {\n" +
" var val;\n" +
" if (typeof jQuery == \"undefined\" || jQuery.event.triggered) return val;\n" +
" val = jQuery.event.handle.apply(element, arguments);\n" +
" return val;\n" +
"}"
},
{
type: "keydown",
filename: TEST_URL + ":36",
attributes: [
"jQuery"
],
handler: "var handler9 = function divKeyDown() {\n" +
" alert(9);\n" +
"}"
},
{
type: "keydown",
filename: TEST_URL_ROOT + TEST_LIB + ":24",
attributes: [
"Bubbling",
"DOM2"
],
handler: "function() {\n" +
" var val;\n" +
" if (typeof jQuery == \"undefined\" || jQuery.event.triggered) return val;\n" +
" val = jQuery.event.handle.apply(element, arguments);\n" +
" return val;\n" +
"}"
}
]
},
];
add_task(runEventPopupTests);