node.html revision 0d06333a1ec36978469c95b49ca823542e891644
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass<script type="text/javascript" src="/build/yui/yui.js"></script>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass min-height:200px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass width:1000px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass border:10px solid red;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass padding:1em;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass background:#ccc;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass font-size:10px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass height:10em;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass padding:15px 0;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass width:200px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass background:#ccc;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass position:absolute;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass overflow:hidden;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass background:green;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass position:absolute;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass height:10px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass#test-computed {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass border: medium solid #000;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass position:relative;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass margin:auto;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass padding:10px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass#test-scroll {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass height: 100px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass width: 100px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass overflow:auto;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass#test-scroll p {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass height:1000px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass width:1000px;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass display:block;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass background: #070;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass color: #fff;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass background: #700;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass color: #fff;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav 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>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav 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>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <form id="test-form" class="test-class" action="#">
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <label for="test-text-value"><em>label</em></label>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <input name="test-text-value" id="test-text-value" value="text value">
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <textarea name="test-textarea-value" value="textarea value"></textarea>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <textarea name="test-textarea-novalue"></textarea>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <textarea name="test-textarea-textvalue">textarea text</textarea>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <button name="test-button-value" value="button value">button</button>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <button name="test-button-textvalue">button text</button>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <div id="inline-style" style="color: green">inline style</div>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass <tr><td id="test-td"><div><div>grandchild of td</div></div></td></tr>
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav GlassYUI({base: '/build/', filter: 'raw'}).use('selector-css3', 'node-deprecated', 'anim', 'console', 'test', 'node-event-simulate', 'node-load', function(Y) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var Assert = Y.Assert,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert = Y.ArrayAssert,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass suite = new Y.Test.Suite("yuisuite");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass new Y.Console({node: '#yui-log', height: '1000px' }).render('#yui-log');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var byId = function(id) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass name: 'Y.Node Instance',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'should cache node': function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.Node.create('<div id="test-caching" />');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node, Y.Node._instances[node._yuid]);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'should get fresh node after destroy': function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.Node.create('<div id="test-caching2" />');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areNotEqual(Y.one('#test-caching2'), node);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_get: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#test-nodes'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = Y.all('#test-nodes *');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // return null
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one("a[href$='?t=5']");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(Y.one('#fake-id'), 'Y.one("#fake-id") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // return zero length collection
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').id, Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('form.foo@bar:baz'), Y.Node.getDOMNode(Y.one('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var firstChild = Y.one('body :first-child');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(firstChild._node === Y.one('body :first-child')._node, "wrong node: Y.one('body :first-child')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body').removeChild(Y.one('body :first-child'));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.one('body :first-child')._node, "body :first-child === #test-append");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // return more than 1
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.one("#test-select option")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.one("#test-select option").size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(2, Y.all('form').size(), 'Y.one("form").size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.one("form").item(1)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(3, Y.all('.bar').size(), 'Y.one(".bar")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var frameDoc = Y.one('iframe').get('contentWindow.document');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.one('#demo li').get('innerHTML')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "frameDoc.one('#demo li').get('innerHTML')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areSame(Y.one('doc'), Y.one('doc'), "Y.one('doc') === Y.one('doc')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-text-value'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('doc').one('.test-class #test-text-value')._node,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('doc').one('.test-class #test-text-value')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_each: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var count = 0,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = Y.all('#test-nodes *'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.each(function(node, i, list) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(nodes, list, 'nodes === instance');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node, this, 'this === node');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_some: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var nodes = Y.all('#test-nodes *'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass index, instance, isNode;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(nodes.some(function(node, i, list) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return true;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }), 'nodes.some(function() { return true; })');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(nodes.some(function(node, i, list) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }), 'nodes.some(function() {})');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_indexOf: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0, Y.all('body').indexOf(Y.one('body')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0, Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0])),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0]))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-form')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_getters: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-nodes',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass element = byId(id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one('#' + id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = Y.all('#' + id + ' *');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(null, node.get(''), 'node.get("") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var textContainer = Y.Node.create('<div>foo</div>');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass textContainer.set('text', 'bar');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual($('#test-select option'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.NodeList.getDOMNodes(Y.one('#test-select').get('options')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(2, node.get('children').size(), 'get("children")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // size() is deprecated on Node
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass //Assert.areEqual(1, Y.one('#' + id + ' li').size(), 'Y.one("#test-nodes li.size()")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('test', Y.one('#test-prop').get('firstChild.nextSibling.firstChild.nodeValue'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'node.get("firstChild.nextSibling.firstChild.nodeValue")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-prop').tabIndex, Y.one('#test-prop').get('tabIndex'), 'Y.one("#test-prop").get("tabIndex")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('doc').tabIndex, Y.one('#doc').get('tabIndex'), 'Y.one("#doc".get("tabIndex"))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('link-1').tabIndex, Y.one('#link-1').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('link-2').tabIndex, Y.one('#link-2').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(undefined, Y.one('form').get('childNodes')._nodes.item, 'convert live list to static');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.all('input').get('parentNode') instanceof Y.NodeList, "Y.all('input').get('parentNode')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_create: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-nodes',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass element = byId(id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one('#' + id);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.Node.create('<select><option>foo</option></select>');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var option = Y.Node.create('<option>bar</option>').set('selected', 'selected');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('A', node.get('firstChild.tagName'), html);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass html = 'baz';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('3', node.get('nodeType'), "node.get('nodeType')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('3', Y.Node.getDOMNode(node).nodeType, "Y.Node.getDOMNode(node).nodeType");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('3', node.get('firstChild.nodeType'), "node.get('firstChild.nodeType')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.insertBefore(Y.Node.create('foo'), node.get('firstChild'));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foobar', node.get('innerHTML'), "node.get('innerHTML')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foobar', node.get('text'), "node.get('text')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // test setContent with NodeList
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(html, node.get('innerHTML').toLowerCase(), "node.setContent(Y.all(Y.Node.create(html)))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_setter: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-prop',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass element = byId(id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one('#' + id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = Y.all('#test-nodes *');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var childNodes = Y.one('body').get('childNodes');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass childNodes.set('title', 'foo bar');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.one("body").get("childNodes").set("title")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.set('foo', 'foo');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isUndefined(node.get('foo'), 'node.get("foo")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.set('title', 'my title');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('my title', Y.Node.getDOMNode(node).title, 'node.title)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('my title', node.get('title'), 'node.set("title")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.set('className', 'foo');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo', Y.NodeList.getDOMNodes(nodes)[0].className, 'node.className');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo', nodes.get('className')[2], 'node.get("className")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo', nodes.item(nodes.size() - 2).get('className'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var attrMap = {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass className: 'fooclass',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass title: 'new title'
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var getAttrs = node.getAttrs(['className', 'title']);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(attrMap.className, getAttrs.className, 'node.setAttrs(attrMap) (get className)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(attrMap.title, getAttrs.title, 'node.setAttrs(attrMap) (get title)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-select').set('selectedIndex', 2);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(2, Y.one('#test-select')._node.selectedIndex,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-select').set('selectedIndex', 2)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body > form').set('test-select.selectedIndex', 2);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(2, byId('test-select').selectedIndex,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'Y.one("body > form").set("test-select.selectedIndex", 2)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var index = Y.one('#test-select').one('option[value=1]').set('selected', true);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(1, Y.one('#test-select')._node.selectedIndex,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-select').set('selectedIndex', 1)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-select').set('value', 1);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(1, Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-select').set('value', 'baz');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 'baz')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_dom_methods: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-prop';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = byId(id);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#test-prop');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasMethod('appendChild'), "node.hasMethod('appendChild')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var xmlNode = Y.one(document.createElement('xml'));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(xmlNode.hasMethod('onreadystatechange')," xmlNode.hasMethod('onreadystatechange')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass //Assert.isTrue(element === Y.one(node), 'element === Y.one(node)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var insertNode = document.createElement('div');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.stamp(insertNode);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass insertNode.innerHTML = 'inserted node';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one('body').get('lastChild').compareTo(Y.one('#test-append')), 'get("body").appendChild(Y.one("#test-append"))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.one('body').get('lastChild')), 'get("body").appendChild(Y.one([0]"#test-append"))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('inserted node', node.appendChild(Y.one(insertNode)).get('innerHTML'), 'appendChild(Node input)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('inserted node', node.removeChild(Y.one(insertNode)).get('innerHTML'), 'removeChild(Node input)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var clone = node.cloneNode();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node === clone, 'node === node.cloneNode()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // TODO: test deep clone with bound descendant
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one('.bar').test('.bar'), "Y.one('.bar').test('.bar')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass clone = Y.one('.bar').cloneNode(true);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(clone.hasClass('bar'), "clone.hasClass('bar') (before appending)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body').appendChild(clone);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass clone.set('id', 'new-bar');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(clone.test('.bar'), "clone.test('.bar') (after appending)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.Node.create('<div id="foo" class="bar"></div>').test('.bar'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('.bar')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.Node.create('<div id="foo" class="bar"></div>').test('#foo.bar'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('#foo.bar')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasChildNodes(), 'hasChildNodes()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.compareTo(node), 'compareTo(node)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.compareTo(Y.one(node)), 'compareTo(new Y.Node)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.compareTo(null), 'compareTo(null)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.create('<p>foo</p>').inDoc(), 'node.inDoc()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.contains(byId('test-contains')), 'contains()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.contains(node), 'contains() self');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.contains(element), 'contains() self');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('doc', node.ancestor(function(el) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return el.get('id') === 'doc';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }).get('id'), 'ancestor');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node.ancestor(), node.get('parentNode'), "node.ancestor()");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass return el.getAttribute('foo') !== '';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass }), 'ancestor');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node.get('parentNode'), node.ancestor('div'));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node, node.ancestor('div', true));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('test-class', node.previous().get('id'), 'node.previous()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one(document.body).inDoc(document));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.inDoc(document), 'node.inDoc(document)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.inDoc(Y.one(document)), 'node.inDoc(Y.one(document))');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasAttribute('id'), 'node.hasAttribute("id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasAttribute('title'), 'node.hasAttribute("title")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.hasAttribute('foo'), 'node.hasAttribute("foo")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex") (false)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node.getAttribute('tabIndex'), node.get('tabIndex'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "node.getAttribute('tabIndex') === node.get('tabIndex')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(Y.one('body').hasAttribute('title'), 'body.hasAttribute("title")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('0', Y.one('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('1', Y.one('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('', Y.one('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('http://www.yahoo.com/foo', Y.one('#link-1').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo.html', Y.one('#link-2').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_fragment: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var frag = Y.one('document').invoke('createDocumentFragment'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass element = byId('test-append');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body').appendChild(frag);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_screen: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-prop';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = byId(id);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one(element);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var newNode = Y.Node.create('<div id="brand-new-foo">foo</div>');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0, node.get('docScrollY'), 'node.get("docScrollY")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one('#test-xy');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var x = Math.round(xy[0]);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var y = Math.round(xy[1]);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual([100, 100], [x, y], 'Node.getXY("foo", "bar")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_region: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one('#get-style').inRegion(Y.one('#doc')), 'node.inRegion(Node)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.one('#doc').get('region'), 'node.get("region")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_classes: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-class';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = byId(id);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one(element);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo', element.className, 'node.addClass("foo")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('', element.className, 'node.removeClass("foo")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('body').get('childNodes').addClass('foo');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(byId('test-class').className == 'foo', 'NodeList.addClass');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('bar', element.className, 'Node.replaceClass("foo", "bar")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var nodes = Y.all('#test-nodes li');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.addClass('foo').addClass('bar');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.each(function(n) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.each(function(n) {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.addClass('foo bar baz');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('foo bar baz', node._node.className);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_toggle: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#test-class');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo', false)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo', true)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_setStyle: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = byId('set-style'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one(element),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = node.get('childNodes');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('width', '20em');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('20em', element.style.width, "setStyle('width' '20em')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('marginTop', '1em');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('1em', element.style.marginTop, "setStyle('marginTop','1em')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('opacity', 0.5);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0.5, node.getStyle('opacity'), "setStyle('opacity', 0.5)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('float', 'left');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes.setStyle('marginTop', '1em');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('1em', nodes.getStyle('marginTop')[2], "setStyle('marginTop', '1em'");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_getStyle: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#get-style');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('opacity', 0.5);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(0.5, node.getStyle('opacity'), "node.getStyle('opacity')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('left', node.getStyle('float'), "node.getStyle('float')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('100px', node.getStyle('height'), "getStyle('height')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('200px', node.getStyle('width'), "getStyle('width)'");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('visible', node.getStyle('visibility'), "visibility");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('visibility', 'hidden');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('hidden', node.getStyle('visibility'), "visibility");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node.setStyle('visibility', 'visible');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_getComputedStyle: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#test-computed'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass domNode = byId('test-computed'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass w = node.get('offsetWidth'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass h = node.get('offsetHeight'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bt = parseFloat(node.getComputedStyle('borderTopWidth')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bb = parseFloat(node.getComputedStyle('borderBottomWidth')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass bl = parseFloat(node.getComputedStyle('borderLeftWidth')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass br = parseFloat(node.getComputedStyle('borderRightWidth')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass pt = parseFloat(node.getComputedStyle('paddingTop')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass pb = parseFloat(node.getComputedStyle('paddingBottom')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass pl = parseFloat(node.getComputedStyle('paddingLeft')),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass pr = parseFloat(node.getComputedStyle('paddingRight'));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass if (!Y.UA.ie || document.compatMode !== 'BackCompat') {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass w = w - (pl + pr) - (bl + br);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass h = h - (pt + pb) - (bt + bb);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(parseInt(bt), parseInt(node.getComputedStyle('borderTopWidth')), "borderTopWidth: medium");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(parseInt(h), parseInt(node.getComputedStyle('height')), "height: auto (offset minus padding and border)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('13px', node.getComputedStyle('paddingTop'), "padding 13px");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('visible', node.getComputedStyle('visibility'), "visibility");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('hidden', node.getComputedStyle('visibility'), "visibility:hidden");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(2, node.getComputedStyle('zIndex'), 'node.getComputedStyle("zIndex")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual('0px', node.getComputedStyle('marginTop'), "margin auto");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(parseInt(w), parseInt(node.getComputedStyle('width')), "percent width (from CSS)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_setStyles: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = byId('set-style');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = Y.one(node);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'top': '5px',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass 'right': '10em'
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue( (node.style.top == '5px' && node.style.right == '10em'), "setStyles()");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_selector: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var id = 'test-prop',
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass element = byId(id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass node = Y.one('#' + id),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass nodes = Y.all('#test-nodes *');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass // Selector methods
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(Y.one(document.body).one("#fake-id"), 'body.one("#fake-id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isTrue(Y.one(node).test('#' + id), 'node.test( "#id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(parent.one("#fake-id"), 'parent.one("#fake-id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNull(parent.one('#text-xy'), 'parent.one("test-xy")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_window: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var win = Y.one(window);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(window, Y.Node.getDOMNode(win), 'Y.one(window)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(document, Y.Node.getDOMNode(win.get('document')), 'win.get(document)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass //Assert.areEqual(window, Y.Node.getDOMNode(Y.one('document').get('defaultView')), 'win.get(document)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_windowSize: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.isNotNull(Y.one('body').get('winHeight'), 'body.get("winHeight")');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_scroll: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-scroll').set('scrollTop', 100);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-scroll').set('scrollLeft', 200);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one(window).set('scrollTop', 100);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one(window).set('scrollLeft', 200);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one(document).set('scrollTop', 200);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one(document).set('scrollLeft', 100);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_setContent: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(content);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(" + content + ")");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(Y.Node.create(content));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(Y.Node.create(content));
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var element = document.createElement('strong');
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(element);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(element)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = '';
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(content);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(" + content + ")");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = null;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(content);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(" + content + ")");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = 0;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.one('#test-insert-html').setContent(content);
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "Y.one('#test-insert-html').setContent(" + content + ")");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass test_insert: function() {
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass var node = Y.one('#test-insert-html'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = node.get('innerHTML').toLowerCase();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node._node.innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content + html,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "node.insert('" + html + "')");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = node.get('innerHTML').toLowerCase();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node._node.innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass html + content,
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "node.insert(" + html + ", 0)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node.all('> *').item(1).get('tagName'),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "node.insert(" + html + ", 1)");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = node.get('innerHTML').toLowerCase();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node._node.innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "node.insert(" + html + ")");
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass html = null;
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass content = node.get('innerHTML').toLowerCase();
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass Assert.areEqual(node._node.innerHTML.toLowerCase(),
76ca635d61eb3f9fb7c9d788a44fa8b1690aa138Dav Glass "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();
node.appendTo('body');
node.destroy();
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');
var node = Y.one('body'),
node.setStyle('display', 'none');
node.show(function() {
Assert.isTrue(called);
node.setStyle('display', 'block');
var node = Y.one('body'),
node.setStyle('display', 'none');
node.show(null, function() {
Assert.isTrue(called);
node.setStyle('display', 'block');
var node = Y.one('body'),
node.hide(function() {
Assert.isTrue(called);
node.setStyle('display', 'block');
var node = Y.one('body'),
node.hide(null, function() {
Assert.isTrue(called);
node.setStyle('display', 'block');
var node = Y.one('body');
node.setStyle('display', 'none');
var node = Y.one('body'),
node.setStyle('display', 'none');
node.toggleView('foo', function() {
Assert.isTrue(called);
var node = Y.one('body'),
node.toggleView(true);
var node = Y.one('body'),
node.toggleView(true, function() {
Assert.isTrue(called);
var node = Y.one('body');
node.toggleView(false);
node.setStyle('display', 'block');
var node = Y.one('body'),
node.toggleView(false, function() {
Assert.isTrue(called);
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);
nodelist3 = nodelist1.slice(0, 3);
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();
node2 = node.one('em');
node.empty(true);
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.setStyle('');
document.body.removeChild(node._node);
document.body.appendChild(node._node);
node.setStyle('opacity', '0.5');
node.setStyle('');
document.body.removeChild(node._node);
Y.DOM._fragClones = {};
var node = Y.one('#test-nodes');
node.one('ul')._bar = 'bar';
node.destroy(true);
id = node.generateID();
id = node.generateID();
Assert.areEqual('foo', id);
name: 'new Y.Node()',
Y.Test.Runner.add(suite);
Y.on('load', function() {