customevent.html revision e1a238db8bc3bae8f67be06b3e6a70f7b9b6f4a0
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
19558a04decde0e7261d489d92d04ad88104217bTinderbox User<script type="text/javascript" src="/build/yui/yui.js"></script>
287a6a8f9040dc43560cd69cddf83bfc0f53b76fTinderbox User<p><input type="button" value="Run Tests" id="btnRun" disabled="true" /></p>
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User <a title="remove module" class="yui-remove"><em>x</em></a>
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews <p>This an example of what you can do with the YUI Animation Utility.</p>
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont <p><em>Follow the instructions above to see the animation in action.</em></p>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews(function() {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews var global_notified;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews //YUI.add("selector-native", function(){});
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews filter: "debug",
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews onCSS: function(Y) {
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User Y.log('CSS is done loading', 'info', 'testcase');
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User logExclude: { get: true, Dom: true, Selector: true, Node: true, attribute: true, event: true, base: true, widget: true },
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews base: 'raw',
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User // dom: null,
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews attribute: 'min'
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User }).use("dump", "test", "anim", "console", function(Y) {
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User // Y.Global.on('yui:log', function(e) {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont var button = Y.one('#btnRun');
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt // Set up the page
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User button.set("disabled", false);
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews Y.on("click", function() {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont var myConsole = new Y.Console().render();
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater var testEventTarget = new Y.Test.Case({
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews name: "Custom event tests",
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater testStopFnOnceFromBubbleTarget: "ticket pending",
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testStopFnFromBubbleTarget: "ticket pending"
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater testAugment: function() {
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark Andrews var fired = false;
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews var O = function(id) {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews Y.log('O constructor executed ' + id);
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User oOo: function(ok) {
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt // pass configuration info into EventTarget with the following
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews // construct
2ae159b376dac23870d8005563c585acf85a4b5aEvan Hunt emitFacade: true
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews var o = new O(),
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox User handle = o.on('testAugment', function(e, arg1, arg2) {
ee11dfc481f2ef6a032a715454f6290961a722d2Tinderbox User Y.Assert.isTrue(this instanceof O);
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews fired = true;
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User o.fire('testAugment', { foo: 'afoo' }, 1, 2);
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews // if the first argument is not an object, the
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User // event facade is moved in front of the args rather
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews // than overwriting existing object.
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User o.on('testAugment', function(e, arg1, arg2) {
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User o.fire('testAugment', 1, 2);
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User test_detach_by_signature: function() {
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User var anim = new Y.Anim({
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson node: '#demo',
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User to: { opacity: 0 }
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews tester = function() {
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User Y.detach('foo', tester);
a450977e98155f6e828fe6f8d52cf24674231831Mark Andrews Y.on('foo', tester);
2a31bd531072824ef252c18303859d6af7451b00Francis Dupont var onEnd = function() {
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews // this.detach('anim:end', onEnd);
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User to: { height: 1 },
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews if (count > 2) {
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews throw new Error('onEnd should only have happened once');
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews // anim.on('end', onEnd);
01a5c5503482fb3ba52088bf0178a7213273bf96Mark Andrews testExtend: function() {
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User var fired = false;
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater var Base = function() {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews Y.log('Base constructor executed');
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User arguments.callee.superclass.constructor.apply(this, arguments);
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User base: function() {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews Y.log('all your base...');
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User var b = new Base();
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User b.on('testExtend', function(arg1, arg2) {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews Y.Assert.isTrue(this instanceof Base);
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User fired = true;
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews b.fire('testExtend', 1, 2);
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User testPrefix: function() {
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User var fired1 = false,
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fired2 = false;
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater var O = function(id) {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews Y.log('O constructor executed ' + id);
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updater oOo: function(ok) {
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User // pass configuration info into EventTarget with the following
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews emitFacade: true,
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User prefix: 'prefix'
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User var o = new O();
9ecb5d33470ebfb3719a1b8d56bcefdf4b27f7b2Tinderbox User o.on('testPrefix', function(e, arg1, arg2) {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews Y.Assert.isTrue(this instanceof O);
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User fired1 = true;
ac2e2800b4ac9cbe4cb756d967f4583c611eb75eMark Andrews o.on('prefix:testPrefix', function(e, arg1, arg2) {
5affecff6e148a8e124d03f5dbac0da11e30dcc5Tinderbox User Y.Assert.isTrue(this instanceof O);
5affecff6e148a8e124d03f5dbac0da11e30dcc5Tinderbox User fired2 = true;
bac4435d473c9a0281507524f084480c34aa942aTinderbox User o.fire('testPrefix', { foo: 'afoo' }, 1, 2);
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User fired1 = false;
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater fired2 = false;
bac4435d473c9a0281507524f084480c34aa942aTinderbox User o.fire('prefix:testPrefix', { foo: 'afoo' }, 1, 2);
4151211e6649332f7b5a55870cbe37128bcc7b29Tinderbox User testDetachKey: function() {
ac2e2800b4ac9cbe4cb756d967f4583c611eb75eMark Andrews var fired1 = false,
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fired2 = false;
f525041ae26958385b697cf82a30f108577024b6Tinderbox User Y.on('handle|test:event', function() {
b02be031b9ff37b042adc8e68e36b8bbc1f672b7Tinderbox User fired1 = true;
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater // one listener
3ec8f7777ea2b04fc1ebb63077f0916f63b1011aTinderbox User Y.fire('test:event');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.detach('handle|test:event');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fired1 = false;
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater fired2 = false;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.on('handle|test:event', function() {
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fired2 = true;
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews // first lisener detached, added a new listener
c2abd6efeb9affa70aabb63da2acb23e135cf7f2Mark Andrews Y.fire('test:event');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.detach('handle|test:event');
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater fired1 = false;
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User fired2 = false;
4cda4fd158d6ded5586bacea8c388445d99611eaAutomatic Updater Y.after('handle|test:event', function(arg1) {
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews Y.Assert.areEqual('orange', arg1);
c26604a73c4ce907ef6392f38b3fac838b1873a9Tinderbox User fired2 = true;
e08cdffb3ae4ad409f37e3e5a218fe4b7e0e3904Tinderbox User // comma or pipe
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews Y.on('handle|test:event', function(arg1) {
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews Y.Assert.areEqual('orange', arg1);
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews fired1 = true;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater // testing on and after order
76408aae412cda298c5e43da0eebb23c875a4426Tinderbox User Y.fire('test:event', 'orange');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fired1 = false;
5affecff6e148a8e124d03f5dbac0da11e30dcc5Tinderbox User fired2 = false;
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox User // spaces after the comma or lack thereof should have
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User // no effect on the addition or removal of listeners
757ff043760e4743dda1a10e7d58349275934902Tinderbox User var ret = Y.detach('handle|test:event');
757ff043760e4743dda1a10e7d58349275934902Tinderbox User // added both an on listener and an after listener,
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater // then detached both
ae454ec746d1d4db8d04e107d4d25ff13158c37fMark Andrews Y.fire('test:event', 'orange');
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testDetachAllByKey: function() {
bac4435d473c9a0281507524f084480c34aa942aTinderbox User var fired1 = false,
f520803b46dc189fdaf84adc87ef327d3587b435Mark Andrews fired2 = false;
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User Y.after('handle|event2', function() {
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User fired2 = true;
e64202536ea72d8f371dd0df9fc763f8d70bf886Tinderbox User Y.on('handle|event2', function() {
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews fired1 = true;
ebdf202f2198158ab4d30f22c370a9c63760d071Tinderbox User Y.Assert.isFalse(fired1, 'fired1, the after listener should not have fired.');
8292deab031e7599cd7622aa7675fbe139ca6095Mark Andrews Y.Assert.isFalse(fired2, 'fired2, the on listener should not have fired.');
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews testChain: function() {
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews var fired1 = false,
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews fired2 = false,
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews fired3 = false,
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont fired4 = false,
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews fired5 = false;
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews // should be executed once, after f2
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont var f1 = function() {
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews fired1 = true;
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews // should be executed once, before f1
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews var f2 = function() {
e8fc8c884b44371784805e1e0d3100da403dd3f1Automatic Updater fired2 = true;
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User // should be executed once, different event from f1 and f2
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews var f3 = function() {
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews fired3 = true;
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews // detached before fired, should not executed
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User var f4 = function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fired4 = true;
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews // should fire once, preserving the custom prefix rather
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews // than using the configured event target prefix
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User var f5 = function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fired5 = true;
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews // configure chaining via global default or on the event target
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews YUI({ /* chain: true */
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews logInclude: {
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews }).use('event-custom', function(Y2) {
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User prefix: 'foo',
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews chain : true
e64202536ea72d8f371dd0df9fc763f8d70bf886Tinderbox User // without event target prefix manipulation (incomplete now)
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User // @TODO an error here is throwing an uncaught exception rather than failing the test
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User // Y2.after('p:e', f1).on('p:e', f2).on('p:e2', f3).on('detach, p:e', f4).detach('detach, p:e').fire('p:e').fire('p:e2');
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews // with event target prefix manipulation ('e' is the same event as 'foo:e',
e40c4e4c17d4df338e2a7db0f84d8dbb3858964cTinderbox User // but 'pre:e' is a different event only accessible by using that exact name)
757ff043760e4743dda1a10e7d58349275934902Tinderbox Usero.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');
827f8cccb5280f4da66c46186e792d1cb9d73503Mark Andrews Y.Assert.isTrue(fired1); // verifies chaining, on/after order, and adding the event target prefix
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews Y.Assert.isTrue(fired2); // verifies chaining, on/after order, and accepting the prefix in the event name
933799f3641f4f78445d015008bad0038900a82aTinderbox User Y.Assert.isTrue(fired3); // verifies no interaction between events, and prefix manipulation
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews Y.Assert.isFalse(fired4); // verifies detach works (regardless of spaces after comma)
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont Y.Assert.isTrue(fired5); // verifies custom prefix
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User testObjType: function() {
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews 'y:click': function() {f1 = true},
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews 'y:clack': function() {f2 = true}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testBubble: function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews var count = 0,
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User emitFacade: true,
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews bubbles: true
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User a = new Y.EventTarget(config),
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont b = new Y.EventTarget(config);
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews // this should not be necessary // fixed
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews // b.publish('test:foo');
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont a.on('test:foo', function(e) {
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews // we will fire this on the parent, so that should be the target
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ret = b.fire('test:foo', {}, b);
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington b.on('test:foo', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington ret = b.fire('test:foo', {}, b);
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington testPreventFnOnce: function() {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington var count = 0;
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington emitFacade: true,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington preventedFn: function() {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.Assert.isTrue(this instanceof YUI);
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.on('y:foo1', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.on('y:foo1', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington testPreventFromBubbleTarget: function () {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington var count = 0,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington target = new Y.EventTarget({ prefix: 'x' });
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington emitFacade: true,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington preventedFn: function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews Y.on('x:foo', function(e) {
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater testPreventedFnOnceFromBubbleTarget: function () {
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater var count = 0,
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater target = new Y.EventTarget({ prefix: 'x' });
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater emitFacade: true,
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater preventedFn: function() {
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User Y.on('x:foo', function(e) {
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User Y.on('x:foo', function(e) {
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User target.on('foo', function (e) {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testStopFnOnce: function () {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont var count = 0,
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont target = new Y.EventTarget({ prefix: 'a' });
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont emitFacade: true,
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont stoppedFn: function () {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews target.on('foo', function (e) {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews target.on('foo', function (e) {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont testStopFnFromBubbleTarget: function () {
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews var count = 0,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington origin = new Y.EventTarget({ prefix: 'a' }),
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington targetB = new Y.EventTarget({ prefix: 'b' });
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington emitFacade: true,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington stoppedFn: function () {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington targetB.on('foo', function (e) {
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews testStopFnOnceFromBubbleTarget: function () {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington var count = 0,
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington origin = new Y.EventTarget({ prefix: 'a' }),
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews targetB = new Y.EventTarget({ prefix: 'b' }),
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews targetC = new Y.EventTarget({ prefix: 'c' });
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews emitFacade: true,
280a8a0544b4aeb52414d20e8c6e6c5b1108562eTinderbox User stoppedFn: function() {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews targetB.on('foo', function (e) {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont targetB.on('foo', function (e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.Assert.areEqual(1, count, "stopProp called twice from bubble target resulted in stoppedFn called wrong number of times");
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington targetC.on('foo', function (e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.Assert.areEqual(1, count, "stopProp called from intermediate bubble target didn't prevent stoppedFn call from subsequent bubble target");
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington origin.on('foo', function (e) {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont Y.Assert.areEqual(1, count, "stopProp called from event origin subscription didn't prevent calls to stoppedFn from bubble target");
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testDetachHandle: function() {
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews var count = 0, handle, handle2;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews emitFacade: true
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington Y.on('y:foo', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington handle = Y.on('y:foo', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington count += 100;
dedefc0bdbb4e6e39eeb98aa2fc6883efec2ddb0Mark Andrews handle2 = Y.on('y:foo', function(e) {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont count += 1000;
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont var handle3 = Y.on('y:click', function() {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont o.on('foo', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington o.on('foo', function(e) {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington var handle3 = Y.on('y:click', function() {
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington // detachAll can't be allowed to work on the YUI instance.
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews testBroadcast: function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews var o = new Y.EventTarget(), s1, s2, s3, s4;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews emitFacade: true,
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont Y.on('y:foo2', function() {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User Y.log('Y foo2 executed');
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews Y.Global.on('y:foo2', function() {
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews Y.log('GLOBAL foo2 executed');
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews emitFacade: true,
e813f036c8251b6d9d2a72fa84f80c2c9d2795afMark Andrews broadcast: 2
1fdd58445074579ee3b65c871137a7a1740eb542Mark Andrews Y.on('y:bar', function() {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User Y.log('Y bar executed');
cc5a9ce75af9870f2cb9e2bf00548c2f7e6398d6Automatic Updater Y.Global.on('y:bar', function() {
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont Y.log('GLOBAL bar executed');
91faa748a27dee38f6caea461d3e87f15b93abeaTinderbox User Y.Global.on('y:bar', function(e) {
9e898948ed76bf5f175bf178866c90c449843c3eTinderbox User Y.log('GLOBAL bar executed');
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews test_fire_once: function() {
7c8e44a2dc1121dbe3b615c9c934f37fb1741bb9Tinderbox User var notified = 0;
861836e5f5df62bfaea9ad8923a05278d5ab2f3dTinderbox User fireOnce: true
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater Y.fire('fireonce', 'foo', 'bar');
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater Y.on('fireonce', function(arg1, arg2) {
9e898948ed76bf5f175bf178866c90c449843c3eTinderbox User Y.Assert.areEqual('foo', arg1, 'arg1 not correct for lazy fireOnce listener')
933799f3641f4f78445d015008bad0038900a82aTinderbox User Y.Assert.areEqual('bar', arg2, 'arg2 not correct for lazy fireOnce listener')
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.fire('fireonce', 'foo2', 'bar2');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.fire('fireonce', 'foo3', 'bar3');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater global_notified = false;
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.on('fireonce', function(arg1, arg2) {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.log('the notification is asynchronous, so I need to wait for this test');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.Assert.areEqual(1, notified, 'listener notified more than once.');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater global_notified = true;
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater // it is no longer asynchronous
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater // Y.Assert.isFalse(global_notified, 'notification was not asynchronous');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater test_async_fireonce: function() {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.Assert.isTrue(global_notified, 'asynchronous notification did not seem to work.');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater test_node_publish: function() {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater var node = Y.one('#adiv');
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater var preventCount = 0, heard = 0;
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater emitFacade: true,
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater // should only be called once
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater preventedFn: function() {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater preventCount++;
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater node.on('foo1', function(e) {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater Y.Assert.areEqual('foo1', e._type);
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User node.on('foo1', function(e) {
015055b6e23f5c08f6a5b34726f90b62597e9e45Tinderbox User type: 'faking foo'
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User Y.Assert.areEqual(1, preventCount);
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews // BUBBLE, ON
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater // BUBBLE, DEFAULT BEHAVIOR
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater // BUBBLE, AFTER
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater // SRC, DEFAULT BEHAVIOR
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater __testBubbleSequence300GA: function() {
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater var count = 0,
1404d301dd9e7e487a247b803f63909cd10cdf72Tinderbox User called = null,
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User fn = function() {
40072ce70bc4125329addb4aaa56d18a1230bc17Automatic Updater emitFacade: true,
1404d301dd9e7e487a247b803f63909cd10cdf72Tinderbox User leaf = new Y.EventTarget(config),
1404d301dd9e7e487a247b803f63909cd10cdf72Tinderbox User branch = new Y.EventTarget(config),
60d5d17479b47c03b9c7c86f54269718103750b8Automatic Updater root = new Y.EventTarget(config);
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater leaf.publish('test:foo', { defaultFn: fn});
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater branch.publish('test:foo', { defaultFn: fn});
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater root.publish('test:foo', { defaultFn: fn});
19dbf2e20df03f2b81ed1f347e27718084374059Automatic Updater leaf.on('test:foo', function(e) {
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater Y.Assert.areEqual(0, count, 'leaf.on should be first');
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater Y.Assert.isNull(called, 'leaf.on should be executed before any default function');
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater branch.on('test:foo', function() {
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater Y.Assert.areEqual(1, count, 'branch.on should be second');
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater Y.Assert.isNull(called, 'branch.on should be executed before any default function');
3040b455151b1e1173193933664b2891b6159f24Mark Andrews root.on('test:foo', function() {
7f9e2fff07b9c17e0d7a0ea7abc9304ce9d01b61Tinderbox User Y.Assert.areEqual(2, count, 'root.on should be third');
3e1a17d65ec6227900f388ba2f7561365f7d4f5cTinderbox User Y.Assert.isNull(called, 'root.on should be executed before any default function');
7dd02af3c9350553e1d52d980a7812425b3f1295Automatic Updater root.after('test:foo', function() {
8aa098c6334de11c8fd117d30851cc457813c410Mark Andrews Y.Assert.areEqual(3, count, 'root.after should be fourth');
8aa098c6334de11c8fd117d30851cc457813c410Mark Andrews Y.Assert.areEqual('root', called, 'root.after should be executed after the root default function');
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington branch.after('test:foo', function() {
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews Y.Assert.areEqual(4, count, 'branch.after should be fifth');
4fe0411487e8e4401477684c0a2bac041ca7c2d5Tinderbox User Y.Assert.areEqual('branch', called, 'branch.after should be executed after the branch default function');
4fe0411487e8e4401477684c0a2bac041ca7c2d5Tinderbox User leaf.after('test:foo', function(e) {
a03cb08d0c4f1ca5fbc121d2f02bdffa7eb52286Mark Andrews Y.Assert.areEqual(5, count, 'leaf.after should be sixth and last');
a03cb08d0c4f1ca5fbc121d2f02bdffa7eb52286Mark Andrews Y.Assert.areEqual('leaf', called, 'leaf.after should be executed after the leaf default function');
a03cb08d0c4f1ca5fbc121d2f02bdffa7eb52286Mark Andrews leaf.fire('test:foo', {}, leaf);
f45f40ec2814a5ff1ed443c968772a1b2e25c462Mark Andrews // Ideally it should be this, but the defaultFn order is the least important bit
f45f40ec2814a5ff1ed443c968772a1b2e25c462Mark Andrews // and there are issues changing the order.
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User // BUBBLE, ON
2bd56b2684882faf74a2b29cb0914e6671d8005bTinderbox User // SRC, DEFAULT BEHAVIOR
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews // BUBBLE, DEFAULT BEHAVIOR (unless configured to only execute the default function on the target)
bac4435d473c9a0281507524f084480c34aa942aTinderbox User // SRC, AFTER
169f44b082b340b952e26c0fdb930c102a957752Mark Andrews // BUBBLE, AFTER
54890cfd30f01bdd33b7fb997f9b89fb084c3438Tinderbox User // The actual order is this:
a8677ecad546c955406b341eb8344ed06768b11eTinderbox User // BUBBLE, ON
11b6b0d74bb8dd6bd1ce0b60ba7f9b66323f06d4Tinderbox User // BUBBLE, DEFAULT BEHAVIOR
11b6b0d74bb8dd6bd1ce0b60ba7f9b66323f06d4Tinderbox User // SRC, DEFAULT BEHAVIOR (unless configured to only execute the default function on the target)
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews // SRC, AFTER
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews // BUBBLE, AFTER
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User testAlternativeSequencePost300GA: function() {
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews var count = 0,
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews called = null,
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews fn = function() {
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews emitFacade: true,
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews bubbles: true
05d81eae94425a5124e07626af4bcc178960bd0eMark Andrews leaf = new Y.EventTarget(config),
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews branch = new Y.EventTarget(config),
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User root = new Y.EventTarget(config);
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews leaf.publish('test:foo', { defaultFn: fn});
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews branch.publish('test:foo', { defaultFn: fn});
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews root.publish('test:foo', { defaultFn: fn});
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews leaf.on('test:foo', function(e) {
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews Y.Assert.areEqual(0, count, 'leaf.on should be first');
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews Y.Assert.isNull(called, 'leaf.on should be executed before any default function');
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews branch.on('test:foo', function() {
1efe84be7849c5327001ad7dbad93d92c66c1389Mark Andrews Y.Assert.areEqual(1, count, 'branch.on should be second');
a9d14bf051644716b5db9209c453d2c5eb83f174Tinderbox User Y.Assert.isNull(called, 'branch.on should be executed before any default function');
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User root.on('test:foo', function() {
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt Y.Assert.areEqual(2, count, 'root.on should be third');
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt Y.Assert.isNull(called, 'root.on should be executed before any default function');
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt leaf.after('test:foo', function(e) {
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt Y.Assert.areEqual(3, count, 'leaf.after should be fourth');
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt // Y.Assert.areEqual('root', called, 'leaf.after should be executed after the root default function');
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt Y.Assert.areEqual('leaf', called, 'leaf.after should be executed after the root default function');
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt branch.after('test:foo', function() {
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt Y.Assert.areEqual(4, count, 'branch.after should be fifth');
2beefc22e6debdb72d7b2a069787ff565fc79ec4Tinderbox User // Y.Assert.areEqual('root', called, 'leaf.after should be executed after the root default function');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.Assert.areEqual('leaf', called, 'leaf.after should be executed after the root default function');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater root.after('test:foo', function() {
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.Assert.areEqual(5, count, 'root.after should be sixth and last');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater // Y.Assert.areEqual('root', called, 'leaf.after should be executed after the root default function');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.Assert.areEqual('leaf', called, 'leaf.after should be executed after the root default function');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater leaf.fire('test:foo', {}, leaf);
9c2cf9e2017e6dd196e3b866808f32c6206eeedcMark Andrews Y.Assert.areEqual(6, count, 'total subscriber count');
cb40461f8744c5aeb369b84d5f48395a13a221a0Mark Andrews testStarSubscriber: function() {
e676a596869d8a80a644c99a848afb53d1c5975eMark Andrews var count = 0,
8f3657636521817d2971ae29aa3fb66e33709753Mark Andrews emitFacade: true,
8f3657636521817d2971ae29aa3fb66e33709753Mark Andrews bubbles: true,
66458d12f373fb75e8543d36fd76864a7567057bTinderbox User prefix: 'stars'
f525041ae26958385b697cf82a30f108577024b6Tinderbox User z = new Y.EventTarget(config),
f525041ae26958385b697cf82a30f108577024b6Tinderbox User a = new Y.EventTarget(config),
be0d1ec971748020cb0382e02b4642b493ea1e7bTinderbox User b = new Y.EventTarget(config);
c78c39caab4cf8b5daefc9c65878f7f5ed3eb7a0Tinderbox User z.on('*:foo', function(e) {
8e86e8a779f37378fdb85a92c4ba77e394013729Tinderbox User // b -> a -> z -- the parent's parent should be the target
f525041ae26958385b697cf82a30f108577024b6Tinderbox User switch (count) {
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User ret = b.fire('a:foo', {}, b);
ecbc7ebb243a1f8a5dc6f28185ffe9e61d3b2102Mark Andrews ret = b.fire('b:foo', {}, b);
ecbc7ebb243a1f8a5dc6f28185ffe9e61d3b2102Mark Andrews // if the event target is not configured with a prefix, this won't work by design.
ecbc7ebb243a1f8a5dc6f28185ffe9e61d3b2102Mark Andrews ret = b.fire('foo', {}, b);
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews testPreventBubble: function() {
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews var count = 0,
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews emitFacade: true,
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews bubbles: true,
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews prefix: 'stars'
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews z = new Y.EventTarget(config),
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews a = new Y.EventTarget(config),
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews b = new Y.EventTarget(config);
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews z.after('*:foo', function(e) {
3040b455151b1e1173193933664b2891b6159f24Mark Andrews ret = b.fire('a:foo', {}, b);
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User test_listen_once: function() {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User var count = 0;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.once(['foo', 'bar'], function(e) {
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.fire('foo', 'bar');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.fire('bar', 'bar');
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User Y.fire('foo', 'bar');
fca737c98d2be3ef944cc96320c040fdb5f160e3Tinderbox User Y.fire('bar', 'bar');
fca737c98d2be3ef944cc96320c040fdb5f160e3Tinderbox User test_array_type_param: function() {
51374c645c0e6dd77c369c13834c751785f96f14Tinderbox User var result = '';
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater var handle1 = Y.after(['foo', 'bar'], function(type) {
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater result += 'after' + type;
88d58d79c5bc7ce3c20a42461a5070116c736836Automatic Updater var handle2 = Y.on(['foo', 'bar'], function(type) {
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater result += 'on' + type;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.fire('foo', 'foo');
48b36fa08b2b5bc0d552dc2a4425b3f7007b3d59Automatic Updater Y.fire('bar', 'bar');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.Assert.areEqual('onfooafterfooonbarafterbar', result);
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.fire('foo', 'foo');
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater Y.fire('bar', 'bar');
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User Y.Assert.areEqual('onfooafterfooonbarafterbar', result);
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater test_bubble_config: function() {
d58e33bfabfee19a035031dac633d36659738d56Evan Hunt var a = new Y.EventTarget(),
1959fd489a8832e4e3d311670f64ae18e5d08156Automatic Updater emitFacade: true
d58e33bfabfee19a035031dac633d36659738d56Evan Hunt b.on("foo", function(e) {
3040b455151b1e1173193933664b2891b6159f24Mark Andrews result = (e instanceof Y.EventFacade);
8bc194b266a17f89e6c54469d4dfbb408070f39eMark Andrews test_onceAfter: function () {
8bc194b266a17f89e6c54469d4dfbb408070f39eMark Andrews var a = new Y.EventTarget({ emitFacade: true, prefix: 'a' }),
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews result = '';
d2247b4740cc5f740bf7d89ef9ce67fef015c95cMark Andrews a.on('foo', function () { result += 'A'; });
03ebc228ee3725738b067b6bd7082a9a731822a1Tinderbox User a.once('foo', function () { result += 'B'; });
7c8e44a2dc1121dbe3b615c9c934f37fb1741bb9Tinderbox User a.after('foo', function () { result += 'C'; });
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater a.onceAfter('foo', function () { result += 'D'; });
8d8f9f7f86a33a155dd74b9b2c1317afca555d54Evan Hunt Y.Assert.areSame("ABCDAC", result);
2beefc22e6debdb72d7b2a069787ff565fc79ec4Tinderbox User Y.Test.Runner.add(testEventTarget);
e5bf83fe0bbca838a0749e9071bd76d9ee0fb59bFrancis Dupont // base: "/build/",
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User // filter: "debug",
2beefc22e6debdb72d7b2a069787ff565fc79ec4Tinderbox User // combine: false,
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater // useConsole: true,
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater // logExclude: {Dom: true, Selector: true, Node: true, attribute: true, base: true, loader: true, get: true, widget: true}
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater // }).use("datasource", function(Y) {
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater // Y.log('loaded datasource: ' + Y.DataSource);