node.html revision fc35a36d3fbb531bc50f9adc4e47fab9b2c4e10b
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
990d0e893f5b70e735cdf990af66e9ec6e91fa78Tinderbox User<html>
6a42ab64276ff832a47e009be1208f7c7d4da22dAutomatic Updater<head>
6a42ab64276ff832a47e009be1208f7c7d4da22dAutomatic Updater<title>Node Test Suite</title>
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<script type="text/javascript" src="/build/yui/yui.js"></script>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
6a42ab64276ff832a47e009be1208f7c7d4da22dAutomatic Updater<style type="text/css">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updaterbody {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater font:13px/1.22 arial;
6a42ab64276ff832a47e009be1208f7c7d4da22dAutomatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#doc {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater min-height:200px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width:1000px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater border:10px solid red;
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User padding:1em;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#get-style {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater background:#ccc;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater float:left;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater font-size:10px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater height:10em;
b6b8f8a0362da8c749021c4b6376cfb96047912bTinderbox User padding:15px 0;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width:200px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater.mask {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater background:#ccc;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater position:absolute;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater top:0;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater left:0;
b6b8f8a0362da8c749021c4b6376cfb96047912bTinderbox User overflow:hidden;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#test-xy {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater background:green;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater position:absolute;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater height:10px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width:10px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#test-computed {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater border: medium solid #000;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater position:relative;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width:50%;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater margin:auto;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater padding:10px;
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User z-index: 2;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater zoom:1;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#test-scroll {
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater height: 100px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width: 100px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater overflow:auto;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater#test-scroll p {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater height:1000px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater width:1000px;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updaterbutton {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater display:block;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater background: #070;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater color: #fff;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater background: #700;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater color: #fff;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater}
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater</style>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater</head>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<body class="yui3-skin-sam">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-append"></div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-xy"></div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-remove"></div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-replace"><p>replace me</p></div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-scroll">
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater <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>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater </div>
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater <div id="test-frag">
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater <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>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <p>Lorem ipsum dolor <em>sit</em>.</p>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater </div>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <div id="doc" class="doc-wrap">
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <form id="test-form" class="test-class" action="#">
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <label for="test-text-value"><em>label</em></label>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <input name="test-text-value" id="test-text-value" value="text value">
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <input name="test-text-novalue">
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <textarea name="test-textarea-value" value="textarea value"></textarea>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <textarea name="test-textarea-novalue"></textarea>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <textarea name="test-textarea-textvalue">textarea text</textarea>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <button name="test-button-value" value="button value">button</button>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <button name="test-button-novalue"></button>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <button name="test-button-textvalue">button text</button>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater </form><div id="test-class">test class</div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <div id="get-style">getStyle</div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <div id="baz">baz</div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater text
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <div id="test-extras">extras</div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <div id="test-empty-children"></div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater </div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <div id="inline-style" style="color: green">inline style</div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <div id="foo" aria-checked="true"></div>
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater <div id="test-computed">test computed style</div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <form id="form.foo@bar:baz">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <select id="test-select" name="test-select">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <option value="0">foo</option>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <option value="1">bar</option>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <option>baz</option>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater </select>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater </form>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <div id="test-nodes">
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <ul>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 1</li>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <li>item 2</li>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <li>item 3</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 4</li>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User </ul>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User <ol>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User <li class="bar">item 1</li>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User <li>item 2</li>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User <li>item 3</li>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User <li class="bar">item 4</li>
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User </ol>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater </div>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <table id="test-table">
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <tr><td id="test-td"><div><div>grandchild of td</div></div></td></tr>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater </table>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <ol>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 1</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 2</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 3</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 4</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater </ol>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater<iframe src="test-frame.html"></iframe>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater<div id="test-insert-html">foo</div>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater<div id="test:colon">
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <h2>test</h2>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater</div>
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater<ol id="test-swap">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater <li>item 1</li>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater <li>item 2</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 3</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <li>item 4</li>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater</ol>
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater
90c38ab4e6904126bec2f2f57f60cd834ce759cbAutomatic Updater<div id="_funky:id{$400}">
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater <h2>test</h2>
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater</div>
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater<div id="yui-log"></div>
ed4475f3f583f6137b4ff7fea775c5363a4fdb29Automatic Updater<script type="text/javascript">
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterYUI({base: '/build/', filter: 'raw'}).use('selector-css3', 'anim', 'console', 'test', 'node-event-simulate', 'node-load', function(Y) {
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater var Assert = Y.Assert,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert = Y.ArrayAssert,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater suite = new Y.Test.Suite("yuisuite");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater new Y.Console({node: '#yui-log', height: '1000px' }).render('#yui-log');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var byId = function(id) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater return document.getElementById(id);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater };
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater var $ = Y.Selector.query;
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater suite.add( new Y.Test.Case({
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater name: 'Y.Node Instance',
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_get: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var node = Y.one('#test-nodes'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes = Y.all('#test-nodes *');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // return null
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one("a[href$='?t=5']");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isNull(Y.one(''), 'Y.one("")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isNull(Y.one(null), 'Y.one(null)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isNull(Y.one('#fake-id'), 'Y.one("#fake-id") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // return zero length collection
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // return 1
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes').id, Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.areEqual(byId('form.foo@bar:baz'), Y.Node.getDOMNode(Y.one('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User var firstChild = Y.one('body :first-child');
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Y.one('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.isFalse(firstChild._node === Y.one('body :first-child')._node, "wrong node: Y.one('body :first-child')");
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Y.one('body').removeChild(Y.one('body :first-child'));
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.one('body :first-child')._node, "body :first-child === #test-append");
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User // return more than 1
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.one("#test-select option")');
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.one("#test-select option").size()');
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User Assert.areEqual(2, Y.all('form').size(), 'Y.one("form").size()');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.one("form").item(1)');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areEqual(3, Y.all('.bar').size(), 'Y.one(".bar")');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var frameDoc = Y.one('iframe').get('contentWindow.document');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.one('#demo li').get('innerHTML')),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "frameDoc.one('#demo li').get('innerHTML')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areSame(Y.one('doc'), Y.one('doc'), "Y.one('doc') === Y.one('doc')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-text-value'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('doc').one('.test-class #test-text-value')._node,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.one('doc').one('.test-class #test-text-value')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_each: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var count = 0,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes = Y.all('#test-nodes *'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater index;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.each(function(node, i, list) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater count++;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater index = i;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(nodes, list, 'nodes === instance');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(node, this, 'this === node');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater });
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_some: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var nodes = Y.all('#test-nodes *'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater index, instance, isNode;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(nodes.some(function(node, i, list) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater return true;
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater }), 'nodes.some(function() { return true; })');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(nodes.some(function(node, i, list) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater }), 'nodes.some(function() {})');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_indexOf: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0, Y.all('body').indexOf(Y.one('body')),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.all('body').indexOf(Y.one('body'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0, Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0])),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0]))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-')),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.all('div').indexOf(Y.one('#test-'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-form')),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.all('div').indexOf(Y.one('#test-form'))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_getters: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var id = 'test-nodes',
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater element = byId(id),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.one('#' + id),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes = Y.all('#' + id + ' *');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(null, node.get(''), 'node.get("") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater var textContainer = Y.Node.create('<div>foo</div>');
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater textContainer.set('text', 'bar');
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater ArrayAssert.itemsAreEqual($('#test-select option'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.NodeList.getDOMNodes(Y.one('#test-select').get('options')),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater 'Y.one("#test-select.get("options")');
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(2, node.get('children').size(), 'get("children")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User // size() is deprecated on Node
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User //Assert.areEqual(1, Y.one('#' + id + ' li').size(), 'Y.one("#test-nodes li.size()")');
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User
f39512a917cdd06c611d366603374f6ef570c80eTinderbox User Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual('test', Y.one('#test-prop').get('firstChild.nextSibling.firstChild.nodeValue'),
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater 'node.get("firstChild.nextSibling.firstChild.nodeValue")');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(byId('test-prop').tabIndex, Y.one('#test-prop').get('tabIndex'), 'Y.one("#test-prop").get("tabIndex")');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(byId('doc').tabIndex, Y.one('#doc').get('tabIndex'), 'Y.one("#doc".get("tabIndex"))');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(byId('link-1').tabIndex, Y.one('#link-1').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(byId('link-2').tabIndex, Y.one('#link-2').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual(undefined, Y.one('form').get('childNodes')._nodes.item, 'convert live list to static');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.isTrue(Y.all('input').get('parentNode') instanceof Y.NodeList, "Y.all('input').get('parentNode')");
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater },
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater test_create: function() {
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater var id = 'test-nodes',
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater element = byId(id),
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater node = Y.one('#' + id);
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater
7c6b9b263898daf28d657f65dbd75c330ca4aa13Automatic Updater node = Y.Node.create('<select><option>foo</option></select>');
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User var option = Y.Node.create('<option>bar</option>').set('selected', 'selected');
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User node.appendChild(option);
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User var html = '<li><a href=""></a></li>';
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User node = Y.Node.create(html);
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User Assert.areEqual('A', node.get('firstChild.tagName'), html);
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User html = 'baz';
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User node = Y.Node.create(html);
b68a2d272b958eb2c40cce59ee33e71c5f5f521bTinderbox User Assert.areEqual('3', node.get('nodeType'), "node.get('nodeType')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('3', Y.Node.getDOMNode(node).nodeType, "Y.Node.getDOMNode(node).nodeType");
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater html = '<div>bar</div>';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.Node.create(html);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('3', node.get('firstChild.nodeType'), "node.get('firstChild.nodeType')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.insertBefore(Y.Node.create('foo'), node.get('firstChild'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foobar', node.get('innerHTML'), "node.get('innerHTML')");
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater Assert.areEqual('foobar', node.get('text'), "node.get('text')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // test setContent with NodeList
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater html = '<div>foo</div>';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setContent(Y.all(Y.Node.create(html)));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(html, node.get('innerHTML').toLowerCase(), "node.setContent(Y.all(Y.Node.create(html)))");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater test_setter: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var id = 'test-prop',
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater element = byId(id),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.one('#' + id),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes = Y.all('#test-nodes *');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var childNodes = Y.one('body').get('childNodes');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater childNodes.set('title', 'foo bar');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.one("body").get("childNodes").set("title")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.set('foo', 'foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isUndefined(node.get('foo'), 'node.get("foo")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.set('title', 'my title');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('my title', Y.Node.getDOMNode(node).title, 'node.title)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('my title', node.get('title'), 'node.set("title")');
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.set('className', 'foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foo', Y.NodeList.getDOMNodes(nodes)[0].className, 'node.className');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foo', nodes.get('className')[2], 'node.get("className")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foo', nodes.item(nodes.size() - 2).get('className'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater 'nodes.item(nodes.size - 2).get("className")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var attrMap = {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater className: 'fooclass',
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater title: 'new title'
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater };
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setAttrs(attrMap);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var getAttrs = node.getAttrs(['className', 'title']);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(attrMap.className, getAttrs.className, 'node.setAttrs(attrMap) (get className)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(attrMap.title, getAttrs.title, 'node.setAttrs(attrMap) (get title)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('#test-select').set('selectedIndex', 2);
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater Assert.areEqual(2, Y.one('#test-select')._node.selectedIndex,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.one('#test-select').set('selectedIndex', 2)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('body > form').set('test-select.selectedIndex', 2);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(2, byId('test-select').selectedIndex,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater 'Y.one("body > form").set("test-select.selectedIndex", 2)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var index = Y.one('#test-select').one('option[value=1]').set('selected', true);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(1, Y.one('#test-select')._node.selectedIndex,
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.one('#test-select').set('selectedIndex', 1)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('#test-select').set('value', 1);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(1, Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('#test-select').set('value', 'baz');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_dom_methods: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var id = 'test-prop';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var element = byId(id);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var parent = Y.one(element.parentNode);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var node = Y.one('#test-prop');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasMethod('appendChild'), "node.hasMethod('appendChild')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var xmlNode = Y.one(document.createElement('xml'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(xmlNode.hasMethod('onreadystatechange')," xmlNode.hasMethod('onreadystatechange')");
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater //Assert.isTrue(element === Y.one(node), 'element === Y.one(node)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var insertNode = document.createElement('div');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.stamp(insertNode);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater insertNode.innerHTML = 'inserted node';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('body').appendChild(Y.one('div'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(Y.one('body').get('lastChild').compareTo(Y.one('#test-append')), 'get("body").appendChild(Y.one("#test-append"))');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.one('body').get('lastChild')), 'get("body").appendChild(Y.one([0]"#test-append"))');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('inserted node', node.appendChild(Y.one(insertNode)).get('innerHTML'), 'appendChild(Node input)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('inserted node', node.removeChild(Y.one(insertNode)).get('innerHTML'), 'removeChild(Node input)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var clone = node.cloneNode();
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node === clone, 'node === node.cloneNode()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater // TODO: test deep clone with bound descendant
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
ce8ac1bc98ba20c1ba02e6a6ff39561140089ae3Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(Y.one('.bar').test('.bar'), "Y.one('.bar').test('.bar')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater clone = Y.one('.bar').cloneNode(true);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(clone.hasClass('bar'), "clone.hasClass('bar') (before appending)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('body').appendChild(clone);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater clone.set('id', 'new-bar');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(clone.test('.bar'), "clone.test('.bar') (after appending)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.Node.create('<div id="foo" class="bar"></div>').test('.bar'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('.bar')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.Node.create('<div id="foo" class="bar"></div>').test('#foo.bar'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('#foo.bar')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasChildNodes(), 'hasChildNodes()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.compareTo(node), 'compareTo(node)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.compareTo(Y.one(node)), 'compareTo(new Y.Node)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.compareTo(null), 'compareTo(null)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.create('<p>foo</p>').inDoc(), 'node.inDoc()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.contains(byId('test-contains')), 'contains()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.contains(node), 'contains() self');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.contains(element), 'contains() self');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('doc', node.ancestor(function(el) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater return el.get('id') === 'doc';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater }).get('id'), 'ancestor');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(node.ancestor(), node.get('parentNode'), "node.ancestor()");
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater Assert.isNull(node.ancestor(function(el) {
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater return el.getAttribute('foo') !== '';
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater }), 'ancestor');
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater
731cc132f22dbc9e0ecd7035dce314a61076d31bAutomatic Updater Assert.areEqual(node.get('parentNode'), node.ancestor('div'));
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areEqual(node, node.ancestor('div', true));
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areEqual('test-class', node.previous().get('id'), 'node.previous()');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(Y.one(document.body).inDoc(document));
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(node.inDoc(), 'node.inDoc()');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(node.inDoc(document), 'node.inDoc(document)');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(node.inDoc(Y.one(document)), 'node.inDoc(Y.one(document))');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(node.hasAttribute('id'), 'node.hasAttribute("id")');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isTrue(node.hasAttribute('title'), 'node.hasAttribute("title")');
b46346eb3026ba4bebc093bc93cfe159131e541eTinderbox User Assert.isFalse(node.hasAttribute('foo'), 'node.hasAttribute("foo")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.removeAttribute('tabIndex');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex") (false)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater /*
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(node.getAttribute('tabIndex'), node.get('tabIndex'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater "node.getAttribute('tabIndex') === node.get('tabIndex')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater */
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User Assert.isFalse(Y.one('body').hasAttribute('title'), 'body.hasAttribute("title")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('0', Y.one('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('1', Y.one('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('', Y.one('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('http://www.yahoo.com/foo', Y.one('#link-1').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foo.html', Y.one('#link-2').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_fragment: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var frag = Y.one('document').invoke('createDocumentFragment'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater element = byId('test-append');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater frag.appendChild(element);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('body').appendChild(frag);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_screen: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var id = 'test-prop';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var element = byId(id);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var parent = Y.one(element.parentNode);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var node = Y.one(element);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var newNode = Y.Node.create('<div id="brand-new-foo">foo</div>');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0, node.get('docScrollY'), 'node.get("docScrollY")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.one('#test-xy');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setXY([100, 100]);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var xy = node.getXY();
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var x = Math.round(xy[0]);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var y = Math.round(xy[1]);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert.itemsAreEqual([100, 100], [x, y], 'Node.getXY("foo", "bar")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_region: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(Y.one('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(Y.one('#get-style').inRegion(Y.one('#doc')), 'node.inRegion(Node)');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.one('#doc').get('region'), 'node.get("region")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_classes: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var id = 'test-class';
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var element = byId(id);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var parent = Y.one(element.parentNode);
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater var node = Y.one(element);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.addClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('foo', element.className, 'node.addClass("foo")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.removeClass('foo');
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User Assert.areEqual('', element.className, 'node.removeClass("foo")');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.addClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.one('body').get('childNodes').addClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(byId('test-class').className == 'foo', 'NodeList.addClass');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.replaceClass('foo', 'bar');
90c38ab4e6904126bec2f2f57f60cd834ce759cbAutomatic Updater Assert.areEqual('bar', element.className, 'Node.replaceClass("foo", "bar")');
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater var nodes = Y.all('#test-nodes li');
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater nodes.addClass('foo').addClass('bar');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.each(function(n) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(n.hasClass('foo'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(n.hasClass('bar'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater });
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.removeClass('bar');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.each(function(n) {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(n.hasClass('bar'));
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater });
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.DOM.create('<div></div>');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.DOM.addClass(node, 'foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Y.DOM.replaceClass('foo', 'foo');
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User Assert.isTrue(Y.DOM.hasClass(node, 'foo'));
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater node = Y.Node.create('<div></div>');
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater node.addClass('foo bar baz');
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater Assert.areEqual('foo bar baz', node._node.className);
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater },
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater test_toggle: function() {
d060d8669f5558690e7faf4a1c12fe5c02a7c60dAutomatic Updater var node = Y.one('#test-class');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
852ccdd42a71550c974111b49415204ffeca6573Automatic Updater node.toggleClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.toggleClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo')");
78ec962d9828200d18cd0e41b7d6b9792a74923dTinderbox User
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.toggleClass('foo', false);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo', false)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.toggleClass('foo');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.toggleClass('foo', true);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo', true)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater },
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater test_setStyle: function() {
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater var element = byId('set-style'),
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node = Y.one(element),
b6b8f8a0362da8c749021c4b6376cfb96047912bTinderbox User nodes = node.get('childNodes');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setStyle('width', '20em');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('20em', element.style.width, "setStyle('width' '20em')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setStyle('marginTop', '1em');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('1em', element.style.marginTop, "setStyle('marginTop','1em')");
b6b8f8a0362da8c749021c4b6376cfb96047912bTinderbox User
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setStyle('opacity', 0.5);
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual(0.5, node.getStyle('opacity'), "setStyle('opacity', 0.5)");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setStyle('float', 'left');
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater node.setStyle('float', 'left');
5fa6a064b8301e4f274bd132fd577def59e4fb4cTinderbox User Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater nodes.setStyle('marginTop', '1em');
Assert.areEqual('1em', nodes.getStyle('marginTop')[2], "setStyle('marginTop', '1em'");
},
test_getStyle: function() {
var node = Y.one('#get-style');
node.setStyle('opacity', 0.5);
Assert.areEqual(0.5, node.getStyle('opacity'), "node.getStyle('opacity')");
Assert.areEqual('left', node.getStyle('float'), "node.getStyle('float')");
Assert.areEqual('100px', node.getStyle('height'), "getStyle('height')");
Assert.areEqual('200px', node.getStyle('width'), "getStyle('width)'");
Assert.areEqual('visible', node.getStyle('visibility'), "visibility");
node.setStyle('visibility', 'hidden');
Assert.areEqual('hidden', node.getStyle('visibility'), "visibility");
node.setStyle('visibility', 'visible');
},
test_getComputedStyle: function() {
var node = Y.one('#test-computed'),
domNode = byId('test-computed'),
bw = (Y.UA.ie && Y.UA.ie < 8) ? 4 : 3,
w = node.get('offsetWidth'),
h = node.get('offsetHeight');
if (!Y.UA.ie || document.compatMode !== 'BackCompat') {
w = w - 20 - 2 * bw;
h = h - 20 - 2 * bw;
}
Assert.areEqual(bw + 'px', node.getComputedStyle('borderTopWidth'), "borderTopWidth: medium");
Assert.areEqual(h, Math.ceil(parseFloat(node.getComputedStyle('height'))), "height: auto (offset minus padding and border)");
domNode.style.padding = '1em';
Assert.areEqual('13px', node.getComputedStyle('paddingTop'), "padding 13px");
Assert.areEqual('visible', node.getComputedStyle('visibility'), "visibility");
domNode.parentNode.style.visibility = 'hidden';
Assert.areEqual('hidden', node.getComputedStyle('visibility'), "visibility:hidden");
domNode.parentNode.style.visibility = 'visible';
Assert.areEqual(2, node.getComputedStyle('zIndex'), 'node.getComputedStyle("zIndex")');
domNode.style.margin = 'auto';
Assert.areEqual('0px', node.getComputedStyle('marginTop'), "margin auto");
Assert.areEqual(w, Math.round(parseFloat(node.getComputedStyle('width'))), "percent width (from CSS)");
},
test_setStyles: function() {
var node = byId('set-style');
var element = Y.one(node);
element.setStyles({
'top': '5px',
'right': '10em'
});
Assert.isTrue( (node.style.top == '5px' && node.style.right == '10em'), "setStyles()");
},
test_selector: function() {
var id = 'test-prop',
element = byId(id),
node = Y.one('#' + id),
parent = Y.one(element.parentNode),
nodes = Y.all('#test-nodes *');
// Selector methods
Assert.isNull(Y.one(document.body).one("#fake-id"), 'body.one("#fake-id")');
Assert.isTrue(Y.one(node).test('#' + id), 'node.test( "#id")');
Assert.isNull(parent.one("#fake-id"), 'parent.one("#fake-id")');
Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
Assert.isNull(parent.one('#text-xy'), 'parent.one("test-xy")');
Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
},
test_window: function() {
var win = Y.one(window);
Assert.areEqual(window, Y.Node.getDOMNode(win), 'Y.one(window)');
Assert.areEqual(document, Y.Node.getDOMNode(win.get('document')), 'win.get(document)');
//Assert.areEqual(window, Y.Node.getDOMNode(Y.one('document').get('defaultView')), 'win.get(document)');
},
test_windowSize: function() {
Assert.isNotNull(Y.one('body').get('winHeight'), 'body.get("winHeight")');
},
test_scroll: function() {
Y.one('#test-scroll').set('scrollTop', 100);
Y.one('#test-scroll').set('scrollLeft', 200);
Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
document.body.style.height = '5000px';
document.body.style.width = '5000px';
/*
Y.one(window).set('scrollTop', 100);
Y.one(window).set('scrollLeft', 200);
Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
*/
Y.one(document).set('scrollTop', 200);
Y.one(document).set('scrollLeft', 100);
Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
document.body.style.height = '';
document.body.style.width = '';
window.scrollTo(0, 0);
},
test_setContent: function() {
var content = '<strong>foo</strong>';
Y.one('#test-insert-html').setContent(content);
Assert.areEqual(content,
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(" + content + ")");
Y.one('#test-insert-html').setContent(Y.Node.create(content));
Assert.areEqual(content,
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
content = '<strong>foo</strong><em>bar</em>';
Y.one('#test-insert-html').setContent(Y.Node.create(content));
Assert.areEqual(content,
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
var element = document.createElement('strong');
element.innerHTML = 'bar';
content = '<strong>bar</strong>';
Y.one('#test-insert-html').setContent(element);
Assert.areEqual(content,
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(element)");
content = '';
Y.one('#test-insert-html').setContent(content);
Assert.areEqual(content,
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(" + content + ")");
content = null;
Y.one('#test-insert-html').setContent(content);
Assert.areEqual('',
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(" + content + ")");
content = 0;
Y.one('#test-insert-html').setContent(content);
Assert.areEqual('0',
Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
"Y.one('#test-insert-html').setContent(" + content + ")");
},
test_insert: function() {
var node = Y.one('#test-insert-html'),
html = '<strong>foo</strong>',
content;
node.setContent('foo');
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
content + html,
"node.insert('" + html + "')");
html = '<em>bar</em>';
content = node.get('innerHTML').toLowerCase();
node.insert(html, 0);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
html + content,
"node.insert(" + html + ", 0)");
html = '<span>baz</span>';
node.insert(html, 1);
Assert.areEqual(node.all('> *').item(1).get('tagName'),
'SPAN',
"node.insert(" + html + ", 1)");
html = '';
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
content,
"node.insert(" + html + ")");
html = null;
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
content,
"node.insert(" + html + ")");
// test fragment insertion
var childCount = node.get('childNodes').size();
html = '<q>bar</q><h2>foo</h2>';
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 + ")");
html = '<label>foo</label><input>';
content = node.get('innerHTML').toLowerCase();
node.insert(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
Y.Lang.trim(content + html).toLowerCase(),
"node.insert(" + html + ")");
node.setContent('<em>foo</em><span>bar</span>');
node.insert('<strong>baz</strong>', node.one('span'));
Assert.areEqual(node._node.childNodes[1].tagName, 'STRONG',
"node.insert('<strong>bar</strong>', node.one('span')");
node.insert('<code>var lorem</code>', node.one('em')._node);
Assert.areEqual(node._node.childNodes[0].tagName, 'CODE',
"node.insert('<code>var lorem</code>', node.one('em')._node)");
// insert Node instance
html = Y.Node.create('<div>foo</div>');
node.insert(html, 2);
Assert.areEqual(node._node.childNodes[2], html._node,
"node.insert(Y.Node.create('<div>foo</div>'))");
// insert DOM node
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)');
},
test_inject: function() {
var node = Y.one('#test-insert-html'),
html = '<strong>foo</strong>',
content = node.get('innerHTML').toLowerCase();
node.prepend(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
html + content,
"node.prepend('" + html + "')");
html = '<em>bar</em>';
content = node.get('innerHTML').toLowerCase();
node.append(html);
Assert.areEqual(node._node.innerHTML.toLowerCase(),
content + html,
"node.append('" + html + "')");
},
test_getValue: function() {
// text
Assert.isTrue(Y.one('input[name=test-text-value]').hasAttribute('value'),
'input[name=test-text-value].hasAttribute("value")');
Assert.isFalse(Y.one('input[name=test-text-novalue]').hasAttribute('value'),
'input[name=test-text-novalue].hasAttribute("value")');
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')");
// textarea
// textarea doesn't use value attribute
//Assert.isTrue(Y.one('textarea[name=test-textarea-value]').hasAttribute('value'),
// 'textarea[name=test-textarea-value].hasAttribute("value")');
Assert.isFalse(Y.one('textarea[name=test-textarea-novalue]').hasAttribute('value'),
'textarea[name=test-textarea-value].hasAttribute("value")');
Assert.areEqual('textarea text',
Y.one('textarea[name=test-textarea-textvalue]').get('value'),
'textarea[name=test-textarea-textvalue].get("value")');
Assert.areEqual('',
Y.one('textarea[name=test-textarea-novalue]').get('value'),
'textarea[name=test-textarea-novalue].get("value")');
Assert.areEqual('',
Y.one('textarea[name=test-textarea-value]').get('value'),
'textarea[name=test-textarea-value].get("value")');
// button
Assert.isTrue(Y.one('button[name=test-button-value]').hasAttribute('value'),
'textarea[name=test-button-value].hasAttribute("value")');
Assert.isFalse(Y.one('button[name=test-button-novalue]').hasAttribute('value'),
'textarea[name=test-button-value].hasAttribute("value")');
Assert.areEqual('button value',
Y.one('button[name=test-button-value]').get('value'),
'button[name=test-button-value].get("value")');
Assert.areEqual('',
Y.one('button[name=test-button-novalue]').get('value'),
'button[name=test-button-novalue].get("value")');
Assert.areEqual('',
Y.one('button[name=test-button-textvalue]').get('value'),
'button[name=test-button-textvalue].get("value")');
},
test_remove: function() {
var node = Y.one('#test-remove'),
domNode = Y.DOM.byId('test-remove'),
parent = domNode.parentNode;
node.remove();
Assert.isTrue(parent !== domNode.parentNode, 'node.remove()');
// ensure remove doesnt fail when no parent
node = Y.Node.create('<div/>');
node.remove();
},
test_replace: function() {
var node = Y.one('#test-replace').get('firstChild'),
newNode = document.createElement('div');
node.replace(newNode);
Assert.areEqual(newNode, Y.one('#test-replace').get('firstChild')._node, 'node.replace(domNode)');
node = Y.one('#test-replace').get('firstChild');
newNode = Y.Node.create('<div/>');
node.replace(newNode);
Assert.areEqual(newNode, Y.one('#test-replace').get('firstChild'), 'node.replace()');
Assert.areEqual(newNode._node, Y.one('#test-replace').get('firstChild')._node, 'node.replace()');
},
test_elements: function() {
var elements = Y.one('#test-form').get('elements');
ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.one('#test-form').get('elements')");
},
test_toFrag: function() {
var frag = Y.all('#test-frag p').toFrag();
Assert.areEqual(11, frag.get('nodeType'), "Y.all('#test-frag p').toFrag();");
},
test_aria: function() {
Y.one('body').set('role', 'menu');
Assert.isTrue(document.body.getAttribute('role') === 'menu', "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)")
Assert.areEqual('true', Y.one('#foo').get('aria-checked'), "Y.one('#foo').get('aria-checked')");
Y.one('body').set('aria-checked', false);
Assert.areEqual('false', Y.one('body').get('aria-checked'), "Y.one('body').set('aria-checked', false)");
},
test_plugin: function() {
Y.Node.plug(Y.Plugin.NodeFX);
Assert.isTrue(!!Y.Node.create('<div></div>').fx, 'Node.plug()');
Y.Node.unplug(Y.Plugin.NodeFX);
Assert.isFalse(!!Y.Node.create('<div></div>').fx, 'Node.unplug()');
Y.all('input').plug(Y.Plugin.NodeFX);
Y.all('input').each(function(n) {
Assert.isObject(n.fx, "Y.all('input').plug(Y.Plugin.NodeFX)");
});
Y.all('input').unplug(Y.Plugin.NodeFX);
Y.all('input').each(function(n) {
Assert.areEqual(undefined, n.fx, "Y.all('input').unplug(Y.Plugin.NodeFX)");
});
},
test_props: function() {
var mask = document.createElement('div');
mask.className = 'mask';
document.body.appendChild(mask);
var doc = Y.one('document');
window.scrollTo(0,0);
mask.style.height = doc.get('docHeight') + 'px';
mask.style.width = doc.get('docWidth') + 'px';
Y.DOM.setStyle(mask, 'opacity', 0.4);
Assert.areEqual('DIV', Y.one('#test-prop').get('nodeName'), 'one("test-prop")');
Assert.areEqual('test-xy', doc.one('#test-xy').get('id'), 'doc.one("#test-xy")');
Assert.isNull(doc.one('fake-id'), 'doc.one("#fake-id")');
Assert.areEqual(mask.offsetHeight, doc.get('docHeight'), 'get("docHeight")');
Assert.areEqual(mask.offsetWidth, doc.get('docWidth'), 'get("docWidth")');
mask.className = '';
},
test_refresh: function() {
var node = Y.one('#test-nodes'),
nodelist = node.all('li');
nodelist.item(1).remove();
ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
nodelist = Y.all('#test-nodes li');
nodelist.item(1).remove();
ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
},
test_one: function() {
var node = Y.DOM.byId('test:colon');
Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
"Y.one(Y.DOM.byId('test:colon')).one(h2)");
node = Y.DOM.byId('_funky:id{$400}');
Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
"Y.one(Y.DOM.byId('_funky:id{$400}')).one(h2)");
node = Y.one(1);
Assert.isNull(node, "Y.one(1)");
node = Y.one(true);
Assert.isNull(node, "Y.one(true)");
node = Y.one(false);
Assert.isNull(node, "Y.one(false)");
node = Y.one(0);
Assert.isNull(node, "Y.one(0)");
},
test_all: function() {
var node = Y.DOM.byId('test:colon');
ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
Y.one(node).all('h2')._nodes,
"Y.one(Y.DOM.byId('test:colon')).all(h2)");
node = Y.DOM.byId('_funky:id{$400}');
ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
Y.one(node).all('h2')._nodes,
"Y.one(Y.DOM.byId('_funky:id{$400}')).all(h2)");
node = Y.one('body');
ArrayAssert.itemsAreEqual([node._node], Y.all(node)._nodes,
"Y.all(Y.one('body'))");
node = Y.one('win');
ArrayAssert.itemsAreEqual([node._node], Y.all(node)._nodes,
"Y.all(Y.one('win'))");
/* comparision fails in webkit, so using alert test below
Assert.areEqual(window, Y.all(window)._nodes[0],
"Y.all(window)");
*/
Assert.isNotUndefined(Y.all(window)._nodes[0].alert,
"Y.all(window)");
},
test_isEmpty: function() {
Assert.isFalse(Y.all('input').isEmpty());
Assert.isTrue(Y.all('.nomatch').isEmpty());
},
test_siblings: function() {
var parent = Y.one('#test-nodes > ol'),
children = parent.get('children');
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(1)._node, children.item(3)._node],
children.item(2).siblings()._nodes,
"children.item(2).siblings()"
);
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(1)._node, children.item(3)._node],
children.item(2).siblings('li')._nodes,
"children.item(2).siblings('li')"
);
children.addClass('bar');
children.item(1).removeClass('bar');
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(3)._node],
children.item(2).siblings('li.bar')._nodes,
"children.item(2).siblings('li.bar')"
);
},
test_swap: function() {
var elements = Y.DOM.byId('test-swap').getElementsByTagName('li'),
nodes = Y.all('#test-swap li');
Assert.areEqual(elements[0], nodes.item(0)._node);
nodes.item(0).swap(nodes.item(3));
Assert.areEqual(elements[0], nodes.item(3)._node, "nodes.item(0).swap(nodes.item(3))");
nodes.item(0).swap(nodes.item(3));
Assert.areEqual(elements[0], nodes.item(0)._node);
Assert.areEqual(elements[3], nodes.item(3)._node);
nodes.item(1).swap(nodes.item(2));
Assert.areEqual(elements[1], nodes.item(2)._node);
nodes.item(1).swap(nodes.item(2));
Assert.areEqual(elements[1], nodes.item(1)._node);
Assert.areEqual(elements[2], nodes.item(2)._node);
},
test_data: function() {
var node = Y.one('body');
// deprecated usage
node.set('data', 'foo');
Assert.areEqual('foo', node.get('data'),
"node.set('data', 'foo')");
node.setData('foo', 'foo');
Assert.areEqual('foo', node.getData('foo'),
"node.setData('foo', 'foo')");
node.clearData();
Assert.areEqual(undefined, node.getData('baz'),
"node.clearData()");
node.setData({'bar': 'bar', 'baz': 'baz'});
Assert.areEqual('bar', node.getData('bar'),
"node.setData({'bar': 'bar', 'baz': 'baz'})");
Assert.areEqual('baz', node.getData('baz'),
"node.setData({'bar': 'bar', 'baz': 'baz'})");
node.clearData('bar');
Assert.areEqual(undefined, node.getData('bar'),
"node.clearData('bar')");
Assert.areEqual('baz', node.getData('baz'),
"node.clearData('bar')");
node.clearData();
Assert.areEqual(undefined, node.getData('baz'),
"node.clearData()");
node.clearData();
Assert.areEqual(undefined, node.getData('baz'),
"node.clearData() after cleared");
},
test_appendStyle: function() {
var html = '<style>body {height:100px}</style>';
Y.one('head').append(html);
Assert.areEqual('100px', Y.one('body').getStyle('height'),
"Y.one('head').append(" + html + ")");
},
test_ancestor: function() {
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');
},
test_ancestors: function() {
var node = document.createElement('node'),
nodelist;
node.className = 'foo';
document.body.appendChild(node);
nodelist = Y.one(node).ancestors();
ArrayAssert.itemsAreEqual([document.documentElement, document.body], nodelist._nodes);
nodelist = Y.one(node).ancestors('.foo', true);
ArrayAssert.itemsAreEqual([node], nodelist._nodes);
nodelist = Y.one(node).ancestors('body', true);
ArrayAssert.itemsAreEqual([document.body], nodelist._nodes);
document.body.removeChild(node);
},
test_nodelistEvent: function() {
var nodelist = Y.all('div'),
item = nodelist.item(0),
evtObj = {
mousedown: function(e, foo, bar) {
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
Assert.areEqual('foo', foo, "foo === 'foo'");
Assert.areEqual('bar', bar, "bar === 'bar'");
}
};
nodelist.on('click', function(e) {
Assert.areEqual(this, nodelist);
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
});
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);
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
});
nodelist.on({mouseup: function(e) {
Assert.areEqual(this, nodelist);
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
}});
nodelist.on({keydown: true}, function(e) {
Assert.areEqual(this, nodelist.item(0));
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
}, item);
nodelist.on({keydown: true}, function(e) {
Assert.areEqual(this, nodelist.item(0));
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
}, item);
nodelist.after('click', function(e) {
Assert.areEqual(this, nodelist);
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
});
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);
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
});
nodelist.after({keydown: true}, function(e) {
Assert.areEqual(this, nodelist.item(0));
Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
}, item);
item.simulate('mousedown');
item.simulate('click');
item.simulate('mouseup');
item.simulate('keydown');
},
test_size: function() {
var node = Y.one('#doc'),
height = node._node.offsetHeight,
width = node._node.offsetWidth;
node.set('offsetHeight', 1000);
node.set('offsetWidth', 800);
Assert.areEqual(1000, node.get('offsetHeight'),
"node.set('offsetHeight')");
Assert.areEqual(800, node.get('offsetWidth'),
"node.set('offsetWidth')");
node.set('offsetWidth', -100);
node.set('offsetHeight', -100);
Assert.areEqual('0px', node.getStyle('height'),
"node.get('offsetHeight')");
Assert.areEqual('0px', node.getStyle('width'),
"node.get('offsetWidth')");
node.setStyle('height', '');
node.setStyle('width', '');
Assert.areEqual(height, node.get('offsetHeight'),
"node.get('offsetHeight')");
Assert.areEqual(width, node.get('offsetWidth'),
"node.get('offsetWidth')");
},
test_select: function() {
var select = Y.Node.create('<select>');
Assert.areEqual('', select.get('value'));
},
test_destroy: function() {
var node = Y.Node.create('<div><em>foo</em><strong>bar</strong></div>');
nodes = node.all('em, strong');
node.destroy();
Assert.isNull(node._node);
},
test_prependFrag: function() {
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(Y.Node.create(html));
Assert.isNotNull(document.getElementById('dyn-link-1'));
Assert.isNotNull(document.getElementById('dyn-link-2'));
html = '<link id="dyn-link-3" href="#" rel="stylesheet">'
Y.one('head').prepend(html);
Assert.isNotNull(document.getElementById('dyn-link-3'));
},
test_focus: function () {
var button = document.createElement('button');
button.style.visibility = 'hidden';
document.body.appendChild(button);
// This will throw in IE, but the focus() wrapper should catch the
// exception.
Y.one(button).focus();
},
'should hide the node': function() {
var node = Y.one('body');
node.hide();
Assert.areEqual('none', node.getStyle('display'));
node.setStyle('display', 'block');
},
'should show the node': function() {
var node = Y.one('body');
node.setStyle('display', 'none');
node.show(1);
Assert.areEqual('block', node.getStyle('display'));
node.setStyle('display', 'block');
},
'should set text for textNode': function() {
var node = Y.one(document.createElement('text'));
node.set('text', 'foo');
Assert.areEqual('foo', node.get('text'));
},
'should append to the given node': function() {
var node = Y.Node.create('<div/>');
node.appendTo(Y.one('body'));
},
'should append to the given DOM node': function() {
var node = Y.Node.create('<div/>');
node.appendTo(document.body);
},
'should wrap the node with the given html': function() {
var node = Y.Node.create('<span/>');
node.wrap('<div/>');
Assert.areEqual(node.get('parentNode.tagName'), 'DIV');
},
'should remove the node from its parent': function() {
var node = Y.Node.create('<div/>').append('<span><em>foo</em></span>').one('em');
node.unwrap();
Assert.areEqual(node.get('parentNode.tagName'), 'DIV');
},
'should return true for fragment': function() {
var node = Y.Node.create('<span>foo</span><em>bar</em>');
Assert.isTrue(node.isFragment());
},
'should create a caption element': function() {
var node = Y.Node.create('<table/>');
node.createCaption();
Assert.areEqual('CAPTION', node.get('firstChild.tagName'));
},
'should replace node with the given node': function() {
var node = Y.Node.create('<div><span>foo</span></div>');
node.one('span').replace(Y.Node.create('<em>bar</em>'));
Assert.areEqual('EM', node.get('firstChild.tagName'));
},
'should replace node with the given dom node': function() {
var node = Y.Node.create('<div><span>foo</span></div>');
node.one('span').replace(Y.Node.create('<em>bar</em>')._node);
Assert.areEqual('EM', node.get('firstChild.tagName'));
},
'should replace node with the given html': function() {
var node = Y.Node.create('<div><span>foo</span></div>');
node.one('span').replace('<em>bar</em>');
Assert.areEqual('EM', node.get('firstChild.tagName'));
},
'should replace node with the given html and return the replaced node': function() {
var node = Y.Node.create('<div><span>foo</span></div>');
node = node.replaceChild('<em>bar</em>', node.one('span'));
Assert.areEqual('SPAN', node.get('tagName'));
},
'should append the given html and return the new node': function() {
var node = Y.Node.create('<div></div>').appendChild('<em>foo</em>');
Assert.areEqual('EM', node.get('tagName'));
},
'should append the given nodelist': function() {
var nodelist = Y.Node.create('<div><em>foo</em><strong>bar</strong></div>').all('*'),
node = Y.Node.create('<div/>');
node.append(nodelist);
Assert.areEqual('EM', node.get('firstChild.tagName'));
},
'should append the given nodelist and return a NodeList instance': function() {
var nodelist = Y.Node.create('<div><em>foo</em><strong>bar</strong></div>').all('*'),
node = Y.Node.create('<div/>'),
nodelist2 = node.appendChild(nodelist);
Assert.areEqual('EM', nodelist.item(0).get('tagName'));
Assert.areEqual('STRONG', nodelist.item(nodelist.size() - 1).get('tagName'));
},
'should insert the given html and return the new node': function() {
var node = Y.Node.create('<div><span>foo</span></div>'),
newNode = node.insertBefore('<em>bar</em>', node.one('*'));
Assert.areEqual('EM', node.get('firstChild.tagName'));
},
'should insert the given nodelist before the given node and return the nodelist': function() {
var nodelist = Y.Node.create('<div><em>foo</em><strong>bar</strong></div>').all('*'),
node = Y.Node.create('<div><span>baz</span><b>foobar</b></div>'),
nodelist2 = node.insertBefore(nodelist, node.one('b')),
childNodes = node.get('childNodes');
Assert.areEqual(4, childNodes.size());
Assert.areEqual('EM', childNodes.item(1).get('tagName'));
Assert.areEqual('B', childNodes.item(childNodes.size() - 1).get('tagName'));
Assert.areEqual('SPAN', childNodes.item(0).get('tagName'));
},
'should insert the node before the given node and return the new node': function() {
var node = Y.Node.create('<div><span>baz</span><b>foobar</b></div>'),
node2 = node.insertBefore(Y.Node.create('<em>foo</em>'), node.one('b')),
childNodes = node.get('childNodes');
Assert.areEqual('EM', childNodes.item(1).get('tagName'));
Assert.areEqual('B', childNodes.item(childNodes.size() - 1).get('tagName'));
Assert.areEqual('EM', node2.get('tagName'));
},
'should insert the given node before the given dom node and return the new node': function() {
var node = Y.Node.create('<div><span>baz</span><b>foobar</b></div>'),
node2 = node.insertBefore(document.createElement('em'), node.one('b')),
childNodes = node.get('childNodes');
Assert.areEqual('EM', node.get('childNodes').item(1).get('tagName'));
Assert.areEqual('B', childNodes.item(childNodes.size() - 1).get('tagName'));
Assert.areEqual('EM', node2.get('tagName'));
},
'should fire the handler once': function() {
var i = 0,
test = this,
node = Y.all('body');
node.once('click', function() {
i++;
Assert.areEqual(1, i);
});
node.item(0).simulate('click');
node.item(0).simulate('click');
},
'should pop the nodelist': function() {
var nodes = Y.all('div'),
node = nodes.pop();
Assert.areEqual(Y.all('div').item(Y.all('div').size() - 1), node);
Assert.areEqual(Y.all('div').size() - 1, nodes.size());
},
'should shift the nodelist': function() {
var nodes = Y.all('div'),
node = nodes.shift();
Assert.areEqual(Y.one('div'), node);
Assert.areEqual(Y.all('div').size() - 1, nodes.size());
},
'should push the node on nodelist': function() {
var nodes = Y.all('div'),
node = Y.one(document.createElement('div'));
Assert.areEqual(nodes.size() + 1, nodes.push(node));
Assert.areEqual(nodes.item(nodes.size() - 1), node);
Assert.areEqual(node._node, nodes._nodes[nodes.size() - 1]);
},
'should unshift the node on nodelist': function() {
var nodes = Y.all('div'),
size = nodes.size(),
node = Y.one(document.createElement('div'));
nodes.unshift(node);
Assert.areEqual(size + 1, nodes.size());
Assert.areEqual(nodes.item(0), node);
Assert.areEqual(node._node, nodes._nodes[0]);
},
'should unshift the dom node on nodelist': function() {
var nodes = Y.all('div'),
size = nodes.size(),
node = document.createElement('div');
nodes.unshift(node);
Assert.areEqual(size + 1, nodes.size());
Assert.areEqual(nodes.item(0), Y.one(node));
Assert.areEqual(node, nodes._nodes[0]);
},
'should concat the nodelists': function() {
var nodelist1 = Y.all('div'),
nodelist2 = Y.all('li'),
nodelist3 = nodelist1.concat(nodelist2);
ArrayAssert.itemsAreEqual(nodelist1._nodes.concat(nodelist2._nodes), nodelist3._nodes);
},
'should concat the nodes': function() {
var nodelist1 = Y.all('div');
nodelist2 = nodelist1.concat(Y.one('ul'), Y.one('li'));
ArrayAssert.itemsAreEqual(nodelist1._nodes.concat(Y.one('ul')._node, Y.one('li')._node), nodelist2._nodes);
},
'should slice the nodes': function() {
var nodelist1 = Y.all('div');
nodelist2 = nodelist1.slice(1, 4);
ArrayAssert.itemsAreEqual(nodelist1._nodes.slice(1, 4), nodelist2._nodes);
},
'should splice the nodes': function() {
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);
},
'should empty the node': function() {
var node = Y.Node.create('<div><span><em>foo</em></span><strong>bar</strong></div>');
node.empty();
Assert.areEqual(0, node.get('childNodes').size());
},
'should empty the nodelist': function() {
var node = Y.Node.create('<div><span><em>foo</em></span><span>strong>bar</strong></span></div>');
node.all('span').empty();
Assert.areEqual(0, node.get('childNodes').item(0).get('childNodes').size());
Assert.areEqual(0, node.get('childNodes').item(1).get('childNodes').size());
},
'should load the content from the given url into the node': function() {
var node = Y.Node.create('<div></div>'),
test = this;
node.set('id', 'test-loading');
node.appendTo('body');
node.load('test-frame.html', function(code, response) {
test.resume(function() {
Assert.areEqual(1, node.all('div').size());
node.remove();
});
});
test.wait(1000);
},
'should load the query result from the given url into the node': function() {
var node = Y.Node.create('<div></div>'),
test = this;
node.set('id', 'test-loading');
node.appendTo('body');
node.load('test-frame.html', 'ul', function(code, response) {
test.resume(function() {
Assert.areEqual(1, node.all('ul').size());
node.remove();
});
});
test.wait(1000);
},
'should call method with node context': function() {
Y.Node.addMethod('testThis', function() {
return this.get('id');
});
var node1 = Y.Node.create('<div id="foo"/>');
var node2 = Y.Node.create('<div id="bar"/>');
Assert.areEqual('foo', node1.testThis());
Assert.areEqual('bar', node2.testThis());
}
}));
Y.Test.Runner.add(suite);
Y.on('load', function() {
Y.Test.Runner.run();
}, window);
});
</script>
</body>
</html>