node.html revision f17e17be9c572987bd54bdfc62a306c1d53859e2
c05435d86f46effbb48f460bd664b0c4170c07f1johanengelen<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
c05435d86f46effbb48f460bd664b0c4170c07f1johanengelen<link type="text/css" rel="stylesheet" href="/yui2/build/logger/assets/logger.css">
c05435d86f46effbb48f460bd664b0c4170c07f1johanengelen<link type="text/css" rel="stylesheet" href="/yui2/build/yuitest/assets/testlogger.css">
c05435d86f46effbb48f460bd664b0c4170c07f1johanengelen<script type="text/javascript" src="/build/yui/yui.js"></script>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow<script type="text/javascript" src="/yui2/build/yahoo/yahoo-min.js"></script>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow<script type="text/javascript" src="/yui2/build/dom/dom-min.js"></script>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow<script type="text/javascript" src="/yui2/build/event/event.js"></script>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow<script type="text/javascript" src="/yui2/build/logger/logger-min.js"></script>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow<script type="text/javascript" src="/yui2/build/yuitest/yuitest.js"></script>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow width:1000px;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow min-height:200px;
9efa90a14f617d756ada86d166a3509042565469johanengelen background:#ccc;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow font-size:10px;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow height:10em;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow padding:15px 0;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow width:200px;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow background:#ccc;
cbd9e9998d6b2b36f0a979bea85d75410f3d3974johanengelen position:absolute;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow overflow:hidden;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow background:green;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow position:absolute;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow height:10px;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow#test-computed {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow position:relative;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow margin:auto;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow padding:10px;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow#test-scroll {
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow height: 100px;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow width: 100px;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow overflow:auto;
e652143fdccf6d691397f1fdc8ec122a56603762johanengelen#test-scroll p {
e652143fdccf6d691397f1fdc8ec122a56603762johanengelen height:1000px;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow width:1000px;
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow display:block;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <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>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <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>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <form id="test-form" class="test-class" action="#">
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <label for="test-text-value"><em>label</em></label>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <input name="test-text-value" value="text value">
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <textarea name="test-textarea-value" value="textarea value"></textarea>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <textarea name="test-textarea-novalue"></textarea>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <textarea name="test-textarea-textvalue">textarea text</textarea>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <button name="test-button-value" value="button value">button</button>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <button name="test-button-textvalue">button text</button>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <div id="inline-style" style="color: green">inline style</div>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow <div id="test-computed">test computed style</div>
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadowYUI({base: '/build/', filter: 'raw'}).use('node', 'selector-css3', 'anim', function(Y) {
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow var ArrayAssert = YAHOO.util.ArrayAssert;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var logger = new tool.TestLogger('yui-log', { height: '800px', fontSize: '100%' });
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow var byId = function(id) {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow name: 'Y.Node Instance',
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow test_get: function() {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var node = Y.get('#test-nodes'),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow nodes = Y.all('#test-nodes *');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow // return null
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isNull(Y.get('#fake-id'), 'Y.get("#fake-id") === null');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow // return zero length collection
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(byId('test-nodes').id, Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes")');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('test-nodes', Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes").get("id")');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(node, Y.get('#test-nodes'), 'node === Y.get("#test-nodes")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Y.Node.getDOMNode(Y.get('#test-nodes li:first-child')), 'Y.get("#test-nodes")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(document.body, Y.Node.getDOMNode(Y.get('div, .foo, body')), "Y.get('div, .foo, body')");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var frameDoc = Y.get('iframe').get('contentWindow.document');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('iframe foo', frameDoc.query('#demo li').get('innerHTML'),
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow "frameDoc.query('#demo li').get('innerHTML')");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(document.getElementById('form.foo@bar:baz'), Y.Node.getDOMNode(Y.get('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var firstChild = Y.get('body :first-child');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Y.get('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.isFalse(Y.Node.getDOMNode(firstChild) === Y.Node.getDOMNode(Y.get('body :first-child')), "wrong node: Y.get('body :first-child')");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Y.get('body').removeChild(Y.get('body :first-child'));
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(Y.Selector.query('body :firstChild', null, true), Y.Node.getDOMNode(Y.get('body : first-child')), "body :first-child === #test-append");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow // return more than 1
dde66d7d04aa31ebbbb467e1bfa62b0205569b0fverbalshadow ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.get("#test-select option")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.get("#test-select option").size()');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(2, Y.all('form').size(), 'Y.get("form").size()');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.get("form").item(1)');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(1, Y.all('.bar').size(), 'Y.get(".bar")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow test_each: function() {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var count = 0,
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow nodes = Y.all('#test-nodes *'),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow nodes.each(function(node, i, list) {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(nodes, list, 'nodes === instance');
931c92216076df5749b9d6bf66ff96c43c82c174johanengelen Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(node, this, 'this === node');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow test_some: function() {
d0094572a7caa791bf3d15ebe4c6a93638798b41verbalshadow var nodes = Y.all('#test-nodes *'),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow index, instance, isNode;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isTrue(nodes.some(function(node, i, list) {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow return true;
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow }), 'nodes.some(function() { return true; })');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.isFalse(nodes.some(function(node, i, list) {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow }), 'nodes.some(function() {})');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow test_indexOf: function() {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(0, Y.all('div').indexOf(Y.get('#test-append')),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow "Y.all('div').indexOf(Y.get('#test-append'))");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(1, Y.all('div').indexOf(Y.get('#test-xy')),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-')),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-form')),
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow test_getters: function() {
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var id = 'test-nodes',
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow element = byId(id),
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow node = Y.get('#' + id),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow nodes = Y.all('#' + id + ' *');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(null, node.get(''), 'node.get("") === null');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
0311847cf7400d865b1f6e730ec2e3cf210a4104verbalshadow Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow var textContainer = Y.Node.create('<div>foo</div>');
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow ArrayAssert.itemsAreEqual($('#test-select option'),
61a68cdf709696df81afb4293f0db1cf85ad7180verbalshadow Y.NodeList.getDOMNodes(Y.get('#test-select').get('options')),
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.get('#test-prop').get('tabIndex'), 'Y.get("#test-prop").get("tabIndex")');
Assert.areEqual(byId('doc').tabIndex, Y.get('#doc').get('tabIndex'), 'Y.get("#doc".get("tabIndex"))');
Assert.areEqual(byId('link-1').tabIndex, Y.get('#link-1').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
Assert.areEqual(byId('link-2').tabIndex, Y.get('#link-2').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
Assert.areEqual(undefined, Y.get('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.get('#' + 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.get('#' + id),
nodes = Y.all('#test-nodes *');
var childNodes = Y.get('body').get('childNodes');
childNodes.set('title', 'foo bar');
Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.get("body").get("childNodes").set("title")');
node.set('foo', 'foo');
node.set('title', 'my title');
nodes.set('className', 'foo');
Y.get('#test-select').set('selectedIndex', 2);
"Y.get('#test-select').set('selectedIndex', 2)");
var index = Y.get('#test-select').query('option[value=1]').set('selected', true);
"Y.get('#test-select').set('selectedIndex', 1)");
Assert.areEqual(2, byId('test-select').selectedIndex,
var node = Y.Node.get('#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.get('body').get('lastChild').compareTo(Y.get('#test-append')), 'get("body").appendChild(Y.get("#test-append"))');
Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.get('body').get('lastChild')), 'get("body").appendChild(Y.get([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.get(insertNode)).get('innerHTML'), 'appendChild(Node input)');
Assert.areEqual('inserted node', node.removeChild(Y.get(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()');
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")');
Assert.areEqual('0', Y.get('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
Assert.areEqual('1', Y.get('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
Assert.areEqual('', Y.get('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
Assert.areEqual('http://www.yahoo.com/foo', Y.get('#link-1').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
Assert.areEqual('foo.html', Y.get('#link-2').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
var frag = Y.get('document').invoke('createDocumentFragment'),
frag.appendChild(element);
Y.get('body').appendChild(frag);
var node = Y.Node.get(element);
Assert.areEqual(document.documentElement.scrollLeft, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
Assert.areEqual(document.documentElement.scrollTop, node.get('docScrollY'), 'node.get("docScrollY")');
node.setXY([100, 100]);
ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.Node.get('#doc').get('region'), 'node.get("region")');
var node = Y.Node.get(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.Node.get('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) {
node = Y.Node.get(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.Node.get('#get-style');
node.setStyle('opacity', 0.5);
node.setStyle('visibility', 'hidden');
node.setStyle('visibility', 'visible');
var node = Y.get('#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.Node.get(node);
node = Y.get('#' + id),
nodes = Y.all('#test-nodes *');
var win = Y.get(window);
//Assert.areEqual(window, Y.Node.getDOMNode(Y.get('document').get('defaultView')), 'win.get(document)');
Y.get('#test-scroll').set('scrollTop', 100);
Y.get('#test-scroll').set('scrollLeft', 200);
document.body.style.height = '5000px';
document.body.style.width = '5000px';
Y.get(window).set('scrollTop', 100);
Y.get(window).set('scrollLeft', 200);
Y.get(document).set('scrollTop', 200);
Y.get(document).set('scrollLeft', 100);
window.scrollTo(0, 0);
Y.get('#test-insert-html').append(html);
Y.DOM.byId('test-insert-html').innerHTML,
Y.get('#test-insert-html').setContent(html);
Assert.areEqual(html,
Y.DOM.byId('test-insert-html').innerHTML,
Y.get('#test-insert-html').append(html);
html = document.createElement('div');
Y.get('#test-insert-html').append(html);
Y.get('#test-insert-html').prepend(html);
html = document.createElement('div');
Y.get('#test-insert-html').prepend(html);
Y.get('#test-insert-html').insert(html, 2);
Assert.areEqual(Y.get('#test-insert-html')._node.childNodes[2], html._node, 'node.insert(someNode)');
html = document.createElement('div');
Y.get('#test-insert-html').insert(html, 2);
Assert.areEqual(Y.get('#test-insert-html')._node.childNodes[2], html, 'node.insert(someDOMNode, 2)');
Assert.areEqual('text value',
Y.get('input[name=test-text-value]').get('value'),
"Y.get('input[name=test-text-value]').get('value')");
Assert.areEqual('', // TODO: normalize to null?
Y.get('input[name=test-text-novalue]').get('value'),
"Y.get('input[name=test-text-novalue]').get('value')");
Assert.areEqual('textarea text',
Y.get('textarea[name=test-textarea-textvalue]').get('value'),
Assert.areEqual('',
Y.get('textarea[name=test-textarea-novalue]').get('value'),
Assert.areEqual('',
Y.get('textarea[name=test-textarea-value]').get('value'),
Assert.areEqual('button value',
Y.get('button[name=test-button-value]').get('value'),
Assert.areEqual('',
Y.get('button[name=test-button-novalue]').get('value'),
Assert.areEqual('',
Y.get('button[name=test-button-textvalue]').get('value'),
var node = Y.get('#test-remove'),
domNode = Y.DOM.byId('test-remove'),
parent = domNode.parentNode;
node.remove();
var node = Y.get('#test-replace').get('firstChild'),
newNode = document.createElement('div');
node.replace(newNode);
var elements = Y.get('#test-form').get('elements');
ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.get('#test-form').get('elements')");
var frag = Y.all('#test-frag p').toFrag();
Y.get('body').set('role', 'menu');
Y.get('body').set('aria-checked', true);
Assert.areEqual('true', document.body.getAttribute('aria-checked', 2), "Y.get('body').set('aria-checked', true)")
Assert.areEqual('true', Y.get('body').getAttribute('aria-checked'), "Y.get('body').set('aria-checked', true)")
Y.get('body').set('aria-checked', false);
Assert.areEqual('false', Y.get('body').get('aria-checked'), "Y.get('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.Node.get('document');
Y.DOM.setStyle(mask, 'opacity', 0.4);
Assert.areEqual(document.documentElement.scrollLeft, doc.get('docScrollX'), 'doc.get("docScrollX")');
Assert.areEqual(document.documentElement.scrollTop, doc.get('docScrollY'), 'doc.get("docScrollY")');
mask.className = '';
name: 'Instance Y.NodeExtras',
var element = Y.Node.get('#test-extras');
tool.TestRunner.add(suite);
Y.on('load', function() {