node.html revision 031235b1003701e2e2489a418b093fe76c74c52c
c313914d0e66b20969215e519bbf2ab4ecf39512Tinderbox User<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
d77cb075aae5595e460e3299bfc1e8ea5d42b560Evan Hunt<link type="text/css" rel="stylesheet" href="/yui2/build/logger/assets/logger.css">
d77cb075aae5595e460e3299bfc1e8ea5d42b560Evan Hunt<link type="text/css" rel="stylesheet" href="/yui2/build/yuitest/assets/testlogger.css">
30ca20f720ad0887772a79e7abb25b4fa0e4b5b0Mark Andrews<script type="text/javascript" src="/build/yui/yui.js"></script>
30ca20f720ad0887772a79e7abb25b4fa0e4b5b0Mark Andrews<script type="text/javascript" src="/yui2/build/yahoo/yahoo-min.js"></script>
30ca20f720ad0887772a79e7abb25b4fa0e4b5b0Mark Andrews<script type="text/javascript" src="/yui2/build/dom/dom-min.js"></script>
701a93f5a592e4652343e049aa495d409c3ee133Mark Andrews<script type="text/javascript" src="/yui2/build/event/event.js"></script>
7ec97ae74e42ec21b354fd2d1366313b41d947d6Evan Hunt<script type="text/javascript" src="/yui2/build/logger/logger-min.js"></script>
701a93f5a592e4652343e049aa495d409c3ee133Mark Andrews<script type="text/javascript" src="/yui2/build/yuitest/yuitest.js"></script>
8f1ed05dc0aae7ae6c3da6ec6d405df61257a61eMark Andrews width:1000px;
73cf0ba4e82c6baef638ecc4e31321223f841d28Mark Andrews min-height:200px;
d8351dfc9b725b0d727be7acab6247d7d501d9a0Mark Andrews background:#ccc;
3a29ce9c08dd31709c73e7187aebda0d360c537bEvan Hunt font-size:10px;
3a29ce9c08dd31709c73e7187aebda0d360c537bEvan Hunt height:10em;
5c78f1f50e53d8e2ed51a187efc2c9a0f43b4b1bMark Andrews padding:15px 0;
f1740da065d4555039fe8bb53beb4153e3f94de3Mark Andrews width:200px;
31c7ab4fb3f7710af87dc9c3d64c5daf9a3dea35Mark Andrews background:#ccc;
31c7ab4fb3f7710af87dc9c3d64c5daf9a3dea35Mark Andrews position:absolute;
ad309e8dfa0601d6053aaa12770a98a6940f89deEvan Hunt overflow:hidden;
fc04365d2f83f197c8a54545dd9cd4ce6a209940Mark Andrews background:green;
fc04365d2f83f197c8a54545dd9cd4ce6a209940Mark Andrews position:absolute;
7cbac360bf98c0a52b2d6866ad887616c32d4d3aMark Andrews height:10px;
1cf118a656f5fd210787908b845362077fc507f8Evan Hunt#test-computed {
1cf118a656f5fd210787908b845362077fc507f8Evan Hunt position:relative;
1cf118a656f5fd210787908b845362077fc507f8Evan Hunt margin:auto;
1cf118a656f5fd210787908b845362077fc507f8Evan Hunt padding:10px;
6fb3db01acad7f5c1f4e23789fb0f2ce56cc07deMukund Sivaraman#test-scroll {
6fb3db01acad7f5c1f4e23789fb0f2ce56cc07deMukund Sivaraman height: 100px;
fd82c70695888c134287b8018296028c252d100eMukund Sivaraman width: 100px;
fd82c70695888c134287b8018296028c252d100eMukund Sivaraman overflow:auto;
4a53e3c2b83c476a93148eaee0272649beb221caMark Andrews#test-scroll p {
4a53e3c2b83c476a93148eaee0272649beb221caMark Andrews height:1000px;
4a53e3c2b83c476a93148eaee0272649beb221caMark Andrews width:1000px;
2cf0fe3b8092f64f8f68ae3693fe2e73e90ad1a4Mark Andrews display:block;
f9c410d93711fbf312a0162f1e2d3f2a5ede69afFrancis Dupont <div id="test-replace"><p>replace me</p></div>
e526027287b849f0b6ab6e069156697cbafa22c1Michał Kępień <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>
929329d2d66a7e1083c70a9c918381935bf12799Mukund Sivaraman <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>
ec29d217ba3a2bf3e617a7b5b6708ae221bee999Mark Andrews <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
ec29d217ba3a2bf3e617a7b5b6708ae221bee999Mark Andrews <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
afefd754734f896bf3e0590177fff83e7cdfdf35Mark Andrews <form id="test-form" class="test-class" action="#">
afefd754734f896bf3e0590177fff83e7cdfdf35Mark Andrews <label for="test-text-value"><em>label</em></label>
afefd754734f896bf3e0590177fff83e7cdfdf35Mark Andrews <input name="test-text-value" value="text value">
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <textarea name="test-textarea-value" value="textarea value"></textarea>
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <textarea name="test-textarea-novalue"></textarea>
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <textarea name="test-textarea-textvalue">textarea text</textarea>
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <button name="test-button-value" value="button value">button</button>
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <button name="test-button-textvalue">button text</button>
7ff28f5befbee76048a23e504dcd3f9a44ce6209Evan Hunt <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
cad79077bd5b2616bc4a7a6b3cbc0953bef8917fMark Andrews <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
adfe58e8e5cd1890585e92b67f1fd01989a1fa7dMark Andrews <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
c3237dec879f82855403ff7e3ba87b298172efd5Mark Andrews <div id="inline-style" style="color: green">inline style</div>
c3237dec879f82855403ff7e3ba87b298172efd5Mark Andrews <div id="test-computed">test computed style</div>
0d6328ce5f6b799f8e7c6cbbb3b965cf29bfb7baMark AndrewsYUI({base: '/build/', filter: 'raw'}).use('node', 'selector-css3', 'anim', function(Y) {
677f507de7c546c187c1505c48bc7b440545485cMark Andrews var ArrayAssert = YAHOO.util.ArrayAssert;
677f507de7c546c187c1505c48bc7b440545485cMark Andrews var logger = new tool.TestLogger('yui-log', { height: '800px', fontSize: '100%' });
e01ef6f01c7e8f80122cd80a2e011425a0135489Mark Andrews var byId = function(id) {
bf459d24a117ae2c54c37016430b41cd6d73491cMark Andrews name: 'Y.Node Instance',
bf459d24a117ae2c54c37016430b41cd6d73491cMark Andrews test_get: function() {
677f507de7c546c187c1505c48bc7b440545485cMark Andrews var node = Y.get('#test-nodes'),
677f507de7c546c187c1505c48bc7b440545485cMark Andrews nodes = Y.all('#test-nodes *');
bf459d24a117ae2c54c37016430b41cd6d73491cMark Andrews // return null
f53e0bda467d96dfeeba1b4da30c37b37766bb75Evan Hunt Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
f53e0bda467d96dfeeba1b4da30c37b37766bb75Evan Hunt Assert.isNull(Y.get('#fake-id'), 'Y.get("#fake-id") === null');
f53e0bda467d96dfeeba1b4da30c37b37766bb75Evan Hunt Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
81e3e3084980afcd61416f572c6e72d38a3808abMichał Kępień // return zero length collection
81e3e3084980afcd61416f572c6e72d38a3808abMichał Kępień Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
81e3e3084980afcd61416f572c6e72d38a3808abMichał Kępień Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
64d7fa3ec4785b390665860aa6bdae304b3c1d24Mark Andrews Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
64d7fa3ec4785b390665860aa6bdae304b3c1d24Mark Andrews Assert.areEqual(byId('test-nodes').id, Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes")');
64d7fa3ec4785b390665860aa6bdae304b3c1d24Mark Andrews Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
64d7fa3ec4785b390665860aa6bdae304b3c1d24Mark Andrews Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
75505befa93c993aa5d2df24a2b64eac0c34cbffMark Andrews Assert.areEqual('test-nodes', Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes").get("id")');
75505befa93c993aa5d2df24a2b64eac0c34cbffMark Andrews Assert.areEqual(node, Y.get('#test-nodes'), 'node === Y.get("#test-nodes")');
a38f07c73790170842e4523b4a474d01ca0dede1Michał Kępień Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
a38f07c73790170842e4523b4a474d01ca0dede1Michał Kępień Y.Node.getDOMNode(Y.get('#test-nodes li:first-child')), 'Y.get("#test-nodes")');
39d5523a8afc73cbdb4fa426de2ce071267a5d6fMark Andrews Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
39d5523a8afc73cbdb4fa426de2ce071267a5d6fMark Andrews Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
39d5523a8afc73cbdb4fa426de2ce071267a5d6fMark Andrews Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
1f4a3c7088594d1b64cd734eb69e1fd023fde8bfMichał Kępień Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
1f4a3c7088594d1b64cd734eb69e1fd023fde8bfMichał Kępień Assert.areEqual(document.body, Y.Node.getDOMNode(Y.get('div, .foo, body')), "Y.get('div, .foo, body')");
91827e6fd3851a5fe129ef5409ff45833ca01a0eMark Andrews var frameDoc = Y.get('iframe').get('contentWindow.document');
91827e6fd3851a5fe129ef5409ff45833ca01a0eMark Andrews Assert.areEqual('iframe foo', frameDoc.query('#demo li').get('innerHTML'),
35aae5884f410180706a89a9715bf9a85eeeb4b7Michał Kępień "frameDoc.query('#demo li').get('innerHTML')");
35aae5884f410180706a89a9715bf9a85eeeb4b7Michał Kępień Assert.areEqual(document.getElementById('form.foo@bar:baz'), Y.Node.getDOMNode(Y.get('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
57b1d64d9ae12d56973716e96f9743a00d47af4aMichał Kępień var firstChild = Y.get('body :first-child');
57b1d64d9ae12d56973716e96f9743a00d47af4aMichał Kępień Y.get('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
2d517e233ff3b3fcd272eb5b2e2d3db6d31a1681Michał Kępień Assert.isFalse(Y.Node.getDOMNode(firstChild) === Y.Node.getDOMNode(Y.get('body :first-child')), "wrong node: Y.get('body :first-child')");
2d517e233ff3b3fcd272eb5b2e2d3db6d31a1681Michał Kępień Y.get('body').removeChild(Y.get('body :first-child'));
09c3efda414314d7edcfb2aed9463fb935fc95a6Mark Andrews Assert.areEqual(Y.Selector.query('body :firstChild', null, true), Y.Node.getDOMNode(Y.get('body : first-child')), "body :first-child === #test-append");
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews // return more than 1
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.get("#test-select option")');
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.get("#test-select option").size()');
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews Assert.areEqual(2, Y.all('form').size(), 'Y.get("form").size()');
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.get("form").item(1)');
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews Assert.areEqual(1, Y.all('.bar').size(), 'Y.get(".bar")');
86d2f9abc8493321aacb0d540485de4d562fb734Mark Andrews Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
09c3efda414314d7edcfb2aed9463fb935fc95a6Mark Andrews Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
c7e57ce1b0bca9bc7da14bec485f7a7e3e4c761fMichał Kępień test_each: function() {
c7e57ce1b0bca9bc7da14bec485f7a7e3e4c761fMichał Kępień var count = 0,
3ed16e796dba90c96933c8a8a3f5b9404d8d3e61Mark Andrews nodes = Y.all('#test-nodes *'),
14d8a144779b54b103d2da741a2242bf5f9052f7Mark Andrews nodes.each(function(node, i, list) {
70e041bea19b6ad9522b89c2299ad315a2deaafdMark Andrews Assert.areEqual(nodes, list, 'nodes === instance');
70e041bea19b6ad9522b89c2299ad315a2deaafdMark Andrews Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
70e041bea19b6ad9522b89c2299ad315a2deaafdMark Andrews Assert.areEqual(node, this, 'this === node');
eeb919b6f572e033d97cf001e4cd44aaff54e5dcMichał Kępień Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
eeb919b6f572e033d97cf001e4cd44aaff54e5dcMichał Kępień Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
a55438eda32ecebf43ead45b216662b7923a465fMark Andrews test_some: function() {
a55438eda32ecebf43ead45b216662b7923a465fMark Andrews var nodes = Y.all('#test-nodes *'),
8de17f83cafa91a5720dd0b8c1aee5f47f6d7f09Evan Hunt index, instance, isNode;
8de17f83cafa91a5720dd0b8c1aee5f47f6d7f09Evan Hunt Assert.isTrue(nodes.some(function(node, i, list) {
9789e54e55b61b669fb31a8b70e9655e8357dda2Mark Andrews return true;
9789e54e55b61b669fb31a8b70e9655e8357dda2Mark Andrews }), 'nodes.some(function() { return true; })');
f8362536c647625e602c8450a778a2b7ba90c9f4Mark Andrews Assert.isFalse(nodes.some(function(node, i, list) {
f8362536c647625e602c8450a778a2b7ba90c9f4Mark Andrews }), 'nodes.some(function() {})');
24231e53a5c3079431f84dcddfee1e761fec7329Mark Andrews test_indexOf: function() {
4b669b69bae7dedda2faa09a7ade247499c1d49cMichał Kępień Assert.areEqual(0, Y.all('div').indexOf(Y.get('#test-append')),
4b669b69bae7dedda2faa09a7ade247499c1d49cMichał Kępień "Y.all('div').indexOf(Y.get('#test-append'))");
4b669b69bae7dedda2faa09a7ade247499c1d49cMichał Kępień Assert.areEqual(1, Y.all('div').indexOf(Y.get('#test-xy')),
eb11b39981689e4a20fbe95e533577eacab992b4Mukund Sivaraman "Y.all('div').indexOf(Y.get('#test-xy'))");
eb11b39981689e4a20fbe95e533577eacab992b4Mukund Sivaraman Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-')),
e7c0f978425f45731b08be1363f20626b0344f23Evan Hunt Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-form')),
575e9d9e4b6beaae688f107814a320b91243a4b2Mark Andrews test_getters: function() {
575e9d9e4b6beaae688f107814a320b91243a4b2Mark Andrews var id = 'test-nodes',
575e9d9e4b6beaae688f107814a320b91243a4b2Mark Andrews element = byId(id),
575e9d9e4b6beaae688f107814a320b91243a4b2Mark Andrews node = Y.get('#' + id),
7c442d7fe06bc95432af7513764e5cc85e133648Evan Hunt nodes = Y.all('#' + id + ' *');
7c442d7fe06bc95432af7513764e5cc85e133648Evan Hunt Assert.areEqual(null, node.get(''), 'node.get("") === null');
5e1ca7a326741a8f74e6f2b907c7e1fbf428bf80Michał Kępień Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
5e1ca7a326741a8f74e6f2b907c7e1fbf428bf80Michał Kępień Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
ba93bc80a7bce5ba07b2f98e68f0f57402f2459cMark Andrews Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
ba93bc80a7bce5ba07b2f98e68f0f57402f2459cMark Andrews Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
8ed107eab48687887d45a1ceb18b712bc7209dbaTinderbox User Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "UL"');
5f103158280fb2e814db305f917aa42040221623Mark Andrews Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
5f103158280fb2e814db305f917aa42040221623Mark Andrews Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
5f103158280fb2e814db305f917aa42040221623Mark Andrews Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
e5715e1fe12e5ad17522bd41c31e637c869d27b7Evan Hunt Assert.areEqual('test-nodes', nodes.get('parentNode')[0].get('id'), 'nodes.get(parentNode)[0].get("id") === test-nodes');
e5715e1fe12e5ad17522bd41c31e637c869d27b7Evan Hunt Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
b7b76d6b855cd4c1152c26d34fb61af05f965c5eEvan Hunt Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
b7b76d6b855cd4c1152c26d34fb61af05f965c5eEvan Hunt Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
b7b76d6b855cd4c1152c26d34fb61af05f965c5eEvan Hunt Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
764e2f3413ca89d09abffb3eb228c8c820bf08b8Mark Andrews Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
764e2f3413ca89d09abffb3eb228c8c820bf08b8Mark Andrews var textContainer = Y.Node.create('<div>foo</div>');
a06198688faca5c7bc1a35ec0ec18bc68c07691cEvan Hunt Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
a06198688faca5c7bc1a35ec0ec18bc68c07691cEvan Hunt textContainer.set('text', 'bar');
50433a667cf0ed3ac7807768b745b0d870ff8c8bMark Andrews Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
3c12bec945ee71a38c5ba6f624abd12e2da7eea5Mark Andrews ArrayAssert.itemsAreEqual($('#test-select option'),
3c12bec945ee71a38c5ba6f624abd12e2da7eea5Mark Andrews Y.NodeList.getDOMNodes(Y.get('#test-select').get('options')),
f44202ab640d22e17b4c74bdad7817622918bd27Mark Andrews Assert.areEqual(2, node.get('children').size(), 'get("children")');
ad9772c559c6aa42f8930f4acf1a2d833a08040aMichał Kępień Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
ad9772c559c6aa42f8930f4acf1a2d833a08040aMichał Kępień // size() is deprecated on Node
5d7d67f82a8913fae5f1098e111fe50edb86cd5bEvan Hunt //Assert.areEqual(1, Y.get('#' + id + ' li').size(), 'Y.get("#test-nodes li.size()")');
5d7d67f82a8913fae5f1098e111fe50edb86cd5bEvan Hunt Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt Assert.areEqual('test', Y.get('#test-prop').get('firstChild.nextSibling.firstChild.nodeValue'),
6216df5ccded056abd5db4abac4e5cbd78c73f45Evan Hunt 'node.get("firstChild.nextSibling.firstChild.nodeValue")');
56e30ebae6fdb0bdf94419caff3a43fb2d16c5dfEvan Hunt Assert.areEqual(byId('test-prop').tabIndex, Y.get('#test-prop').get('tabIndex'), 'Y.get("#test-prop").get("tabIndex")');
56e30ebae6fdb0bdf94419caff3a43fb2d16c5dfEvan Hunt Assert.areEqual(byId('doc').tabIndex, Y.get('#doc').get('tabIndex'), 'Y.get("#doc".get("tabIndex"))');
56e30ebae6fdb0bdf94419caff3a43fb2d16c5dfEvan Hunt Assert.areEqual(byId('link-1').tabIndex, Y.get('#link-1').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
c85920c0b4b2d4dc605c0b1d355881925bf410afMark Andrews Assert.areEqual(byId('link-2').tabIndex, Y.get('#link-2').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
0612274565d80e0ad87a19920e561cce5bddb05bEvan Hunt Assert.areEqual(undefined, Y.get('form').get('childNodes')._nodes.item, 'convert live list to static');
0612274565d80e0ad87a19920e561cce5bddb05bEvan Hunt test_create: function() {
f592d2f76cac7115038124c510d2ba3050334b4dEvan Hunt var id = 'test-nodes',
f592d2f76cac7115038124c510d2ba3050334b4dEvan Hunt element = byId(id),
f592d2f76cac7115038124c510d2ba3050334b4dEvan Hunt node = Y.get('#' + id);
f592d2f76cac7115038124c510d2ba3050334b4dEvan Hunt Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
4ee1fbe056e812e661b856b4b448296331a40249Michał Kępień node = Y.Node.create('<select><option>foo</option></select>');
1c8aa38b53a0494fc7d4c3439594d1913987f264Mark Andrews var option = Y.Node.create('<option>bar</option>').set('selected', 'selected');
1c8aa38b53a0494fc7d4c3439594d1913987f264Mark Andrews Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
43d53a4e4b2f0f9482485a8ab764137a9898ab32Evan Hunt Assert.areEqual('A', node.get('firstChild.tagName'), html);
b1ce9b3d54cd072adb5275f08a9afac31cfb4c1cMichał Kępień html = 'baz';
b1ce9b3d54cd072adb5275f08a9afac31cfb4c1cMichał Kępień Assert.areEqual('3', node.get('nodeType'), "node.get('nodeType')");
b1ce9b3d54cd072adb5275f08a9afac31cfb4c1cMichał Kępień Assert.areEqual('3', Y.Node.getDOMNode(node).nodeType, "Y.Node.getDOMNode(node).nodeType");
b1ce9b3d54cd072adb5275f08a9afac31cfb4c1cMichał Kępień Assert.areEqual('3', node.get('firstChild.nodeType'), "node.get('firstChild.nodeType')");
b1ce9b3d54cd072adb5275f08a9afac31cfb4c1cMichał Kępień Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
5fa4be41a383cfbf5e1d195b18c04bdbf5603710Evan Hunt Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
5fa4be41a383cfbf5e1d195b18c04bdbf5603710Evan Hunt node.insertBefore(Y.Node.create('foo'), node.get('firstChild'));
5fa4be41a383cfbf5e1d195b18c04bdbf5603710Evan Hunt Assert.areEqual('foobar', node.get('innerHTML'), "node.get('innerHTML')");
2732d4922c2e72a399204320791acfd2fd3d6c7cMark Andrews Assert.areEqual('foobar', node.get('text'), "node.get('text')");
24ffba17f06746257d5c009ca8ebfe6043966d20Evan Hunt test_setter: function() {
24ffba17f06746257d5c009ca8ebfe6043966d20Evan Hunt var id = 'test-prop',
24ffba17f06746257d5c009ca8ebfe6043966d20Evan Hunt element = byId(id),
24ffba17f06746257d5c009ca8ebfe6043966d20Evan Hunt node = Y.get('#' + id),
24ffba17f06746257d5c009ca8ebfe6043966d20Evan Hunt nodes = Y.all('#test-nodes *');
21d58795b10a13fa7ac306f7146bdcb58b2e5165Mark Andrews var childNodes = Y.get('body').get('childNodes');
d5bd8bb71a8970d4ebc4701b3e9ec3efef4954b7Evan Hunt childNodes.set('title', 'foo bar');
d5bd8bb71a8970d4ebc4701b3e9ec3efef4954b7Evan Hunt Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.get("body").get("childNodes").set("title")');
d5bd8bb71a8970d4ebc4701b3e9ec3efef4954b7Evan Hunt node.set('foo', 'foo');
d5bd8bb71a8970d4ebc4701b3e9ec3efef4954b7Evan Hunt Assert.isUndefined(node.get('foo'), 'node.get("foo")');
d5bd8bb71a8970d4ebc4701b3e9ec3efef4954b7Evan Hunt node.set('title', 'my title');
ad1317338af79edad878c9c3e4361798503310baMark Andrews Assert.areEqual('my title', Y.Node.getDOMNode(node).title, 'node.title)');
ad1317338af79edad878c9c3e4361798503310baMark Andrews Assert.areEqual('my title', node.get('title'), 'node.set("title")');
9519bb92d7f3f35015aecb84954dd21607cc2c80Evan Hunt nodes.set('className', 'foo');
9519bb92d7f3f35015aecb84954dd21607cc2c80Evan Hunt Assert.areEqual('foo', Y.NodeList.getDOMNodes(nodes)[0].className, 'node.className');
1c81aef28ddf0905344cc58dd3ea0ca539ef1414Evan Hunt Assert.areEqual('foo', nodes.get('className')[2], 'node.get("className")');
1c81aef28ddf0905344cc58dd3ea0ca539ef1414Evan Hunt Assert.areEqual('foo', nodes.item(nodes.size() - 2).get('className'),
da1f585afa8c103508c759142d6aed4edae6936eMark Andrews /* // chains attrs currently broken
da1f585afa8c103508c759142d6aed4edae6936eMark Andrews Y.get('body > form').set('test-select.selectedIndex', 2);
da1f585afa8c103508c759142d6aed4edae6936eMark Andrews Assert.areEqual(2, byId('test-select').selectedIndex,
a8fa3e2d44ce6a8f4069d8f4229d29f5ba6a4a27Mukund Sivaraman 'Y.get("body > form").set("test-select.selectedIndex", 2)');
d71d41341d36ddfd347daab982f0cb85d3dd7c4eMark Andrews test_dom_methods: function() {
d72952cf254b71c44e5e956a306016a5be9b9c38Mark Andrews var id = 'test-prop';
d72952cf254b71c44e5e956a306016a5be9b9c38Mark Andrews var element = byId(id);
aae171c5421ac2ba665ff122e004e753e62bac45Mark Andrews var node = Y.Node.get('#test-prop');
6b183c64a3281491f8232959a5ece303b4499706Mark Andrews //Assert.isTrue(element === Y.get(node), 'element === Y.get(node)');
5a8f2f0cd67a5dd93d95e6a0935d4805721c3a0bMichał Kępień Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
5a8f2f0cd67a5dd93d95e6a0935d4805721c3a0bMichał Kępień var insertNode = document.createElement('div');
5a8f2f0cd67a5dd93d95e6a0935d4805721c3a0bMichał Kępień insertNode.innerHTML = 'inserted node';
e2cc7418bf895d22854d84590b63905fac0d4b90Mark Andrews Assert.isTrue(Y.get('body').get('lastChild').compareTo(Y.get('#test-append')), 'get("body").appendChild(Y.get("#test-append"))');
e2cc7418bf895d22854d84590b63905fac0d4b90Mark Andrews Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.get('body').get('lastChild')), 'get("body").appendChild(Y.get([0]"#test-append"))');
36ec0d374836d070ba05b495e6f0a27f60e94476Evan Hunt Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
36ec0d374836d070ba05b495e6f0a27f60e94476Evan Hunt Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
e446fd29b9c6c4a7b6b5bb0aee3932578c346718Mukund Sivaraman Assert.areEqual('inserted node', node.appendChild(Y.get(insertNode)).get('innerHTML'), 'appendChild(Node input)');
f896f7c8be894a737998b97008a1389e72972fcfMukund Sivaraman Assert.areEqual('inserted node', node.removeChild(Y.get(insertNode)).get('innerHTML'), 'removeChild(Node input)');
027a4a5b5d806290146ce4989d34be2c8a664e8cMukund Sivaraman Assert.isFalse(node === clone, 'node === node.cloneNode()');
b5252fcde512405a68dd4becfe683d9763bd0feaMukund Sivaraman Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
b5252fcde512405a68dd4becfe683d9763bd0feaMukund Sivaraman // TODO: test deep clone with bound descendant
b5252fcde512405a68dd4becfe683d9763bd0feaMukund Sivaraman Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman Assert.isTrue(node.hasChildNodes(), 'hasChildNodes()');
99056063905a9273ec59cf477ae747e0490182b7Mukund Sivaraman Assert.isTrue(node.compareTo(node), 'compareTo(node)');
62f2fefaec754e6a4841ff0e72726e6c0cd89c86Michał Kępień Assert.isTrue(node.compareTo(Y.Node.get(node)), 'compareTo(new Y.Node)');
62f2fefaec754e6a4841ff0e72726e6c0cd89c86Michał Kępień Assert.isFalse(node.compareTo(null), 'compareTo(null)');
62f2fefaec754e6a4841ff0e72726e6c0cd89c86Michał Kępień Assert.isFalse(node.create('<p>foo</p>').inDoc(), 'node.inDoc()');
b351a5864727a390e06d787e522b141ca760590fMichał Kępień Assert.isTrue(node.contains(byId('test-contains')), 'contains()');
b351a5864727a390e06d787e522b141ca760590fMichał Kępień Assert.isTrue(node.contains(node), 'contains() self');
b351a5864727a390e06d787e522b141ca760590fMichał Kępień Assert.isTrue(node.contains(element), 'contains() self');
b351a5864727a390e06d787e522b141ca760590fMichał Kępień Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
8008de0b11bacb3de3a1016c8c0a46f3c0653184Mark Andrews Assert.areEqual('doc', node.ancestor(function(el) {
8008de0b11bacb3de3a1016c8c0a46f3c0653184Mark Andrews return el.get('id') === 'doc';
8008de0b11bacb3de3a1016c8c0a46f3c0653184Mark Andrews }).get('id'), 'ancestor');
8008de0b11bacb3de3a1016c8c0a46f3c0653184Mark Andrews Assert.areEqual(node.ancestor(), node.get('parentNode'), "node.ancestor()");
b815731d05220f932315eb33a97c6dc888c6a026Tinderbox User return el.getAttribute('foo') !== '';
7cd594b8427fe742d44295790ba367e1de22a47dEvan Hunt }), 'ancestor');
7cd594b8427fe742d44295790ba367e1de22a47dEvan Hunt Assert.areEqual('test-class', node.previous().get('id'), 'node.previous()');
c76e8412f4ff4f5945157410312df2a8950f942dMark Andrews Assert.isTrue(Y.get(document.body).inDoc(document));
a2a0100e0fc73c0af67a7c9e3524816954448dc6Evan Hunt Assert.isTrue(node.inDoc(document), 'node.inDoc(document)');
a2a0100e0fc73c0af67a7c9e3524816954448dc6Evan Hunt Assert.isTrue(node.inDoc(Y.get(document)), 'node.inDoc(Y.get(document))');
a2a0100e0fc73c0af67a7c9e3524816954448dc6Evan Hunt Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
1feffc6fdb1ba386b22d45ea2d2f1613e717cb9eMark Andrews Assert.isTrue(node.hasAttribute('id'), 'node.hasAttribute("id")');
1feffc6fdb1ba386b22d45ea2d2f1613e717cb9eMark Andrews Assert.isTrue(node.hasAttribute('title'), 'node.hasAttribute("title")');
1feffc6fdb1ba386b22d45ea2d2f1613e717cb9eMark Andrews Assert.isFalse(node.hasAttribute('foo'), 'node.hasAttribute("foo")');
22bed621ef87bc8b6c1fea599b02c4b38dd6bf48Mark Andrews Assert.isFalse(Y.get('body').hasAttribute('title'), 'body.hasAttribute("title")');
68d7ff133c9a1b8cfe683c70e997d83395ffd155Evan Hunt Assert.areEqual('0', Y.get('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
68d7ff133c9a1b8cfe683c70e997d83395ffd155Evan Hunt Assert.areEqual('1', Y.get('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
68d7ff133c9a1b8cfe683c70e997d83395ffd155Evan Hunt Assert.areEqual('', Y.get('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
e5f5675b1da287ed40aeff081ad2af86090e8d17Evan Hunt Assert.areEqual('http://www.yahoo.com/foo', Y.get('#link-1').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
e5f5675b1da287ed40aeff081ad2af86090e8d17Evan Hunt Assert.areEqual('foo.html', Y.get('#link-2').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
29f0ced781d745591fd058e530a68a281cd7a510Evan Hunt test_fragment: function() {
b9fd54f8d4572fe5dcaf9d4b74f6ecb8027cc450Evan Hunt var frag = Y.get('document').invoke('createDocumentFragment'),
b9fd54f8d4572fe5dcaf9d4b74f6ecb8027cc450Evan Hunt element = byId('test-append');
fcb5e646e4d775539e348fa21ba13307f2695bf5Mark Andrews Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
fcb5e646e4d775539e348fa21ba13307f2695bf5Mark Andrews Y.get('body').appendChild(frag);
a22c3cf51567651f74aee5c263c597b8d752c2ccMichał Kępień test_screen: function() {
a22c3cf51567651f74aee5c263c597b8d752c2ccMichał Kępień var id = 'test-prop';
b301c4293c082fcce4ec26218e6fad346976eb9eMark Andrews var element = byId(id);
b301c4293c082fcce4ec26218e6fad346976eb9eMark Andrews var node = Y.Node.get(element);
5c4e0c7800b5c7783e7f8b9ce80a6f8dc47f8856Mark Andrews var newNode = Y.Node.create('<div id="brand-new-foo">foo</div>');
5c4e0c7800b5c7783e7f8b9ce80a6f8dc47f8856Mark Andrews Assert.areEqual(document.documentElement.scrollLeft, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
6e1f755f19ef244422e1efa4551fe23775e1a38cMark Andrews Assert.areEqual(document.documentElement.scrollTop, node.get('docScrollY'), 'node.get("docScrollY")');
435a7cd2293dfa9264678508762ab9acb8d41e50Mark Andrews ArrayAssert.itemsAreEqual([100, 100], node.getXY(), 'Node.getXY("foo", "bar")');
b7a823a402eb5c4e99f283e58d778a903d2e72f5Michał Kępień test_region: function() {
b7a823a402eb5c4e99f283e58d778a903d2e72f5Michał Kępień Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
b7a823a402eb5c4e99f283e58d778a903d2e72f5Michał Kępień Assert.isTrue(Y.Node.get('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
c46c8e5c56ec4e81a39632e0036f20a6a3c18b8bMark Andrews Assert.isTrue(Y.Node.get('#get-style').inRegion(Y.Node.get('#doc')), 'node.inRegion(Node)');
031bc55634f443c7c70fbf44c6ac6d8abe72f22bEvan Hunt ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.Node.get('#doc').get('region'), 'node.get("region")');
a64daf673deff2358a91bee26bbf2bf874f47c6eMark Andrews test_classes: function() {
a64daf673deff2358a91bee26bbf2bf874f47c6eMark Andrews var id = 'test-class';
a64daf673deff2358a91bee26bbf2bf874f47c6eMark Andrews var element = byId(id);
0aadc6dd7b719539445e7a0a058b15dd9d982a9bMichał Kępień var parent = Y.Node.get(element.parentNode);
0aadc6dd7b719539445e7a0a058b15dd9d982a9bMichał Kępień var node = Y.Node.get(element);
0aadc6dd7b719539445e7a0a058b15dd9d982a9bMichał Kępień Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
f20ff8b74d21fa3e3f071544f6fd060d015cf27eMichał Kępień Assert.areEqual('foo', element.className, 'node.addClass("foo")');
7ff682f3c628d785048bbe0242e6a32ea26c6747Michał Kępień Assert.areEqual('', element.className, 'node.removeClass("foo")');
7ff682f3c628d785048bbe0242e6a32ea26c6747Michał Kępień Y.Node.get('body').get('childNodes').addClass('foo');
e02fa56849131911e9554133b17a5325b37d0828Michał Kępień Assert.isTrue(byId('test-class').className == 'foo', 'NodeList.addClass');
e02fa56849131911e9554133b17a5325b37d0828Michał Kępień Assert.areEqual('bar', element.className, 'Node.replaceClass("foo", "bar")');
abcea74291c37abf68be4e06997c59e5494f06adMark Andrews var nodes = Y.all('#test-nodes li');
abcea74291c37abf68be4e06997c59e5494f06adMark Andrews nodes.addClass('foo').addClass('bar');
b81b178ab919bdbd92021cfc7e6e8d971cd38e83Mark Andrews test_setStyle: function() {
b81b178ab919bdbd92021cfc7e6e8d971cd38e83Mark Andrews var element = byId('set-style'),
b81b178ab919bdbd92021cfc7e6e8d971cd38e83Mark Andrews node = Y.Node.get(element),
bf216589c1a81e4431653a145b252b6ce367d7cdMark Andrews nodes = node.get('childNodes');
7dbeb5e7f067585abfb12fac314a0d2a8f0dd040Evan Hunt node.setStyle('width', '20em');
7dbeb5e7f067585abfb12fac314a0d2a8f0dd040Evan Hunt Assert.areEqual('20em', element.style.width, "setStyle('width' '20em')");
6e10f87913db176724e89b52e686b0992898da75Mukund Sivaraman node.setStyle('marginTop', '1em');
6e10f87913db176724e89b52e686b0992898da75Mukund Sivaraman Assert.areEqual('1em', element.style.marginTop, "setStyle('marginTop','1em')");
6e10f87913db176724e89b52e686b0992898da75Mukund Sivaraman node.setStyle('opacity', 0.5);
37f6466aa327a5b444e41c8cb57ab5caacfe6279Evan Hunt Assert.areEqual(0.5, node.getStyle('opacity'), "setStyle('opacity', 0.5)");
36babd3e630f507843c423207cbbbd4758d7cffaTinderbox User node.setStyle('float', 'left');
37f6466aa327a5b444e41c8cb57ab5caacfe6279Evan Hunt Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
4162d3b36d1a3c25724c7e37ce839f67b2352bbbMark Andrews node.setStyle('float', 'left');
4162d3b36d1a3c25724c7e37ce839f67b2352bbbMark Andrews Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
ce6f0c122140647b5652c0d4de523c994fcfea08Michał Kępień nodes.setStyle('marginTop', '1em');
ce6f0c122140647b5652c0d4de523c994fcfea08Michał Kępień Assert.areEqual('1em', nodes.getStyle('marginTop')[2], "setStyle('marginTop', '1em'");
f72f5879424ce4081893b306b8c31f29fe9205e0Evan Hunt test_getStyle: function() {
f72f5879424ce4081893b306b8c31f29fe9205e0Evan Hunt var node = Y.Node.get('#get-style');
1073e2001caee13cc1fa52de97feddd633d50fd8Evan Hunt node.setStyle('opacity', 0.5);
1073e2001caee13cc1fa52de97feddd633d50fd8Evan Hunt Assert.areEqual(0.5, node.getStyle('opacity'), "node.getStyle('opacity')");
1073e2001caee13cc1fa52de97feddd633d50fd8Evan Hunt Assert.areEqual('left', node.getStyle('float'), "node.getStyle('float')");
1073e2001caee13cc1fa52de97feddd633d50fd8Evan Hunt Assert.areEqual('100px', node.getStyle('height'), "getStyle('height')");
78608b0a454246d0e1e0169f1d671b8427e48199Francis Dupont Assert.areEqual('200px', node.getStyle('width'), "getStyle('width)'");
11c4e6d8fcc9bc148543c1ee632315e096d2bcf2Michał Kępień Assert.areEqual('visible', node.getStyle('visibility'), "visibility");
11c4e6d8fcc9bc148543c1ee632315e096d2bcf2Michał Kępień node.setStyle('visibility', 'hidden');
11c4e6d8fcc9bc148543c1ee632315e096d2bcf2Michał Kępień Assert.areEqual('hidden', node.getStyle('visibility'), "visibility");
59122481b2aa65de4518677c6949f03711d2553aEvan Hunt node.setStyle('visibility', 'visible');
59122481b2aa65de4518677c6949f03711d2553aEvan Hunt test_getComputedStyle: function() {
fe6d2fd8338d6f6ac4c79bea9a8daad903460040Evan Hunt var node = Y.get('#test-computed');
fe6d2fd8338d6f6ac4c79bea9a8daad903460040Evan Hunt var domNode = byId('test-computed');
05a456499af940762d6658366abafb220c5053ccMark Andrews domNode.style.border = 'medium solid #000';
05a456499af940762d6658366abafb220c5053ccMark Andrews var bw = (Y.UA.ie) ? 4 : 3;
cb4e0ef4e2c8a942f99af6ecc6aa564c903b00a0Mark Andrews var h = node.get('offsetHeight') - 20 - 2 * bw;
cb4e0ef4e2c8a942f99af6ecc6aa564c903b00a0Mark Andrews Assert.areEqual(bw + 'px', node.getComputedStyle('borderTopWidth'), "borderTopWidth: medium");
cb4e0ef4e2c8a942f99af6ecc6aa564c903b00a0Mark Andrews Assert.areEqual(h, Math.round(parseFloat(node.getComputedStyle('height'))), "height: auto (offset minus padding and border)");
e3efc855f9f0acc9b14bb8e9c833e0fa209068b6Mark Andrews Assert.areEqual('13px', node.getComputedStyle('paddingTop'), "padding 10em");
e3efc855f9f0acc9b14bb8e9c833e0fa209068b6Mark Andrews Assert.areEqual('visible', node.getComputedStyle('visibility'), "visibility");
e3efc855f9f0acc9b14bb8e9c833e0fa209068b6Mark Andrews domNode.parentNode.style.visibility = 'hidden';
e56c0854589d936f911e0aac2f2bf53cbc8a6af7Michał Kępień Assert.areEqual('hidden', node.getComputedStyle('visibility'), "visibility");
e56c0854589d936f911e0aac2f2bf53cbc8a6af7Michał Kępień domNode.parentNode.style.visibility = 'visible';
e56c0854589d936f911e0aac2f2bf53cbc8a6af7Michał Kępień Assert.areEqual(2, node.getComputedStyle('zIndex'), 'node.getComputedStyle("zIndex")');
6727802528c27484e0d36d70f0b936022d3226e3Michał Kępień Assert.areEqual('500px', node.getComputedStyle('width'), "percent width (from CSS)");
6727802528c27484e0d36d70f0b936022d3226e3Michał Kępień Assert.areEqual('0px', node.getComputedStyle('marginTop'), "margin auto");
4d41be5f9e86c11a6f00e2b005cfc5abae2c1ab3Mark Andrews test_setStyles: function() {
bfde61d5194a534d800f3b90008d1f52261922c5Mark Andrews var node = byId('set-style');
bfde61d5194a534d800f3b90008d1f52261922c5Mark Andrews var element = Y.Node.get(node);
42ae02626d05921ca7508ae6f9c48ea699596bc6Mark Andrews 'top': '5px',
6b56350522d18f10edbf2d3778cd0fea74e4f3d2Mark Andrews 'right': '10em'
42ae02626d05921ca7508ae6f9c48ea699596bc6Mark Andrews Assert.isTrue( (node.style.top == '5px' && node.style.right == '10em'), "setStyles()");
16f43564c6875e2bedd346c18c494933ad51e4faMukund Sivaraman test_selector: function() {
16f43564c6875e2bedd346c18c494933ad51e4faMukund Sivaraman var id = 'test-prop',
16f43564c6875e2bedd346c18c494933ad51e4faMukund Sivaraman element = byId(id),
16f43564c6875e2bedd346c18c494933ad51e4faMukund Sivaraman node = Y.get('#' + id),
72b322cde0e51c4c87df0c9e3226deac95dfb4ceMark Andrews nodes = Y.all('#test-nodes *');
28ea558bc80f75e46d77ea0533232bb9d4e644f7Mark Andrews // Selector methods
8ed6c49f1a7f06d3ed39bee7731ff91d8dfd8dc7Mark Andrews Assert.isNull(Y.Node.get(document.body).query("#fake-id"), 'body.query("#fake-id")');
8ed6c49f1a7f06d3ed39bee7731ff91d8dfd8dc7Mark Andrews Assert.isTrue(Y.Node.get(node).test('#' + id), 'node.test( "#id")');
447dfe4f115b17274eabf1087f035634e1129bb9Mark Andrews Assert.isNull(parent.query("#fake-id"), 'parent.query("#fake-id")');
565535d1820c63c64ec3c89e1f4815c326aed7aeEvan Hunt Assert.areEqual(id, parent.query('#' + id).get('id'), 'parent.query("#id")');
6045abbc9a0d7d449a13b6fbfbf32d419b6bee96Mark Andrews Assert.areEqual(id, parent.query('#' + id).get('id'), 'parent.query("#id")');
6045abbc9a0d7d449a13b6fbfbf32d419b6bee96Mark Andrews Assert.isNull(parent.query('#text-xy'), 'parent.query("test-xy")');
f7d148398ca4511551c737e655b15f7d0d59a783Mark Andrews Assert.areEqual(id, parent.queryAll('#' + id).item(0).get('id'), 'parent.queryAll(node, "#id")');
f7d148398ca4511551c737e655b15f7d0d59a783Mark Andrews Assert.areEqual(id, parent.queryAll('#' + id).item(0).get('id'), 'parent.queryAll(node, "#id")');
3a84275b10ab16965e86f6ca97e70c1bdca885a0Mark Andrews test_window: function() {
3a84275b10ab16965e86f6ca97e70c1bdca885a0Mark Andrews var win = Y.get(window);
398834f7559617bdfd6c10ba555609a2f306e3d4Mark Andrews Assert.areEqual(window, Y.Node.getDOMNode(win), 'Y.get(window)');
398834f7559617bdfd6c10ba555609a2f306e3d4Mark Andrews Assert.areEqual(document, Y.Node.getDOMNode(win.get('document')), 'win.get(document)');
398834f7559617bdfd6c10ba555609a2f306e3d4Mark Andrews //Assert.areEqual(window, Y.Node.getDOMNode(Y.get('document').get('defaultView')), 'win.get(document)');
28061f80b698171892e81c0856bc722190947998Evan Hunt test_windowSize: function() {
28061f80b698171892e81c0856bc722190947998Evan Hunt Assert.isNotNull(Y.get('body').get('winHeight'), 'body.get("winHeight")');
a03f4b1ea4f1a4a70963fbeb606841c217f9e5f3Evan Hunt test_scroll: function() {
a03f4b1ea4f1a4a70963fbeb606841c217f9e5f3Evan Hunt Y.get('#test-scroll').set('scrollTop', 100);
a03f4b1ea4f1a4a70963fbeb606841c217f9e5f3Evan Hunt Y.get('#test-scroll').set('scrollLeft', 200);
a03f4b1ea4f1a4a70963fbeb606841c217f9e5f3Evan Hunt Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
d315545e6db6792692fe2dcb788ac6717a33b75fEvan Hunt Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
d315545e6db6792692fe2dcb788ac6717a33b75fEvan Hunt Y.get(window).set('scrollTop', 100);
00f131293520b70728cd48840e09953fa45a745bMark Andrews Y.get(window).set('scrollLeft', 200);
00f131293520b70728cd48840e09953fa45a745bMark Andrews Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
00f131293520b70728cd48840e09953fa45a745bMark Andrews Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
b2e71853060a384070d422afda6d1c692ff608e3Mark Andrews Y.get(document).set('scrollTop', 200);
b2e71853060a384070d422afda6d1c692ff608e3Mark Andrews Y.get(document).set('scrollLeft', 100);
b2e71853060a384070d422afda6d1c692ff608e3Mark Andrews Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
42c1acfa478aacfbda2d298cf74a137de2df4b87Michał Kępień Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
dd5375de0a7a515ee4fb2fd217e9577259d38c07Mark Andrews test_inject: function() {
3a58e1fefb0a9fd5dab11f271a320c6b90473f76Mukund Sivaraman Y.get('#test-insert-html').append(html);
3a58e1fefb0a9fd5dab11f271a320c6b90473f76Mukund Sivaraman Assert.areEqual(Y.DOM.byId('test-insert-html').innerHTML,
7c67b8c2b076971e6a9f8b0db932201366f13d47Mark Andrews 'foo' + html,
7c67b8c2b076971e6a9f8b0db932201366f13d47Mark Andrews "Y.get('#test-insert-html').append('<strong>bar</strong>')");
5aed5dc329a2bf1340e9ff2256c1cf4e3005ea0bMark Andrews Y.get('#test-insert-html').prepend('<em>baz</em>');
5aed5dc329a2bf1340e9ff2256c1cf4e3005ea0bMark Andrews Assert.areEqual('<em>baz</em>foo<strong>bar</strong>',
387f5e872d40426acbc739d2e9b2bb37c123dd56Mark Andrews Y.DOM.byId('test-insert-html').innerHTML,
8664a1bd40814ed0b42eacfc5eb354b598dfd6dfTinderbox User "Y.get('#test-insert-html').prepend('<em>baz</em>')");
387f5e872d40426acbc739d2e9b2bb37c123dd56Mark Andrews Y.get('#test-insert-html').setContent(html);
3440cf9c60cd5d35634e7f274fd3eccbba2173a5Evan Hunt Y.DOM.byId('test-insert-html').innerHTML,
3440cf9c60cd5d35634e7f274fd3eccbba2173a5Evan Hunt "Y.get('#test-insert-html').setContent('<strong>baz</strong>')");
541ce84ff2f0c54340da8b3e04c5686ed82420e1Mark Andrews // append Node instance
032d2134a4c1808696688db9bf6f20253e5d05b5Mark Andrews Y.get('#test-insert-html').append(html);
032d2134a4c1808696688db9bf6f20253e5d05b5Mark Andrews Assert.areEqual(Y.get('#test-insert-html')._node.lastChild, html._node, 'node.append(someNode)');
fb9ef31fed818384ef8997f2dc5f27252c6f767eEvan Hunt // append DOM node
fb9ef31fed818384ef8997f2dc5f27252c6f767eEvan Hunt Y.get('#test-insert-html').append(html);
823ccd1f02802966395d58c916e9f988320fd6eeEvan Hunt Assert.areEqual(Y.get('#test-insert-html')._node.lastChild, html, 'node.append(someDOMNode)');
823ccd1f02802966395d58c916e9f988320fd6eeEvan Hunt // prepend Node instance
b6fa637fc8c92f42a21e6f97259598968717af3dEvan Hunt Y.get('#test-insert-html').prepend(html);
b6fa637fc8c92f42a21e6f97259598968717af3dEvan Hunt Assert.areEqual(Y.get('#test-insert-html')._node.firstChild, html._node, 'node.prepend(someNode)');
ace5680c122ef239e64eec1120f13f5a7f087d79Mark Andrews // prepend DOM node
ace5680c122ef239e64eec1120f13f5a7f087d79Mark Andrews Y.get('#test-insert-html').prepend(html);
59d940391ce90963cd3f4b22201b3fca2ffda22aMark Andrews Assert.areEqual(Y.get('#test-insert-html')._node.firstChild, html, 'node.prepend(someDOMNode)');
59d940391ce90963cd3f4b22201b3fca2ffda22aMark Andrews // insert Node instance
6b432e11497f905a6b6f048df3e8a01ce8abbb1eMark Andrews Y.get('#test-insert-html').insert(html, 2);
6b432e11497f905a6b6f048df3e8a01ce8abbb1eMark Andrews Assert.areEqual(Y.get('#test-insert-html')._node.childNodes[2], html._node, 'node.insert(someNode)');
cb9345c996de9d9c990009f14fc83fbbe9c5e3e6Mark Andrews // insert DOM node
c935952ede45595a821cfed7f73b57f3b239ca2bMark Andrews Y.get('#test-insert-html').insert(html, 2);
c935952ede45595a821cfed7f73b57f3b239ca2bMark Andrews Assert.areEqual(Y.get('#test-insert-html')._node.childNodes[2], html, 'node.insert(someDOMNode, 2)');
9604a49da0130534f2f4aaa0cbfa78b5f589196fMark Andrews test_getValue: function() {
da5b569ddb9b8bf84242f3085d18e215ec490fdaMark Andrews Assert.isTrue(Y.get('input[name=test-text-value]').hasAttribute('value'),
da5b569ddb9b8bf84242f3085d18e215ec490fdaMark Andrews 'input[name=test-text-value].hasAttribute("value")');
da5b569ddb9b8bf84242f3085d18e215ec490fdaMark Andrews Assert.isFalse(Y.get('input[name=test-text-novalue]').hasAttribute('value'),
c83a3061551c86bd661839be935de061f7322f5cEvan Hunt 'input[name=test-text-novalue].hasAttribute("value")');
c83a3061551c86bd661839be935de061f7322f5cEvan Hunt Y.get('input[name=test-text-value]').get('value'),
ac9072210cea5283e554f1787876b647a08fda96Mark Andrews "Y.get('input[name=test-text-value]').get('value')");
ac9072210cea5283e554f1787876b647a08fda96Mark Andrews Assert.areEqual('', // TODO: normalize to null?
ac9072210cea5283e554f1787876b647a08fda96Mark Andrews Y.get('input[name=test-text-novalue]').get('value'),
512765ba1e3f0b29e2c1ae4b0138838c6422f2bdEvan Hunt "Y.get('input[name=test-text-novalue]').get('value')");
27a262bc4d38c7a8230677ac2685ec7a4f509f70Mark Andrews // textarea doesn't use value attribute
27a262bc4d38c7a8230677ac2685ec7a4f509f70Mark Andrews //Assert.isTrue(Y.get('textarea[name=test-textarea-value]').hasAttribute('value'),
27a262bc4d38c7a8230677ac2685ec7a4f509f70Mark Andrews // 'textarea[name=test-textarea-value].hasAttribute("value")');
3b38e4b8344cb3bb28f2b116d2e39f8371ef8e34Mukund Sivaraman Assert.isFalse(Y.get('textarea[name=test-textarea-novalue]').hasAttribute('value'),
3b38e4b8344cb3bb28f2b116d2e39f8371ef8e34Mukund Sivaraman 'textarea[name=test-textarea-value].hasAttribute("value")');
3b38e4b8344cb3bb28f2b116d2e39f8371ef8e34Mukund Sivaraman Assert.areEqual('textarea text',
3b38e4b8344cb3bb28f2b116d2e39f8371ef8e34Mukund Sivaraman Y.get('textarea[name=test-textarea-textvalue]').get('value'),
3b38e4b8344cb3bb28f2b116d2e39f8371ef8e34Mukund Sivaraman 'textarea[name=test-textarea-textvalue].get("value")');
0d24df5c0b2f9546f403113df8ac4457223bc92fEvan Hunt Y.get('textarea[name=test-textarea-novalue]').get('value'),
7c1c9b4dcd9efa507cdb58d3d83e99ab4836096dMark Andrews 'textarea[name=test-textarea-novalue].get("value")');
9689922a0d936b04feb418fbaf4c1420f745ea58Mark Andrews Y.get('textarea[name=test-textarea-value]').get('value'),
9689922a0d936b04feb418fbaf4c1420f745ea58Mark Andrews 'textarea[name=test-textarea-value].get("value")');
02989eceeff85cd6c5dd31848a12674f74bba7cfEvan Hunt Assert.isTrue(Y.get('button[name=test-button-value]').hasAttribute('value'),
02989eceeff85cd6c5dd31848a12674f74bba7cfEvan Hunt 'textarea[name=test-button-value].hasAttribute("value")');
34f649fa22a16acb488ccf0f8a41d541c6ba7da1Evan Hunt Assert.isFalse(Y.get('button[name=test-button-novalue]').hasAttribute('value'),
34f649fa22a16acb488ccf0f8a41d541c6ba7da1Evan Hunt 'textarea[name=test-button-value].hasAttribute("value")');
8b9c4592ed718c4187971f1104381faf538bf4f7Evan Hunt Assert.areEqual('button value',
8b9c4592ed718c4187971f1104381faf538bf4f7Evan Hunt Y.get('button[name=test-button-value]').get('value'),
8b9c4592ed718c4187971f1104381faf538bf4f7Evan Hunt 'button[name=test-button-value].get("value")');
264e17e73941059877ccf3c96f26aac15a25500bMukund Sivaraman Y.get('button[name=test-button-novalue]').get('value'),
264e17e73941059877ccf3c96f26aac15a25500bMukund Sivaraman 'button[name=test-button-novalue].get("value")');
9a8b2b3ab35fbbdf03acba32dade90ad91f75742Mukund Sivaraman Y.get('button[name=test-button-textvalue]').get('value'),
9a8b2b3ab35fbbdf03acba32dade90ad91f75742Mukund Sivaraman 'button[name=test-button-textvalue].get("value")');
eeb16584fbd3564136cb4c950fc5e1b54690de68Mukund Sivaraman test_remove: function() {
eeb16584fbd3564136cb4c950fc5e1b54690de68Mukund Sivaraman var node = Y.get('#test-remove'),
eeb16584fbd3564136cb4c950fc5e1b54690de68Mukund Sivaraman domNode = Y.DOM.byId('test-remove'),
9540b42695c15fdd5f01b4c663e21936e6c38c82Mukund Sivaraman Assert.isTrue(parent !== domNode.parentNode, 'node.remove()');
fec9247b8f1ab52e999643ae03f0550387ec359fMukund Sivaraman test_replace: function() {
fec9247b8f1ab52e999643ae03f0550387ec359fMukund Sivaraman var node = Y.get('#test-replace').get('firstChild'),
0d7548ee341c83c540624a423e2c701b6e9ddc4eEvan Hunt Assert.areEqual(newNode, Y.get('#test-replace').get('firstChild')._node, 'node.replace()');
527163f0e5e8639bcceb7fe52387285042f5b24cEvan Hunt test_elements: function() {
527163f0e5e8639bcceb7fe52387285042f5b24cEvan Hunt var elements = Y.get('#test-form').get('elements');
62a6147e51fd1ccb9ec1c1b6c97b6e9b9ef1f002Evan Hunt ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.get('#test-form').get('elements')");
4c432aae90bc9b220725ca7df5a6af40cf4c74b3Mark Andrews test_toFrag: function() {
4c432aae90bc9b220725ca7df5a6af40cf4c74b3Mark Andrews var frag = Y.all('#test-frag p').toFrag();
3195754154292f0651c195433607696a259a98e2Evan Hunt Assert.areEqual(11, frag.get('nodeType'), "Y.all('#test-frag p').toFrag();");
911576956388270fe2401fbf9236d8879d2795e9Evan Hunt test_aria: function() {
911576956388270fe2401fbf9236d8879d2795e9Evan Hunt Y.get('body').set('role', 'menu');
911576956388270fe2401fbf9236d8879d2795e9Evan Hunt Assert.isTrue(document.body.getAttribute('role') === 'menu', "Y.get('body').set('role', 'menu')")
fd0d60b3a0139c040fedb0bb765fd9667831412eMark Andrews Y.get('body').set('aria-checked', true);
fd0d60b3a0139c040fedb0bb765fd9667831412eMark Andrews Assert.areEqual('true', document.body.getAttribute('aria-checked', 2), "Y.get('body').set('aria-checked', true)")
3001a1b4e6298466882a4147307b4c28a3b08f91Mark Andrews Assert.areEqual('true', Y.get('body').getAttribute('aria-checked'), "Y.get('body').set('aria-checked', true)")
3001a1b4e6298466882a4147307b4c28a3b08f91Mark Andrews Assert.areEqual('true', Y.get('#foo').get('aria-checked'), "Y.get('#foo').get('aria-checked')");
1bce43adcc11d21afaf645cbe466553aabc725b2Mark Andrews Y.get('body').set('aria-checked', false);
1bce43adcc11d21afaf645cbe466553aabc725b2Mark Andrews Assert.areEqual('false', Y.get('body').get('aria-checked'), "Y.get('body').set('aria-checked', false)");
da4823c08a9a41e7b5ff1f3a83c80007f60fd21cMark Andrews test_plugin: function() {
52cae869e0296713b764f6065bdad80832d4c493Mark Andrews console.log('node.plug: ' + Y.get('body').plug);
52cae869e0296713b764f6065bdad80832d4c493Mark Andrews console.log('Node.prototype.plug: ' + Y.Node.prototype.plug);
403e7b451207fe6514a5d641562713b1af233b9cEvan Hunt Assert.isTrue(!!Y.Node.create('<div></div>').fx, 'Node.plug()');
62b5dd5b09cb575281f8193476b58a4bd9870fc9Evan Hunt Assert.isFalse(!!Y.Node.create('<div></div>').fx, 'Node.unplug()');
8c31a25f3ff5d6783c7add7c887e52f7031d173dMark Andrews Y.all('input').each(function(n) {
8c31a25f3ff5d6783c7add7c887e52f7031d173dMark Andrews Assert.isObject(n.fx, "Y.all('input').plug(Y.Plugin.NodeFX)");
8bcd80824c51c802c2927236b012cd526f569b04Mark Andrews Y.all('input').each(function(n) {
7fcbbd6fa9ed199cf6947bb6b204da5438211faaMark Andrews Assert.areEqual(undefined, n.fx, "Y.all('input').unplug(Y.Plugin.NodeFX)");
559cbe04e73cf601784a371e09554c20407a6c7bEvan Hunt name: 'Document Node',
6ef61e764583887172e27c3bc681e36cfa27b469Mark Andrews test_props: function() {
94a94fca2444bb18b4bf74d6c5dbcbb89f139237Mark Andrews var mask = document.createElement('div');
43769594c0e42e9822ef71daee8bbf35252d9300Evan Hunt var doc = Y.Node.get('document');
9ecedaea58defeadaf54dfc1211270653e0657ceMark Andrews Y.DOM.setStyle(mask, 'opacity', 0.4);
fc8c8966c906b305cb8b416a8f23f21abf103b7fEvan Hunt Assert.areEqual(document.documentElement.scrollLeft, doc.get('docScrollX'), 'doc.get("docScrollX")');
fc8c8966c906b305cb8b416a8f23f21abf103b7fEvan Hunt Assert.areEqual(document.documentElement.scrollTop, doc.get('docScrollY'), 'doc.get("docScrollY")');
fc8c8966c906b305cb8b416a8f23f21abf103b7fEvan Hunt Assert.areEqual('DIV', Y.Node.get('#test-prop').get('nodeName'), 'query("test-prop")');
07b7a3eadeda94eddd50977c9582dae2f955b638Evan Hunt Assert.areEqual('test-xy', doc.query('#test-xy').get('id'), 'doc.query("#test-xy")');
07b7a3eadeda94eddd50977c9582dae2f955b638Evan Hunt Assert.isNull(doc.query('fake-id'), 'doc.query("#fake-id")');
07b7a3eadeda94eddd50977c9582dae2f955b638Evan Hunt Assert.areEqual(document.documentElement.scrollHeight, mask.offsetHeight, 'get("height")');
85a26f938eac3e147a48f671f6a6b5ee9cd1767dEvan Hunt Assert.areEqual(document.documentElement.scrollWidth, mask.offsetWidth, 'get("width")');
8e9dbb62224ce4d7342b0e7db96cf31e415aaaf0Evan Hunt name: 'Instance Y.NodeExtras',
8e9dbb62224ce4d7342b0e7db96cf31e415aaaf0Evan Hunt test_methods: function() {
8e9dbb62224ce4d7342b0e7db96cf31e415aaaf0Evan Hunt var node = byId('test-extras');
b5ad0916242ca4ce3f053efe78c1725dce996717Mark Andrews var element = Y.Node.get('#test-extras');
18ab9a0a34ea025a6bbb09b711b00cfa11eec1b5Evan Hunt // allow window scroll event to happen post-onload
18ab9a0a34ea025a6bbb09b711b00cfa11eec1b5Evan Hunt Y.on('load', function() {
832f5803f69f4548ba3777f8b5741768bbbf5f75Mark Andrews setTimeout(function() {