dom.html revision 2f03ba9e07559709925bfe6cb1b40c83aa810672
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore<html>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore<head>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <title>YUI DOM Event Tests</title>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore</head>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore<body class="yui-skin-sam">
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <div id="doc">
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <div id="clickcontainer">
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore <p id="clicker1" class="clickers">click1</p>
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore <p id="clicker2" class="clickers">click2</p>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore </div>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore </div>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <!-- YUI3 Core //-->
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <script type="text/javascript" src="/build/yui/yui-debug.js"></script>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <!-- Initialization process //-->
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore <script type="text/javascript">
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore YUI({
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore base: "/build/",
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore filter: 'debug',
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore combine: false,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore useConsole: true,
f647f9c7909e84a0b19f09de42ce82a715e2d52aAdam Moore logExclude: {deprecated:1, yui:true, get: true, loader: true, Dom: true, Selector: true, Node: true, attribute: true, base: true, event: true, widget: true}
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }).use('console', 'test', 'node', 'event-simulate', function (Y) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore // creating the console...
0771d781138a507b3e657573703f511291640bf3Adam Moore // (new Y.Console()).render();
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore // starting the testing process
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore // add the test cases and suites
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Test.Runner.add(new Y.Test.Case({
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore name: "DOM Event Tests",
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore test_on_with_string: function() {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore var clicked = false,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore obj = {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore a: 1
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore };
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.on('click', function(e, extra1, extra2) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore clicked = true;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context = this;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1 = extra1;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2 = extra2;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }, '#clickcontainer', obj, 2, 3);
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clickcontainer'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.isTrue(clicked, "click handler via Y.on didn't work when passed a string.");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore test_on_with_node: function() {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore var clicked = false,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore obj = {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore a: 1
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore node = Y.get('#clickcontainer');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.on('click', function(e, extra1, extra2) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore clicked = true;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context = this;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1 = extra1;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2 = extra2;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }, node, obj, 2, 3);
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clickcontainer'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.isTrue(clicked, "click handler via Y.on didn't work when passed a node.");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore test_node_on: function() {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore var clicked = false,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore obj = {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore a: 1
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore node = Y.get('#clickcontainer');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore node.on('click', function(e, extra1, extra2) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore clicked = true;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context = this;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1 = extra1;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2 = extra2;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }, obj, 2, 3);
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clickcontainer'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.isTrue(clicked, "click handler didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore test_nodelist_on: function() {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore var clicked = 0,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore obj = {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore a: 1
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore nodelist = Y.all('.clickers');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore nodelist.on('click', function(e, extra1, extra2) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore clicked++;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context = this;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1 = extra1;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2 = extra2;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }, obj, 2, 3);
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clicker1'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, clicked, "click handler didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work"); // bug #2528155
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work"); // bug #2528155
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clicker2'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(2, clicked, "click handler didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work"); // bug #2528155
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work"); // bug #2528155
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore test_y_on_with_nodelist: function() {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore var clicked = 0,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2,
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore obj = {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore a: 1
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore },
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore nodelist = Y.all('.clickers');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.on('click', function(e, extra1, extra2) {
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore clicked++;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore context = this;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex1 = extra1;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore ex2 = extra2;
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }, nodelist, obj, 2, 3);
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clicker1'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, clicked, "click handler didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Event.simulate(document.getElementById('clicker2'), 'click');
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, clicked, "click handler didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore },
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore test_y_on_with_selector_multiple_match: function() {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore var clicked = 0,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore context,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex1,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex2,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore obj = {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore a: 1
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore };
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.on('click', function(e, extra1, extra2) {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore clicked++;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore context = this;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex1 = extra1;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex2 = extra2;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore }, '.clickers', obj, 2, 3);
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Event.simulate(document.getElementById('clicker1'), 'click');
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, clicked, "click handler didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Event.simulate(document.getElementById('clicker2'), 'click');
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(2, clicked, "click handler didn't work");
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore },
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore test_y_on_with_htmlelementcollection: function() {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore var clicked = 0,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore context,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex1,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex2,
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore obj = {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore a: 1
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore };
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.on('click', function(e, extra1, extra2) {
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore clicked++;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore context = this;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex1 = extra1;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore ex2 = extra2;
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore }, document.getElementsByTagName('p'), obj, 2, 3);
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Event.simulate(document.getElementById('clicker1'), 'click');
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, clicked, "click handler didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Event.simulate(document.getElementById('clicker2'), 'click');
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, clicked, "click handler didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(1, context.a, "context didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(2, ex1, "extra arg1 didn't work");
6a3faa9e0e4639febffbd7018ce47b861626d0baAdam Moore Y.Assert.areEqual(3, ex2, "extra arg2 didn't work");
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore },
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore test_detach_by_sig: function() {
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore var clicked = 0,
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore context,
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore ex1,
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore ex2,
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore obj = {
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore a: 1
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore }, fn = function(e, extra1, extra2) {
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore clicked++;
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore context = this;
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore ex1 = extra1;
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore ex2 = extra2;
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore },
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore els = document.getElementsByTagName('p');
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.on('click', fn, 'clicker1', obj, 2, 3);
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Event.detach('click', fn, 'clicker1', obj, 2, 3);
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Event.simulate(document.getElementById('clicker1'), 'click');
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore Y.Assert.areEqual(0, clicked, "click handler didn't work");
2f03ba9e07559709925bfe6cb1b40c83aa810672Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore }));
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore //run all tests
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore Y.Test.Runner.run();
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore /* finishing the testing process */
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore });
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore </script>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore</body>
e69255aa5a65f8406ba2fabaf69fe4e1d05daf69Adam Moore</html>