customevent.html revision 2d71b4319c515f49ca328e3e00bb08d35ed5c161
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<html>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<head>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<title>YUI Event Tests</title>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore</head>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<body class="yui-skin-sam">
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<h1>Event Tests</h1>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<p><input type="button" value="Run Tests" id="btnRun" disabled="true" /></p>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<script type="text/javascript" src="/build/yui/yui.js"></script>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore<script type="text/javascript">
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore(function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore YUI({
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore base: "/build/",
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore filter: "debug",
08e054017132cdd838955bc0af15889f1f2a7b42Adam Moore useConsole: true,
08e054017132cdd838955bc0af15889f1f2a7b42Adam Moore // logInclude: ['event', 'test']
08e054017132cdd838955bc0af15889f1f2a7b42Adam Moore // logExclude: ['Dom', 'Selector', 'Node']
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }).use("dump", "test", "console", "event-custom", function(Y) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var button = Y.get('#btnRun');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // Set up the page
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore button.set("disabled", false);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.on("click", function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Test.Runner.run();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }, button);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var myConsole = new Y.Console().render();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var testEventTarget = new Y.Test.Case({
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore name: "Event.Target tests",
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore testAugment: function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var fired = false;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var O = function(id) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore this.id = id;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('O constructor executed ' + id);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore O.prototype = {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore oOo: function(ok) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('oOo');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // pass configuration info into Event.Target with the following
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // construct
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.augment(O, Y.Event.Target, null, null, {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore emitFacade: true
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var o = new O();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.on('testAugment', function(e, arg1, arg2) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(this instanceof O);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(e instanceof Y.Event.Facade);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(e.foo === 'afoo');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(e.details[1] === 1);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(arg1 === 1);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(arg2 === 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired = true;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.fire('testAugment', { foo: 'afoo' }, 1, 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(fired);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore },
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore testExtend: function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var fired = false;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var Base = function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('Base constructor executed');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore arguments.callee.superclass.constructor.apply(this, arguments);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.extend(Base, Y.Event.Target, {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore base: function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('all your base...');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var b = new Base();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore b.on('testExtend', function(arg1, arg2) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(this instanceof Base);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(arg1 === 1);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(arg2 === 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired = true;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore b.fire('testExtend', 1, 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(fired);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore },
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore testPrefix: function() {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var fired1 = false,
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired2 = false;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var O = function(id) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore this.id = id;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('O constructor executed ' + id);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore O.prototype = {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore oOo: function(ok) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.log('oOo');
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // pass configuration info into Event.Target with the following
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // construct
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.augment(O, Y.Event.Target, null, null, {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore emitFacade: true,
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore prefix: 'prefix'
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore var o = new O();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.on('testPrefix', function(e, arg1, arg2) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(this instanceof O);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired1 = true;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.on('prefix:testPrefix', function(e, arg1, arg2) {
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(this instanceof O);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired2 = true;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.fire('testPrefix', { foo: 'afoo' }, 1, 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(fired1);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore // Y.Assert.isTrue(fired2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired1 = false;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore fired2 = false;
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore o.fire('prefix:testPrefix', { foo: 'afoo' }, 1, 2);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(fired1);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Assert.isTrue(fired2);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore },
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore testDetachKey: function() {
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore var fired1 = false,
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired2 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.on('handle, test:event', function() {
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired1 = true;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore });
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore // one listener
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.fire('test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isTrue(fired1);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isFalse(fired2);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.detach('handle, test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired1 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired2 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.on('handle, test:event', function() {
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired2 = true;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore });
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore // first lisener detached, added a new listener
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.fire('test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isFalse(fired1);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isTrue(fired2);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.detach('handle,test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired1 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired2 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.after('handle, test:event', function() {
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.Assert.isTrue(fired1);
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore fired2 = true;
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore });
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.on('handle, test:event', function() {
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.Assert.isFalse(fired2);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore fired1 = true;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore });
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore // testing on and after order
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.fire('test:event');
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore fired1 = false;
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore fired2 = false;
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore // spaces after the comma or lack thereof should have
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore // no effect on the addition or removal of listeners
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.detach('handle,test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore // added both an on listener and an after listener,
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore // then detached both
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.fire('test:event');
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isFalse(fired1);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore Y.Assert.isFalse(fired2);
9bc9c1474a84983bd254adc2bc425c5b24d25526Adam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore },
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore testChain: function() {
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var fired1 = false,
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired2 = false,
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired3 = false,
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired4 = false,
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired5 = false;
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // should be executed once, after f2
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var f1 = function() {
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore Y.Assert.isTrue(fired2);
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired1 = true;
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore };
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // should be executed once, before f1
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var f2 = function() {
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isFalse(fired1);
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired2 = true;
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore };
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // should be executed once, different event from f1 and f2
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var f3 = function() {
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired3 = true;
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore };
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // detached before fired, should not executed
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var f4 = function() {
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired4 = true;
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore };
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // should fire once, preserving the custom prefix rather
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // than using the configured event target prefix
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var f5 = function() {
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore fired5 = true;
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore };
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore YUI({ chainOn: true }).use('*', function(Y2) {
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore var o = new Y2.EventTarget({
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore prefix: 'foo'
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore });
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // without event target prefix manipulation (incomplete now)
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // @TODO an error here is throwing an uncaught exception rather than failing the test
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // Y2.after('p:e', f1).on('p:e', f2).on('p:e2', f3).on('detacher, p:e', f4).detach('detacher, p:e').fire('p:e').fire('p:e2');
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore // with event target prefix manipulation
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Mooreo.after('e', f1).on('foo:e', f2).on('foo:e2', f3).on('detach, e', f4).detach('detach,e').fire('foo:e').fire('e2').on('pre:e', f5).fire('pre:e');
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isTrue(fired1); // verifies chaining, on/after order, and adding the event target prefix
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isTrue(fired2); // verifies chaining, on/after order, and accepting the prefix in the event name
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isTrue(fired3); // verifies no interaction between events, and prefix manipulation
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isFalse(fired4); // verifies detach
2d71b4319c515f49ca328e3e00bb08d35ed5c161Adam Moore Y.Assert.isTrue(fired5); // verifies custom prefix
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore });
bd6676c46a56d23b5e6f4702054bbd52e3d6f05fAdam Moore }
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Test.Runner.add(testEventTarget);
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore Y.Test.Runner.run();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore });
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore})();
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore</script>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore</body>
80d2034f65b9348e5fd36291f03b0819181efb89Adam Moore</html>