customevent.html revision bd6676c46a56d23b5e6f4702054bbd52e3d6f05f
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<p><input type="button" value="Run Tests" id="btnRun" disabled="true" /></p>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<script type="text/javascript" src="/build/yui/yui.js"></script>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein(function() {
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User filter: "debug",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein useConsole: true,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // logInclude: ['event', 'test']
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // logExclude: ['Dom', 'Selector', 'Node']
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }).use("dump", "test", "console", "event-custom", function(Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var button = Y.get('#btnRun');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // Set up the page
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein button.set("disabled", false);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.on("click", function() {
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews var myConsole = new Y.Console().render();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var testEventTarget = new Y.Test.Case({
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein name: "Event.Target tests",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein testAugment: function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var fired = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var O = function(id) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log('O constructor executed ' + id);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein oOo: function(ok) {
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User // pass configuration info into Event.Target with the following
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // construct
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein emitFacade: true
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var o = new O();
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User o.on('testAugment', function(e, arg1, arg2) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.Assert.isTrue(this instanceof O);
d9184858dd5d7677050a813d444c281c56f697aaTinderbox User fired = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.fire('testAugment', { foo: 'afoo' }, 1, 2);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein testExtend: function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var fired = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var Base = function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log('Base constructor executed');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein arguments.callee.superclass.constructor.apply(this, arguments);
44d0f0256fbdce130a18655023c3b06bacacbd61Automatic Updater base: function() {
8168c2873909444bdf62325b29fe118a879b22fcTinderbox User Y.log('all your base...');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var b = new Base();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein b.on('testExtend', function(arg1, arg2) {
8168c2873909444bdf62325b29fe118a879b22fcTinderbox User Y.Assert.isTrue(this instanceof Base);
8168c2873909444bdf62325b29fe118a879b22fcTinderbox User fired = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein b.fire('testExtend', 1, 2);
8168c2873909444bdf62325b29fe118a879b22fcTinderbox User testPrefix: function() {
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews var fired1 = false,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false;
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater var O = function(id) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log('O constructor executed ' + id);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein oOo: function(ok) {
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews // pass configuration info into Event.Target with the following
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // construct
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews emitFacade: true,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein prefix: 'prefix'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var o = new O();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.on('testPrefix', function(e, arg1, arg2) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.Assert.isTrue(this instanceof O);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.on('prefix:testPrefix', function(e, arg1, arg2) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.Assert.isTrue(this instanceof O);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.fire('testPrefix', { foo: 'afoo' }, 1, 2);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.fire('prefix:testPrefix', { foo: 'afoo' }, 1, 2);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein testDetachKey: function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var fired1 = false,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.on('handle, test:event', function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // one listener
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.fire('test:event');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.detach('handle, test:event');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.on('handle, test:event', function() {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fired2 = true;
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews // first lisener detached, added a new listener
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews Y.fire('test:event');
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews Y.detach('handle,test:event');
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fired1 = false;
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fired2 = false;
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews Y.after('handle, test:event', function() {
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews fired2 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.on('handle, test:event', function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // testing on and after order
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.fire('test:event');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // spaces after the comma or lack thereof should have
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater // no effect on the addition or removal of listeners
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater Y.detach('handle,test:event');
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater // added both an on listener and an after listener,
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater // then detached both
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater Y.fire('test:event');
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater testChain: function() {
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater YUI({ chainOn: true }).use('*', function(Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var fired1 = false,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = false,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired3 = false;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var f1 = function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired1 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var f2 = function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired2 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var f3 = function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fired3 = true;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.after('p:e', f1).on('p:e', f2).on('p:e2', f3).fire('p:e').fire('p:e2');
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.Test.Runner.add(testEventTarget);