dom.html revision bc8660dcb747bedc141ca9061de83f6f32f8018f
1c42de6d020629af774dd9e9fc81be3f3ed9398egd<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
1c42de6d020629af774dd9e9fc81be3f3ed9398egd <!-- YUI3 Core //-->
1c42de6d020629af774dd9e9fc81be3f3ed9398egd <script type="text/javascript" src="/build/yui/yui-debug.js"></script>
1c42de6d020629af774dd9e9fc81be3f3ed9398egd <!-- Initialization process //-->
1c42de6d020629af774dd9e9fc81be3f3ed9398egd base: "/build/",
1c42de6d020629af774dd9e9fc81be3f3ed9398egd filter: 'debug',
1c42de6d020629af774dd9e9fc81be3f3ed9398egd combine: false,
1c42de6d020629af774dd9e9fc81be3f3ed9398egd useConsole: true,
1c42de6d020629af774dd9e9fc81be3f3ed9398egd logExclude: {deprecated:1, yui:true, get: true, loader: true, Dom: true, Selector: true, Node: true, attribute: true, base: true, event: true, widget: true}
1c42de6d020629af774dd9e9fc81be3f3ed9398egd }).use('console', 'test', 'node', 'event-simulate', function (Y) {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd // creating the console...
1c42de6d020629af774dd9e9fc81be3f3ed9398egd // (new Y.Console()).render();
1c42de6d020629af774dd9e9fc81be3f3ed9398egd // starting the testing process
1c42de6d020629af774dd9e9fc81be3f3ed9398egd // add the test cases and suites
1c42de6d020629af774dd9e9fc81be3f3ed9398egd name: "DOM Event Tests",
1c42de6d020629af774dd9e9fc81be3f3ed9398egd test_on_with_string: function() {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd var clicked = false,
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.on('click', function(e, extra1, extra2) {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd clicked = true;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd context = this;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd ex1 = extra1;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd ex2 = extra2;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd }, '#clickcontainer', obj, 2, 3);
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Event.simulate(document.getElementById('clickcontainer'), 'click');
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.isTrue(clicked, "click handler via Y.on didn't work when passed a string.");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd test_on_with_node: function() {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd var clicked = false,
1c42de6d020629af774dd9e9fc81be3f3ed9398egd node = Y.get('#clickcontainer');
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.on('click', function(e, extra1, extra2) {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd clicked = true;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd context = this;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd ex1 = extra1;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd ex2 = extra2;
1c42de6d020629af774dd9e9fc81be3f3ed9398egd }, node, obj, 2, 3);
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Event.simulate(document.getElementById('clickcontainer'), 'click');
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.isTrue(clicked, "click handler via Y.on didn't work when passed a node.");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
1c42de6d020629af774dd9e9fc81be3f3ed9398egd test_node_on: function() {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd var clicked = false,
1c42de6d020629af774dd9e9fc81be3f3ed9398egd node = Y.get('#clickcontainer');
1c42de6d020629af774dd9e9fc81be3f3ed9398egd node.on('click', function(e, extra1, extra2) {
1c42de6d020629af774dd9e9fc81be3f3ed9398egd clicked = true;
Y.Assert.isTrue(clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
nodelist = Y.all('.clickers');
nodelist.on('click', function(e, extra1, extra2) {
Y.Assert.areEqual(1, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work"); // bug #2528155
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work"); // bug #2528155
Y.Assert.areEqual(2, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work"); // bug #2528155
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work"); // bug #2528155
nodelist = Y.all('.clickers');
Y.on('click', function(e, extra1, extra2) {
Y.Assert.areEqual(1, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
Y.Assert.areEqual(2, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
Y.on('click', function(e, extra1, extra2) {
Y.Assert.areEqual(1, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
Y.Assert.areEqual(2, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
Y.on('click', function(e, extra1, extra2) {
}, document.getElementsByTagName('p'), obj, 2, 3);
Y.Assert.areEqual(1, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
Y.Assert.areEqual(2, clicked, "click handler didn't work");
Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
els = document.getElementsByTagName('p');
Y.on('click', fn, 'clicker1', obj, 2, 3);
Y.Event.detach('click', fn, 'clicker1', obj, 2, 3);
Y.Assert.areEqual(0, clicked, "detach by signature was a failure");
els = document.getElementsByTagName('p');
var handle = Y.on('click', fn, '.clickers', obj, 2, 3);
// Y.log(handle);
Y.Assert.areEqual(0, clicked, "single detach handle for multiple listeners doesn't work.");
handle = Y.on('available', function() {
div = document.createElement("div");
div.id = 'notthereyet';
this.wait(function() {
Y.Assert.areEqual(0, avail, "onavailable wasn't canceled.");
handle = Y.on('click', function() {
div = document.createElement("div");
div.id = 'notthereyet';
Y.Assert.areEqual(0, avail, "lazy detacher didn't work.");