node.html revision 0427b0d5f5993020ddcb344b091f999f3b04c982
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass<script type="text/javascript" src="/build/yui/yui.js"></script>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass min-height:200px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass width:1000px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass border:10px solid red;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass padding:1em;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass background:#ccc;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass font-size:10px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass height:10em;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass padding:15px 0;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass width:200px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass background:#ccc;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass position:absolute;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass overflow:hidden;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass background:green;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass position:absolute;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass height:10px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass#test-computed {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass border: medium solid #000;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass position:relative;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass margin:auto;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass padding:10px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass#test-scroll {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass height: 100px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass width: 100px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass overflow:auto;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass#test-scroll p {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass height:1000px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass width:1000px;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass display:block;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass background: #070;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass color: #fff;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass background: #700;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass color: #fff;
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <p>It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).</p>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <form id="test-form" class="test-class" action="#">
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <label for="test-text-value"><em>label</em></label>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <input name="test-text-value" id="test-text-value" value="text value">
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <textarea name="test-textarea-value" value="textarea value"></textarea>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <textarea name="test-textarea-novalue"></textarea>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <textarea name="test-textarea-textvalue">textarea text</textarea>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <button name="test-button-value" value="button value">button</button>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <button name="test-button-textvalue">button text</button>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <div id="inline-style" style="color: green">inline style</div>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass <tr><td id="test-td"><div><div>grandchild of td</div></div></td></tr>
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav GlassYUI({base: '/build/', filter: 'raw'}).use('selector-css3', 'node-deprecated', 'anim', 'console', 'test', 'node-event-simulate', 'node-load', function(Y) {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var Assert = Y.Assert,
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass ArrayAssert = Y.ArrayAssert,
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass suite = new Y.Test.Suite("yuisuite");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass new Y.Console({node: '#yui-log', height: '1000px' }).render('#yui-log');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var byId = function(id) {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass name: 'Y.Node Instance',
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass test_get: function() {
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var node = Y.one('#test-nodes'),
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass nodes = Y.all('#test-nodes *');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass // return null
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.one("a[href$='?t=5']");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isNull(Y.one('#fake-id'), 'Y.one("#fake-id") === null');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass // return zero length collection
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes').id, Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(byId('form.foo@bar:baz'), Y.Node.getDOMNode(Y.one('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass var firstChild = Y.one('body :first-child');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.one('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.isFalse(firstChild._node === Y.one('body :first-child')._node, "wrong node: Y.one('body :first-child')");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Y.one('body').removeChild(Y.one('body :first-child'));
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.one('body :first-child')._node, "body :first-child === #test-append");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass // return more than 1
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.one("#test-select option")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.one("#test-select option").size()');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(2, Y.all('form').size(), 'Y.one("form").size()');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.one("form").item(1)');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(3, Y.all('.bar').size(), 'Y.one(".bar")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
33d85edf47749fa345d7b636b9b4b9d0d0386f44Dav Glass //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
"frameDoc.one('#demo li').get('innerHTML')");
Assert.areEqual(byId('test-text-value'),
Y.one('doc').one('.test-class #test-text-value')._node,
"Y.one('doc').one('.test-class #test-text-value')");
nodes = Y.all('#test-nodes *'),
nodes.each(function(node, i, list) {
Assert.areEqual(nodes, list, 'nodes === instance');
Assert.areEqual(node, this, 'this === node');
var nodes = Y.all('#test-nodes *'),
}), 'nodes.some(function() { return true; })');
}), 'nodes.some(function() {})');
node = Y.one('#' + id),
nodes = Y.all('#' + id + ' *');
Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
textContainer.set('text', 'bar');
ArrayAssert.itemsAreEqual($('#test-select option'),
Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
Assert.areEqual(byId('test-prop').tabIndex, Y.one('#test-prop').get('tabIndex'), 'Y.one("#test-prop").get("tabIndex")');
Assert.areEqual(byId('doc').tabIndex, Y.one('#doc').get('tabIndex'), 'Y.one("#doc".get("tabIndex"))');
Assert.areEqual(byId('link-1').tabIndex, Y.one('#link-1').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
Assert.areEqual(byId('link-2').tabIndex, Y.one('#link-2').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
Assert.areEqual(undefined, Y.one('form').get('childNodes')._nodes.item, 'convert live list to static');
Assert.isTrue(Y.all('input').get('parentNode') instanceof Y.NodeList, "Y.all('input').get('parentNode')");
node = Y.one('#' + id);
Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
node.appendChild(option);
Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
node = Y.Node.create(html);
node = Y.Node.create(html);
node = Y.Node.create(html);
Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
Assert.areEqual(html, node.get('innerHTML').toLowerCase(), "node.setContent(Y.all(Y.Node.create(html)))");
node = Y.one('#' + id),
nodes = Y.all('#test-nodes *');
var childNodes = Y.one('body').get('childNodes');
childNodes.set('title', 'foo bar');
Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.one("body").get("childNodes").set("title")');
node.set('foo', 'foo');
node.set('title', 'my title');
nodes.set('className', 'foo');
node.setAttrs(attrMap);
var getAttrs = node.getAttrs(['className', 'title']);
Y.one('#test-select').set('selectedIndex', 2);
"Y.one('#test-select').set('selectedIndex', 2)");
Assert.areEqual(2, byId('test-select').selectedIndex,
var index = Y.one('#test-select').one('option[value=1]').set('selected', true);
"Y.one('#test-select').set('selectedIndex', 1)");
Y.one('#test-select').set('value', 1);
Y.one('#test-select').set('value', 'baz');
Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
var node = Y.one('#test-prop');
Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
var insertNode = document.createElement('div');
Y.stamp(insertNode);
insertNode.innerHTML = 'inserted node';
Assert.isTrue(Y.one('body').get('lastChild').compareTo(Y.one('#test-append')), 'get("body").appendChild(Y.one("#test-append"))');
Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.one('body').get('lastChild')), 'get("body").appendChild(Y.one([0]"#test-append"))');
Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
Assert.areEqual('inserted node', node.appendChild(Y.one(insertNode)).get('innerHTML'), 'appendChild(Node input)');
Assert.areEqual('inserted node', node.removeChild(Y.one(insertNode)).get('innerHTML'), 'removeChild(Node input)');
var clone = node.cloneNode();
Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
clone = Y.one('.bar').cloneNode(true);
Y.one('body').appendChild(clone);
clone.set('id', 'new-bar');
Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
return el.get('id') === 'doc';
return el.getAttribute('foo') !== '';
Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
node.removeAttribute('tabIndex');
Assert.areEqual('0', Y.one('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
Assert.areEqual('1', Y.one('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
Assert.areEqual('', Y.one('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
Assert.areEqual('http://www.yahoo.com/foo', Y.one('#link-1').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
Assert.areEqual('foo.html', Y.one('#link-2').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
var frag = Y.one('document').invoke('createDocumentFragment'),
frag.appendChild(element);
Y.one('body').appendChild(frag);
var node = Y.one(element);
node = Y.one('#test-xy');
node.setXY([100, 100]);
var xy = node.getXY();
var x = Math.round(xy[0]);
var y = Math.round(xy[1]);
ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.one('#doc').get('region'), 'node.get("region")');
var node = Y.one(element);
Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
node.addClass('foo');
node.removeClass('foo');
node.addClass('foo');
Y.one('body').get('childNodes').addClass('foo');
node.replaceClass('foo', 'bar');
var nodes = Y.all('#test-nodes li');
nodes.addClass('foo').addClass('bar');
nodes.each(function(n) {
nodes.removeClass('bar');
nodes.each(function(n) {
Y.DOM.addClass(node, 'foo');
Y.DOM.replaceClass('foo', 'foo');
node.addClass('foo bar baz');
var node = Y.one('#test-class');
node.toggleClass('foo');
node.toggleClass('foo');
node.toggleClass('foo', false);
node.toggleClass('foo');
node.toggleClass('foo', true);
node = Y.one(element),
nodes = node.get('childNodes');
node.setStyle('width', '20em');
node.setStyle('marginTop', '1em');
node.setStyle('opacity', 0.5);
node.setStyle('float', 'left');
node.setStyle('float', 'left');
nodes.setStyle('marginTop', '1em');
var node = Y.one('#get-style');
node.setStyle('opacity', 0.5);
node.setStyle('visibility', 'hidden');
node.setStyle('visibility', 'visible');
var node = Y.one('#test-computed'),
w = node.get('offsetWidth'),
h = node.get('offsetHeight'),
bt = parseFloat(node.getComputedStyle('borderTopWidth')),
bb = parseFloat(node.getComputedStyle('borderBottomWidth')),
bl = parseFloat(node.getComputedStyle('borderLeftWidth')),
br = parseFloat(node.getComputedStyle('borderRightWidth')),
pt = parseFloat(node.getComputedStyle('paddingTop')),
pb = parseFloat(node.getComputedStyle('paddingBottom')),
pl = parseFloat(node.getComputedStyle('paddingLeft')),
pr = parseFloat(node.getComputedStyle('paddingRight'));
Assert.areEqual(parseInt(bt), parseInt(node.getComputedStyle('borderTopWidth')), "borderTopWidth: medium");
Assert.areEqual(parseInt(h), parseInt(node.getComputedStyle('height')), "height: auto (offset minus padding and border)");
domNode.style.padding = '1em';
domNode.parentNode.style.visibility = 'hidden';
domNode.parentNode.style.visibility = 'visible';
domNode.style.margin = 'auto';
var element = Y.one(node);
node = Y.one('#' + id),
nodes = Y.all('#test-nodes *');
var win = Y.one(window);
//Assert.areEqual(window, Y.Node.getDOMNode(Y.one('document').get('defaultView')), 'win.get(document)');
Y.one('#test-scroll').set('scrollTop', 100);
Y.one('#test-scroll').set('scrollLeft', 200);
document.body.style.height = '5000px';
document.body.style.width = '5000px';
Y.one(window).set('scrollTop', 100);
Y.one(window).set('scrollLeft', 200);
Y.one(document).set('scrollTop', 200);
Y.one(document).set('scrollLeft', 100);
window.scrollTo(0, 0);
Y.one('#test-insert-html').setContent(content);
Assert.areEqual(content,
"Y.one('#test-insert-html').setContent(" + content + ")");
Assert.areEqual(content,
Assert.areEqual(content,
var element = document.createElement('strong');
element.innerHTML = 'bar';
Y.one('#test-insert-html').setContent(element);
Assert.areEqual(content,
"Y.one('#test-insert-html').setContent(element)");
Y.one('#test-insert-html').setContent(content);
Assert.areEqual(content,
"Y.one('#test-insert-html').setContent(" + content + ")");
Y.one('#test-insert-html').setContent(content);
Assert.areEqual('',
"Y.one('#test-insert-html').setContent(" + content + ")");
Y.one('#test-insert-html').setContent(content);
Assert.areEqual('0',
"Y.one('#test-insert-html').setContent(" + content + ")");
var node = Y.one('#test-insert-html'),
node.setContent('foo');
content = node.get('innerHTML').toLowerCase();
node.insert(html);
"node.insert('" + html + "')");
content = node.get('innerHTML').toLowerCase();
node.insert(html, 0);
"node.insert(" + html + ", 0)");
node.insert(html, 1);
"node.insert(" + html + ", 1)");
content = node.get('innerHTML').toLowerCase();
node.insert(html);
"node.insert(" + html + ")");
content = node.get('innerHTML').toLowerCase();
node.insert(html);
"node.insert(" + html + ")");
var childCount = node.get('childNodes').size();
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Assert.areEqual(childCount + 2,
node.get('childNodes').size(),
"node.insert(" + html + ")");
Assert.areEqual('Q',
node.get('childNodes').item(childCount).get('tagName'),
"node.insert(" + html + ")");
Assert.areEqual('H2',
node.get('childNodes').item(childCount + 1).get('tagName'),
"node.insert(" + html + ")");
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Y.Lang.trim(content + html).toLowerCase(),
"node.insert(" + html + ")");
node.insert(html, 2);
html = document.createElement('div');
Y.one('#test-insert-html').insert(html, 2);
Assert.areEqual(Y.one('#test-insert-html')._node.childNodes[2], html, 'node.insert(someDOMNode, 2)');
var node = Y.one('#test-insert-html'),
content = node.get('innerHTML').toLowerCase();
node.prepend(html);
"node.prepend('" + html + "')");
content = node.get('innerHTML').toLowerCase();
node.append(html);
"node.append('" + html + "')");
Assert.areEqual('text value',
Y.one('input[name=test-text-value]').get('value'),
"Y.one('input[name=test-text-value]').get('value')");
Assert.areEqual('', // TODO: normalize to null?
Y.one('input[name=test-text-novalue]').get('value'),
"Y.one('input[name=test-text-novalue]').get('value')");
Assert.areEqual('textarea text',
Y.one('textarea[name=test-textarea-textvalue]').get('value'),
Assert.areEqual('',
Y.one('textarea[name=test-textarea-novalue]').get('value'),
Assert.areEqual('',
Y.one('textarea[name=test-textarea-value]').get('value'),
Assert.areEqual('button value',
Y.one('button[name=test-button-value]').get('value'),
Assert.areEqual('',
Y.one('button[name=test-button-novalue]').get('value'),
Assert.areEqual('',
Y.one('button[name=test-button-textvalue]').get('value'),
var node = Y.one('#test-remove'),
domNode = Y.DOM.byId('test-remove'),
parent = domNode.parentNode;
node.remove();
node.remove();
var node = Y.one('#test-replace').get('firstChild'),
newNode = document.createElement('div');
node.replace(newNode);
node = Y.one('#test-replace').get('firstChild');
node.replace(newNode);
var elements = Y.one('#test-form').get('elements');
ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.one('#test-form').get('elements')");
var frag = Y.all('#test-frag p').toFrag();
Y.one('body').set('role', 'menu');
Y.one('body').set('aria-checked', true);
Assert.areEqual('true', document.body.getAttribute('aria-checked', 2), "Y.one('body').set('aria-checked', true)")
Assert.areEqual('true', Y.one('body').getAttribute('aria-checked'), "Y.one('body').set('aria-checked', true)")
Y.one('body').set('aria-checked', false);
Assert.areEqual('false', Y.one('body').get('aria-checked'), "Y.one('body').set('aria-checked', false)");
Y.all('input').each(function(n) {
Y.all('input').each(function(n) {
var mask = document.createElement('div');
mask.className = 'mask';
document.body.appendChild(mask);
var doc = Y.one('document');
window.scrollTo(0,0);
Y.DOM.setStyle(mask, 'opacity', 0.4);
mask.className = '';
var node = Y.one('#test-nodes'),
nodelist = node.all('li');
nodelist.item(1).remove();
nodelist = Y.all('#test-nodes li');
nodelist.item(1).remove();
var node = Y.DOM.byId('test:colon');
node = Y.DOM.byId('_funky:id{$400}');
node = Y.one(1);
node = Y.one(true);
node = Y.one(false);
node = Y.one(0);
var node = Y.DOM.byId('test:colon');
Y.one(node).all('h2')._nodes,
node = Y.DOM.byId('_funky:id{$400}');
Y.one(node).all('h2')._nodes,
node = Y.one('body');
node = Y.one('win');
"Y.all(window)");
"Y.all(window)");
var parent = Y.one('#test-nodes > ol'),
children = parent.get('children');
children.item(2).siblings()._nodes,
"children.item(2).siblings()"
children.item(2).siblings('li')._nodes,
"children.item(2).siblings('li')"
children.addClass('bar');
children.item(1).removeClass('bar');
var elements = Y.DOM.byId('test-swap').getElementsByTagName('li'),
nodes = Y.all('#test-swap li');
var node = Y.one('body');
node.set('data', 'foo');
"node.set('data', 'foo')");
node.setData('foo', 'foo');
"node.setData('foo', 'foo')");
"node.clearData()");
node.setData({'bar': 'bar', 'baz': 'baz'});
"node.setData({'bar': 'bar', 'baz': 'baz'})");
"node.setData({'bar': 'bar', 'baz': 'baz'})");
node.clearData('bar');
"node.clearData('bar')");
"node.clearData('bar')");
"node.clearData()");
"node.clearData() after cleared");
Y.one('head').append(html);
"Y.one('head').append(" + html + ")");
var node = Y.one('#test-table div div').ancestor('td');
Y.Assert.areEqual(byId('test-td'), node._node,
"Y.one('#test-table div').ancestor('td'))");
node = Y.Node.create('<div><div><table><tbody><tr></tr><tr></tr><tr><td><div><div class="inner"></div></div></td></tr></tbody></table></div></div>');
var inner = node.one('.inner');
inner.ancestor('td');
var node = document.createElement('node'),
node.className = 'foo';
document.body.appendChild(node);
nodelist = Y.one(node).ancestors();
nodelist = Y.one(node).ancestors('.foo', true);
ArrayAssert.itemsAreEqual([node], nodelist._nodes);
nodelist = Y.one(node).ancestors('body', true);
document.body.removeChild(node);
var nodelist = Y.all('div'),
item = nodelist.item(0),
Assert.areEqual('foo', foo, "foo === 'foo'");
Assert.areEqual('bar', bar, "bar === 'bar'");
nodelist.on('click', function(e) {
Assert.areEqual(this, nodelist);
Y.on(evtObj, null, nodelist, null, 'foo', 'bar');
nodelist.on(evtObj, null, null, 'foo', 'bar');
nodelist.on({mouseup: true}, function(e) {
Assert.areEqual(this, nodelist);
nodelist.on({mouseup: function(e) {
Assert.areEqual(this, nodelist);
nodelist.on({keydown: true}, function(e) {
nodelist.on({keydown: true}, function(e) {
nodelist.after('click', function(e) {
Assert.areEqual(this, nodelist);
Y.after(evtObj, null, nodelist, null, 'foo', 'bar');
nodelist.after(evtObj, null, null, 'foo', 'bar');
nodelist.after({mouseup: true}, function(e) {
Assert.areEqual(this, nodelist);
nodelist.after({keydown: true}, function(e) {
item.simulate('mousedown');
item.simulate('click');
item.simulate('mouseup');
item.simulate('keydown');
var node = Y.one('#doc'),
height = node._node.offsetHeight,
width = node._node.offsetWidth;
node.set('offsetHeight', 1000);
node.set('offsetWidth', 800);
"node.set('offsetHeight')");
"node.set('offsetWidth')");
node.set('offsetWidth', -100);
node.set('offsetHeight', -100);
"node.get('offsetHeight')");
"node.get('offsetWidth')");
node.setStyle('height', '');
node.setStyle('width', '');
"node.get('offsetHeight')");
"node.get('offsetWidth')");
nodes = node.all('em, strong');
node.destroy();
Assert.isNull(node._node);
var html = '<link id="dyn-link-1" href="#" rel="stylesheet"><link id="dyn-link-2" href="#" rel="stylesheet">';
Y.one('head').prepend(html);
Y.one('head').prepend(html);
var button = document.createElement('button');
button.style.visibility = 'hidden';
document.body.appendChild(button);
Y.one(button).focus();
var node = Y.one('body');
node.hide();
node.setStyle('display', 'block');
var node = Y.one('body');
node.setStyle('display', 'none');
node.show(1);
node.setStyle('display', 'block');
node.set('text', 'foo');
node.unwrap();
node.append(nodelist);
nodelist2 = node.appendChild(nodelist);
childNodes = node.get('childNodes');
childNodes = node.get('childNodes');
childNodes = node.get('childNodes');
node = Y.all('body');
node.once('click', function() {
Assert.areEqual(1, i);
node.item(0).simulate('click');
node.item(0).simulate('click');
var nodes = Y.all('div'),
node = nodes.pop();
var nodes = Y.all('div'),
node = nodes.shift();
var nodes = Y.all('div'),
var nodes = Y.all('div'),
size = nodes.size(),
nodes.unshift(node);
Assert.areEqual(node._node, nodes._nodes[0]);
var nodes = Y.all('div'),
size = nodes.size(),
node = document.createElement('div');
nodes.unshift(node);
Assert.areEqual(node, nodes._nodes[0]);
var nodelist1 = Y.all('div'),
nodelist2 = Y.all('li'),
nodelist3 = nodelist1.concat(nodelist2);
var nodelist1 = Y.all('div');
ArrayAssert.itemsAreEqual(nodelist1._nodes.concat(Y.one('ul')._node, Y.one('li')._node), nodelist2._nodes);
var nodelist1 = Y.all('div');
nodelist2 = nodelist1.slice(1, 4);
var nodelist1 = Y.all('div'),
nodes = Y.all('div')._nodes,
spliced1 = nodes.splice(1, 2),
spliced2 = nodelist1.splice(1, 2)._nodes;
ArrayAssert.itemsAreEqual(nodes, nodelist1._nodes);
ArrayAssert.itemsAreEqual(spliced1, spliced2);
node.empty();
node.all('span').empty();
node.set('id', 'test-loading');
node.appendTo('body');
test.resume(function() {
node.remove();
test.wait(1000);
node.set('id', 'test-loading');
node.appendTo('body');
test.resume(function() {
node.remove();
test.wait(1000);
Y.Node.addMethod('testThis', function() {
return this.get('id');
document.body.appendChild(node._node);
node.setStyle('paddingTop', '10px');
node.set('style', '');
document.body.removeChild(node._node);
document.body.appendChild(node._node);
node.set('style', '');
document.body.removeChild(node._node);
document.body.appendChild(node._node);
node.set('style', '');
document.body.removeChild(node._node);
Y.Test.Runner.add(suite);
Y.on('load', function() {