PHP Classes

File: public/js/tinymce/src/core/src/test/js/browser/dom/EventUtilsTest.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/core/src/test/js/browser/dom/EventUtilsTest.js   Download  
File: public/js/tinymce/src/core/src/test/js/browser/dom/EventUtilsTest.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 14,879 bytes
 

Contents

Class file image Download
asynctest( 'browser.tinymce.core.dom.EventUtilsTest', [ 'ephox.agar.api.Pipeline', 'ephox.agar.api.Step', 'ephox.katamari.api.Arr', 'ephox.mcagar.api.LegacyUnit', 'global!document', 'global!window', 'tinymce.core.dom.EventUtils' ], function (Pipeline, Step, Arr, LegacyUnit, document, window, EventUtils) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var suite = LegacyUnit.createSuite(); var eventUtils = EventUtils.Event; suite.test("unbind all", function () { var result; eventUtils.bind(window, 'click', function () { result.click = true; }); eventUtils.bind(window, 'keydown', function () { result.keydown1 = true; }); eventUtils.bind(window, 'keydown', function () { result.keydown2 = true; }); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, { click: true, keydown1: true, keydown2: true }); eventUtils.unbind(window); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, {}); }); suite.test("unbind event", function () { var result; eventUtils.bind(window, 'click', function () { result.click = true; }); eventUtils.bind(window, 'keydown', function () { result.keydown1 = true; }); eventUtils.bind(window, 'keydown', function () { result.keydown2 = true; }); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, { click: true, keydown1: true, keydown2: true }); eventUtils.unbind(window, 'click'); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, { keydown1: true, keydown2: true }); }); suite.test("unbind event non existing", function () { eventUtils.unbind(window, 'noevent'); LegacyUnit.equal(true, true, "No exception"); }); suite.test("unbind callback", function () { var result; eventUtils.bind(window, 'click', function () { result.click = true; }); eventUtils.bind(window, 'keydown', function () { result.keydown1 = true; }); var callback2 = function () { result.keydown2 = true; }; eventUtils.bind(window, 'keydown', callback2); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, { click: true, keydown1: true, keydown2: true }); eventUtils.unbind(window, 'keydown', callback2); result = {}; eventUtils.fire(window, 'click'); eventUtils.fire(window, 'keydown'); LegacyUnit.deepEqual(result, { click: true, keydown1: true }); }); suite.test("unbind multiple", function () { var result; eventUtils.bind(window, 'mouseup mousedown click', function (e) { result[e.type] = true; }); eventUtils.unbind(window, 'mouseup mousedown'); result = {}; eventUtils.fire(window, 'mouseup'); eventUtils.fire(window, 'mousedown'); eventUtils.fire(window, 'click'); LegacyUnit.deepEqual(result, { click: true }); }); suite.test("bind multiple", function () { var result; eventUtils.bind(window, 'mouseup mousedown', function (e) { result[e.type] = true; }); result = {}; eventUtils.fire(window, 'mouseup'); eventUtils.fire(window, 'mousedown'); eventUtils.fire(window, 'click'); LegacyUnit.deepEqual(result, { mouseup: true, mousedown: true }); }); suite.test("bind/fire bubbling", function () { var result; eventUtils.bind(window, 'click', function () { result.window = true; }); eventUtils.bind(document, 'click', function () { result.document = true; }); eventUtils.bind(document.body, 'click', function () { result.body = true; }); eventUtils.bind(document.getElementById('content'), 'click', function () { result.content = true; }); eventUtils.bind(document.getElementById('inner'), 'click', function () { result.inner = true; }); result = {}; eventUtils.fire(window, 'click'); LegacyUnit.deepEqual(result, { window: true }); result = {}; eventUtils.fire(document, 'click'); LegacyUnit.deepEqual(result, { document: true, window: true }); result = {}; eventUtils.fire(document.body, 'click'); LegacyUnit.deepEqual(result, { body: true, document: true, window: true }); result = {}; eventUtils.fire(document.getElementById('content'), 'click'); LegacyUnit.deepEqual(result, { content: true, body: true, document: true, window: true }); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { inner: true, content: true, body: true, document: true, window: true }); }); suite.test("bind/fire stopImmediatePropagation", function () { var result; eventUtils.bind(window, 'click', function () { result.click1 = true; }); eventUtils.bind(window, 'click', function (e) { result.click2 = true; e.stopImmediatePropagation(); }); eventUtils.bind(window, 'click', function () { result.click3 = true; }); result = {}; eventUtils.fire(window, 'click'); LegacyUnit.deepEqual(result, { click1: true, click2: true }); }); suite.test("bind/fire stopPropagation", function () { var result; eventUtils.bind(window, 'click', function () { result.click1 = true; }); eventUtils.bind(document.body, 'click', function () { result.click2 = true; }); eventUtils.bind(document.getElementById('inner'), 'click', function (e) { result.click3 = true; e.stopPropagation(); }); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click3: true }); }); suite.test("clean window", function () { var result; eventUtils.bind(window, 'click', function () { result.click1 = true; }); eventUtils.bind(document.body, 'click', function () { result.click2 = true; }); eventUtils.bind(document.getElementById('content'), 'click', function () { result.click3 = true; }); eventUtils.bind(document.getElementById('inner'), 'click', function () { result.click4 = true; }); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click1: true, click2: true, click3: true, click4: true }); eventUtils.clean(window); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, {}); }); suite.test("clean document", function () { var result; eventUtils.bind(window, 'click', function () { result.click1 = true; }); eventUtils.bind(document, 'click', function () { result.click2 = true; }); eventUtils.bind(document.body, 'click', function () { result.click3 = true; }); eventUtils.bind(document.getElementById('content'), 'click', function () { result.click4 = true; }); eventUtils.bind(document.getElementById('inner'), 'click', function () { result.click5 = true; }); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click1: true, click2: true, click3: true, click4: true, click5: true }); eventUtils.clean(document); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click1: true }); }); suite.test("clean element", function () { var result; eventUtils.bind(window, 'click', function () { result.click1 = true; }); eventUtils.bind(document.body, 'click', function () { result.click2 = true; }); eventUtils.bind(document.getElementById('content'), 'click', function () { result.click3 = true; }); eventUtils.bind(document.getElementById('inner'), 'click', function () { result.click4 = true; }); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click1: true, click2: true, click3: true, click4: true }); eventUtils.clean(document.getElementById('content')); result = {}; eventUtils.fire(document.getElementById('inner'), 'click'); LegacyUnit.deepEqual(result, { click1: true, click2: true }); }); suite.test("mouseenter/mouseleave bind/unbind", function () { var result = {}; eventUtils.bind(document.body, 'mouseenter mouseleave', function (e) { result[e.type] = true; }); eventUtils.fire(document.body, 'mouseenter'); eventUtils.fire(document.body, 'mouseleave'); LegacyUnit.deepEqual(result, { mouseenter: true, mouseleave: true }); result = {}; eventUtils.clean(document.body); eventUtils.fire(document.body, 'mouseenter'); eventUtils.fire(document.body, 'mouseleave'); LegacyUnit.deepEqual(result, {}); }); /* asyncTest("focusin/focusout bind/unbind", function() { var result = {}; window.setTimeout(function() { eventUtils.bind(document.body, 'focusin focusout', function(e) { // IE will fire a focusout on the parent element if you focus an element within not a big deal so lets detect it in the test if (e.type == "focusout" && e.target.contains(document.activeElement)) { return; } result[e.type] = result[e.type] ? ++result[e.type] : 1; }); start(); document.getElementById('content').focus(); document.getElementById('inner').focus(); LegacyUnit.deepEqual(result, {focusin: 2, focusout: 1}); }, 0); }); */ suite.test("bind unbind fire clean on null", function () { eventUtils.bind(null, 'click', function () {}); eventUtils.unbind(null, 'click', function () {}); eventUtils.fire(null, {}); eventUtils.clean(null); LegacyUnit.equal(true, true, "No exception"); }); suite.test("bind ready when page is loaded", function () { var ready; eventUtils.bind(window, 'ready', function () { ready = true; }); LegacyUnit.equal(true, eventUtils.domLoaded, "DomLoaded state true"); LegacyUnit.equal(true, ready, "Window is ready."); }); suite.test("event states when event object is fired twice", function () { var result = {}; eventUtils.bind(window, 'keydown', function (e) { result[e.type] = true;e.preventDefault();e.stopPropagation(); }); eventUtils.bind(window, 'keyup', function (e) { result[e.type] = true;e.stopImmediatePropagation(); }); var event = {}; eventUtils.fire(window, 'keydown', event); eventUtils.fire(window, 'keyup', event); LegacyUnit.equal(true, event.isDefaultPrevented(), "Default is prevented."); LegacyUnit.equal(true, event.isPropagationStopped(), "Propagation is stopped."); LegacyUnit.equal(true, event.isImmediatePropagationStopped(), "Immediate propagation is stopped."); LegacyUnit.deepEqual(result, { keydown: true, keyup: true }); }); suite.test("unbind inside callback", function () { var data; var append = function (value) { return function () { data += value; }; }; var callback = function () { eventUtils.unbind(window, 'click', callback); data += 'b'; }; data = ''; eventUtils.bind(window, 'click', append("a")); eventUtils.bind(window, 'click', callback); eventUtils.bind(window, 'click', append("c")); eventUtils.fire(window, 'click', {}); LegacyUnit.equal(data, 'abc'); data = ''; eventUtils.fire(window, 'click', {}); LegacyUnit.equal(data, 'ac'); }); suite.test("ready/DOMContentLoaded (domLoaded = true)", function () { var evt; eventUtils.bind(window, "ready", function (e) { evt = e; }); LegacyUnit.equal(evt.type, "ready"); }); suite.test("ready/DOMContentLoaded (document.readyState check)", function () { var evt; try { document.readyState = "loading"; } catch (e) { LegacyUnit.equal(true, true, "IE doesn't allow us to set document.readyState"); return; } eventUtils.domLoaded = false; document.readyState = "loading"; eventUtils.bind(window, "ready", function (e) { evt = e; }); LegacyUnit.equal(true, typeof (evt) !== "undefined"); eventUtils.domLoaded = false; document.readyState = "complete"; eventUtils.bind(window, "ready", function (e) { evt = e; }); LegacyUnit.equal(evt.type, "ready"); }); suite.test("isDefaultPrevented", function () { var testObj = {}; var testCallback = function () { return 'hello'; }; testObj.isDefaultPrevented = testCallback; eventUtils.fire(window, 'testEvent', testObj); LegacyUnit.equal(testObj.isDefaultPrevented !== testCallback, true, 'Is overwritten by our isDefaultPrevented'); LegacyUnit.equal(typeof testObj.isPropagationStopped, 'function', 'Has our isPropagationStopped'); LegacyUnit.equal(typeof testObj.isImmediatePropagationStopped, 'function', 'Has our isImmediatePropagationStopped'); }); var sAddTestDiv = Step.sync(function () { var testDiv = document.createElement('div'); testDiv.id = 'testDiv'; testDiv.innerHTML = ( '<div id="content" tabindex="0">' + '<div id="inner" tabindex="0"></div>' + '</div>' ); document.body.appendChild(testDiv); }); var sRemoveTestDiv = Step.sync(function () { var testDiv = document.querySelector('#testDiv'); testDiv.parentNode.removeChild(testDiv); }); var steps = Arr.bind(suite.toSteps({}), function (step) { return [ step, Step.sync(function () { eventUtils.clean(window); }) ]; }); steps = [sAddTestDiv].concat(steps).concat(sRemoveTestDiv); Pipeline.async({}, steps, function () { success(); }, failure); } );