node.html revision d58fc46dd9cf068dd098a2ca368d9d9c57427675
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney<script type="text/javascript" src="/build/yui/yui.js"></script>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney width:1000px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney min-height:200px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney background:#ccc;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney font-size:10px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney height:10em;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney padding:15px 0;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney width:200px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney background:#ccc;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney position:absolute;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney overflow:hidden;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney background:green;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney position:absolute;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney height:10px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney#test-computed {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney position:relative;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney margin:auto;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney padding:10px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney#test-scroll {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney height: 100px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney width: 100px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney overflow:auto;
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney#test-scroll p {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney height:1000px;
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney width:1000px;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney display:block;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney background: #070;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney color: #fff;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney background: #700;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney color: #fff;
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney <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>
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney <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>
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
85a258143f630b36522d3d1835a8e5a916dbad2cMatt Sweeney <form id="test-form" class="test-class" action="#">
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <label for="test-text-value"><em>label</em></label>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <input name="test-text-value" value="text value">
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <textarea name="test-textarea-value" value="textarea value"></textarea>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <textarea name="test-textarea-novalue"></textarea>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <textarea name="test-textarea-textvalue">textarea text</textarea>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <button name="test-button-value" value="button value">button</button>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <button name="test-button-textvalue">button text</button>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <div id="inline-style" style="color: green">inline style</div>
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney <div id="test-computed">test computed style</div>
4a589644c0b4ea2684514116fbbad30d79536f8aMatt SweeneyYUI({base: '/build/', filter: 'raw'}).use('anim', 'console', 'test', function(Y) {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney var Assert = Y.Assert,
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney suite = new Y.Test.Suite("yuisuite");
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney new Y.Console({node: '#yui-log', height: '50em' }).render('#yui-log');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney var byId = function(id) {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney name: 'Y.Node Instance',
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney test_get: function() {
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney var node = Y.one('#test-nodes'),
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney nodes = Y.all('#test-nodes *');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney // return null
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Y.one("a[href$='?t=5']");
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isNull(Y.one('#fake-id'), 'Y.one("#fake-id") === null');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney // return zero length collection
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(byId('test-nodes').id, Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(document.getElementById('form.foo@bar:baz'), Y.Node.getDOMNode(Y.one('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney var firstChild = Y.one('body :first-child');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Y.one('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.isFalse(firstChild._node === Y.one('body :first-child')._node, "wrong node: Y.one('body :first-child')");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Y.one('body').removeChild(Y.one('body :first-child'));
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.one('body :first-child')._node, "body :first-child === #test-append");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney // return more than 1
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.one("#test-select option")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.one("#test-select option").size()');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(2, Y.all('form').size(), 'Y.one("form").size()');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.one("form").item(1)');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(3, Y.all('.bar').size(), 'Y.one(".bar")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney var frameDoc = Y.one('iframe').get('contentWindow.document');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.one('#demo li').get('innerHTML')),
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney "frameDoc.one('#demo li').get('innerHTML')");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney test_each: function() {
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney var count = 0,
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney nodes = Y.all('#test-nodes *'),
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney nodes.each(function(node, i, list) {
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(nodes, list, 'nodes === instance');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(node, this, 'this === node');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney test_some: function() {
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney var nodes = Y.all('#test-nodes *'),
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney index, instance, isNode;
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.isTrue(nodes.some(function(node, i, list) {
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney return true;
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney }), 'nodes.some(function() { return true; })');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.isFalse(nodes.some(function(node, i, list) {
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney }), 'nodes.some(function() {})');
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney test_indexOf: function() {
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(0, Y.all('body').indexOf(Y.one('body')),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(0, Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0])),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney "Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0]))");
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-')),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-form')),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney test_getters: function() {
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney var id = 'test-nodes',
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney element = byId(id),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney node = Y.one('#' + id),
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney nodes = Y.all('#' + id + ' *');
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(null, node.get(''), 'node.get("") === null');
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
576e5aadaa60b824ce0a3875d3551ca3151a1957Matt Sweeney Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
0dfbad86367ee46837c580e51d7d76e8bd6d88b7Matt Sweeney Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
b8e54cd0fdbfd4d5482a6c38e53b0d42e2e2baffMatt Sweeney Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney var textContainer = Y.Node.create('<div>foo</div>');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney ArrayAssert.itemsAreEqual($('#test-select option'),
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Y.NodeList.getDOMNodes(Y.one('#test-select').get('options')),
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(2, node.get('children').size(), 'get("children")');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney // size() is deprecated on Node
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney //Assert.areEqual(1, Y.one('#' + id + ' li').size(), 'Y.one("#test-nodes li.size()")');
4a589644c0b4ea2684514116fbbad30d79536f8aMatt Sweeney 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");
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);
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');
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');
domNode.style.zoom = 1;
domNode.style.border = 'medium solid #000';
var bw = (Y.UA.ie) ? 4 : 3;
var h = node.get('offsetHeight') - 20 - 2 * bw;
Assert.areEqual(h, Math.round(parseFloat(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 + ")");
var node = Y.one('#test-insert-html'),
content = node.get('innerHTML');
node.insert(html);
"node.insert('" + html + "')");
content = node.get('innerHTML');
node.insert(html, 0);
"node.insert(" + html + ", 0)");
node.insert(html, 1);
"node.insert(" + html + ", 1)");
content = node.get('innerHTML');
node.insert(html);
"node.insert(" + html + ")");
content = node.get('innerHTML');
node.insert(html);
"node.insert(" + html + ")");
content = node.get('innerHTML');
node.insert(html);
"node.insert(" + html + ")");
content = node.get('innerHTML');
node.insert(html, 0);
"node.insert(" + html + ", 0)");
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');
node.prepend(html);
"node.prepend('" + html + "')");
content = node.get('innerHTML');
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');
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}');
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');
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');
Y.Test.Runner.add(suite);
Y.on('load', function() {