node.html revision b7d35a3417d982b6fa70eb7eab19f0ae159d88dc
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
499b34cea04a46823d003d4c0520c8b03e8513cbBrian Wellington<html>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence<head>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<title>Node Test Suite</title>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<script type="text/javascript" src="/build/yui/yui.js"></script>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence
15a44745412679c30a6d022733925af70a38b715David Lawrence<style type="text/css">
15a44745412679c30a6d022733925af70a38b715David Lawrencebody {
15a44745412679c30a6d022733925af70a38b715David Lawrence font:13px/1.22 arial;
15a44745412679c30a6d022733925af70a38b715David Lawrence}
15a44745412679c30a6d022733925af70a38b715David Lawrence
15a44745412679c30a6d022733925af70a38b715David Lawrence#doc {
15a44745412679c30a6d022733925af70a38b715David Lawrence min-height:200px;
15a44745412679c30a6d022733925af70a38b715David Lawrence width:1000px;
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer border:10px solid red;
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer padding:1em;
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington}
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer#get-style {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington background:#ccc;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence float:left;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence font-size:10px;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence height:10em;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence padding:15px 0;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence width:200px;
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence}
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington.mask {
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer background:#ccc;
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer position:absolute;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington top:0;
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer left:0;
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington overflow:hidden;
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer}
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer#test-xy {
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer background:green;
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer position:absolute;
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews height:10px;
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer width:10px;
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer}
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer#test-computed {
c9defbf4b968e8a61f391246431ac63d0d6a39abMichael Sawyer border: medium solid #000;
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer position:relative;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington width:50%;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington margin:auto;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington padding:10px;
e4bd5f690729e93a624ab82b69bfe4d9ccac3a64Brian Wellington z-index: 2;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington zoom:1;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington}
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington#test-scroll {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington height: 100px;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington width: 100px;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington overflow:auto;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington}
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington#test-scroll p {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington height:1000px;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington width:1000px;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington}
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellingtonbutton {
cbc6e835978507c5243ceb0a2afca03943c7df64Brian Wellington display:block;
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington}
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington.yui3-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington background: #070;
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington color: #fff;
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington}
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington.yui3-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington background: #700;
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington color: #fff;
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington}
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington</style>
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington</head>
389ec663f262cc219e986d6600eec9707ef2cb24Brian Wellington<body class="yui3-skin-sam">
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson <div id="test-append"></div>
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer <div id="test-xy"></div>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <div id="test-remove"></div>
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington <div id="test-replace"><p>replace me</p></div>
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer <div id="test-scroll">
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer <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>
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer </div>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <div id="test-frag">
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence <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>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <p>Lorem ipsum dolor <em>sit</em>.</p>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington </div>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <div id="doc" class="doc-wrap">
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <form id="test-form" class="test-class" action="#">
96a6f4c77f357ec5a88bfa646fea659a43d84daeBrian Wellington <label for="test-text-value"><em>label</em></label>
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington <input name="test-text-value" id="test-text-value" value="text value">
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <input name="test-text-novalue">
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
835658d2bee884e0ac619ee4519172050dee3800Brian Wellington <textarea name="test-textarea-value" value="textarea value"></textarea>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <textarea name="test-textarea-novalue"></textarea>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <textarea name="test-textarea-textvalue">textarea text</textarea>
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <button name="test-button-value" value="button value">button</button>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <button name="test-button-novalue"></button>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <button name="test-button-textvalue">button text</button>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington </form><div id="test-class">test class</div>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <div id="get-style">getStyle</div>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <div id="baz">baz</div>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington text
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <div id="test-extras">extras</div>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <div id="test-empty-children"></div>
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington </div>
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington <div id="inline-style" style="color: green">inline style</div>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <div id="foo" aria-checked="true"></div>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <div id="test-computed">test computed style</div>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <form id="form.foo@bar:baz">
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <select id="test-select" name="test-select">
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews <option value="0">foo</option>
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington <option value="1">bar</option>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <option>baz</option>
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington </select>
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews </form>
6417ba84400fcae1bd92e66c992e4641b515d8daAndreas Gustafsson <div id="test-nodes">
09de21079e902c7356d936ef4f2a31060b36e5f3Brian Wellington <ul>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington <li>item 1</li>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <li>item 2</li>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <li>item 3</li>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <li>item 4</li>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington </ul>
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington <ol>
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence <li class="bar">item 1</li>
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews <li>item 2</li>
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews <li>item 3</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li class="bar">item 4</li>
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence </ol>
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence </div>
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence <table id="test-table">
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <tr><td id="test-td"><div><div>grandchild of td</div></div></td></tr>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer </table>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <ol>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 1</li>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence <li>item 2</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 3</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 4</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer </ol>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington<iframe src="test-frame.html"></iframe>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<div id="test-insert-html">foo</div>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<div id="test:colon">
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <h2>test</h2>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer</div>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<ol id="test-swap">
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 1</li>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence <li>item 2</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 3</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <li>item 4</li>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer</ol>
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer<div id="_funky:id{$400}">
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer <h2>test</h2>
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer</div>
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer<div id="yui-log"></div>
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer<script type="text/javascript">
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael SawyerYUI({base: '/build/', filter: 'raw'}).use('selector-css3', 'anim', 'console', 'test', 'node-event-simulate', function(Y) {
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence var Assert = Y.Assert,
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer ArrayAssert = Y.ArrayAssert,
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer suite = new Y.Test.Suite("yuisuite");
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer new Y.Console({node: '#yui-log', height: '1000px' }).render('#yui-log');
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer var byId = function(id) {
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence return document.getElementById(id);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer };
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var $ = Y.Selector.query;
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer suite.add( new Y.Test.Case({
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington name: 'Y.Node Instance',
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_get: function() {
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington var node = Y.one('#test-nodes'),
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington nodes = Y.all('#test-nodes *');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington // return null
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Y.one("a[href$='?t=5']");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(Y.one(''), 'Y.one("")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(Y.one(null), 'Y.one(null)');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(Y.one('#fake-id'), 'Y.one("#fake-id") === null');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(Y.one('#fake-id li'), 'Y.one("#fake-id li") === null');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington // return zero length collection
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington // return 1
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes').id, Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.one('#test-nodes')), 'Y.one("#test-nodes")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual('test-nodes', Y.one('#test-nodes').get('id'), 'Y.one("#test-nodes").get("id")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(node, Y.one('#test-nodes'), 'node === Y.one("#test-nodes")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Y.Node.getDOMNode(Y.one('#test-nodes li:first-child')), 'Y.one("#test-nodes")');
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.Node.getDOMNode(Y.one('#test-nodes li:nth-child(2)')), 'Y.one("#test-nodes:nth-child(2)")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(byId('form.foo@bar:baz'), Y.Node.getDOMNode(Y.one('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington var firstChild = Y.one('body :first-child');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.one('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
85dd6d777a75c022cce021a592d5a8e86813aaf7Brian Wellington Assert.isFalse(firstChild._node === Y.one('body :first-child')._node, "wrong node: Y.one('body :first-child')");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.one('body').removeChild(Y.one('body :first-child'));
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.one('body :first-child')._node, "body :first-child === #test-append");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington // return more than 1
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.one("#test-select option")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.one("#test-select option").size()');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(2, Y.all('form').size(), 'Y.one("form").size()');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.one("form").item(1)');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(3, Y.all('.bar').size(), 'Y.one(".bar")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence var frameDoc = Y.one('iframe').get('contentWindow.document');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.one('#demo li').get('innerHTML')),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "frameDoc.one('#demo li').get('innerHTML')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areSame(Y.one('doc'), Y.one('doc'), "Y.one('doc') === Y.one('doc')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence Assert.areEqual(byId('test-text-value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('doc').one('.test-class #test-text-value')._node,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "Y.one('doc').one('.test-class #test-text-value')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington test_each: function() {
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence var count = 0,
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington nodes = Y.all('#test-nodes *'),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington index;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington nodes.each(function(node, i, list) {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington count++;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington index = i;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(nodes, list, 'nodes === instance');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington Assert.areEqual(node, this, 'this === node');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington });
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington },
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington test_some: function() {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington var nodes = Y.all('#test-nodes *'),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington index, instance, isNode;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.isTrue(nodes.some(function(node, i, list) {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington return true;
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington }), 'nodes.some(function() { return true; })');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.isFalse(nodes.some(function(node, i, list) {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington }), 'nodes.some(function() {})');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington },
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington test_indexOf: function() {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(0, Y.all('body').indexOf(Y.one('body')),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington "Y.all('body').indexOf(Y.one('body'))");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(0, Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0])),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington "Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0]))");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-')),
bd2a38d6af3ded9a355a316c06b15511729ef2d2Brian Wellington "Y.all('div').indexOf(Y.one('#test-'))");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.areEqual(-1, Y.all('div').indexOf(Y.one('#test-form')),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington "Y.all('div').indexOf(Y.one('#test-form'))");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington },
bd2a38d6af3ded9a355a316c06b15511729ef2d2Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington test_getters: function() {
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington var id = 'test-nodes',
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington element = byId(id),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington node = Y.one('#' + id),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington nodes = Y.all('#' + id + ' *');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(null, node.get(''), 'node.get("") === null');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington
9594482ba300a4d694162fa62ba636c7dd00d3b6Brian Wellington Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence var textContainer = Y.Node.create('<div>foo</div>');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington textContainer.set('text', 'bar');
2b8f0e9facc476b2a0d1d372da295dd26decd4baBrian Wellington Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington ArrayAssert.itemsAreEqual($('#test-select option'),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Y.NodeList.getDOMNodes(Y.one('#test-select').get('options')),
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington 'Y.one("#test-select.get("options")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(2, node.get('children').size(), 'get("children")');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington // size() is deprecated on Node
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington //Assert.areEqual(1, Y.one('#' + id + ' li').size(), 'Y.one("#test-nodes li.size()")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual('test', Y.one('#test-prop').get('firstChild.nextSibling.firstChild.nodeValue'),
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington 'node.get("firstChild.nextSibling.firstChild.nodeValue")');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(byId('test-prop').tabIndex, Y.one('#test-prop').get('tabIndex'), 'Y.one("#test-prop").get("tabIndex")');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(byId('doc').tabIndex, Y.one('#doc').get('tabIndex'), 'Y.one("#doc".get("tabIndex"))');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(byId('link-1').tabIndex, Y.one('#link-1').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(byId('link-2').tabIndex, Y.one('#link-2').get('tabIndex'), 'Y.one("#link1".get("tabIndex"))');
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(undefined, Y.one('form').get('childNodes')._nodes.item, 'convert live list to static');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(Y.all('input').get('parentNode') instanceof Y.NodeList, "Y.all('input').get('parentNode')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington test_create: function() {
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer var id = 'test-nodes',
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington element = byId(id),
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington node = Y.one('#' + id);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node = Y.Node.create('<select><option>foo</option></select>');
7869b99dc815e3b863351b8095d1b71b3f583541Brian Wellington var option = Y.Node.create('<option>bar</option>').set('selected', 'selected');
7869b99dc815e3b863351b8095d1b71b3f583541Brian Wellington node.appendChild(option);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington var html = '<li><a href=""></a></li>';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node = Y.Node.create(html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('A', node.get('firstChild.tagName'), html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington html = 'baz';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node = Y.Node.create(html);
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Assert.areEqual('3', node.get('nodeType'), "node.get('nodeType')");
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Assert.areEqual('3', Y.Node.getDOMNode(node).nodeType, "Y.Node.getDOMNode(node).nodeType");
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer html = '<div>bar</div>';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node = Y.Node.create(html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('3', node.get('firstChild.nodeType'), "node.get('firstChild.nodeType')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.insertBefore(Y.Node.create('foo'), node.get('firstChild'));
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('foobar', node.get('innerHTML'), "node.get('innerHTML')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('foobar', node.get('text'), "node.get('text')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
674a8f811ef49773106efcaf04ccc01e13d54344Brian Wellington // test setContent with NodeList
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington html = '<div>foo</div>';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.setContent(Y.all(Y.Node.create(html)));
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(html, node.get('innerHTML').toLowerCase(), "node.setContent(Y.all(Y.Node.create(html)))");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington },
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington test_setter: function() {
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington var id = 'test-prop',
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington element = byId(id),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node = Y.one('#' + id),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington nodes = Y.all('#test-nodes *');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington var childNodes = Y.one('body').get('childNodes');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington childNodes.set('title', 'foo bar');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.one("body").get("childNodes").set("title")');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.set('foo', 'foo');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.isUndefined(node.get('foo'), 'node.get("foo")');
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence node.set('title', 'my title');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual('my title', Y.Node.getDOMNode(node).title, 'node.title)');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual('my title', node.get('title'), 'node.set("title")');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer nodes.set('className', 'foo');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('foo', Y.NodeList.getDOMNodes(nodes)[0].className, 'node.className');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('foo', nodes.get('className')[2], 'node.get("className")');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('foo', nodes.item(nodes.size() - 2).get('className'),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer 'nodes.item(nodes.size - 2).get("className")');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var attrMap = {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer className: 'fooclass',
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer title: 'new title'
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington };
a58d1ce3757a13356e69cbb5893b70c8a9c425c7Michael Sawyer node.setAttrs(attrMap);
a58d1ce3757a13356e69cbb5893b70c8a9c425c7Michael Sawyer var getAttrs = node.getAttrs(['className', 'title']);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(attrMap.className, getAttrs.className, 'node.setAttrs(attrMap) (get className)');
a58d1ce3757a13356e69cbb5893b70c8a9c425c7Michael Sawyer Assert.areEqual(attrMap.title, getAttrs.title, 'node.setAttrs(attrMap) (get title)');
a58d1ce3757a13356e69cbb5893b70c8a9c425c7Michael Sawyer
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Y.one('#test-select').set('selectedIndex', 2);
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(2, Y.one('#test-select')._node.selectedIndex,
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington "Y.one('#test-select').set('selectedIndex', 2)");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer Y.one('body > form').set('test-select.selectedIndex', 2);
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer Assert.areEqual(2, byId('test-select').selectedIndex,
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington 'Y.one("body > form").set("test-select.selectedIndex", 2)');
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer var index = Y.one('#test-select').one('option[value=1]').set('selected', true);
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual(1, Y.one('#test-select')._node.selectedIndex,
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington "Y.one('#test-select').set('selectedIndex', 1)");
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Y.one('#test-select').set('value', 1);
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual(1, Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Y.one('#test-select').set('value', 'baz');
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington },
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington test_dom_methods: function() {
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington var id = 'test-prop';
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington var element = byId(id);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var parent = Y.one(element.parentNode);
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington var node = Y.one('#test-prop');
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Assert.isTrue(node.hasMethod('appendChild'), "node.hasMethod('appendChild')");
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington var xmlNode = Y.one(document.createElement('xml'));
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Assert.isFalse(xmlNode.hasMethod('onreadystatechange')," xmlNode.hasMethod('onreadystatechange')");
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington //Assert.isTrue(element === Y.one(node), 'element === Y.one(node)');
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington var insertNode = document.createElement('div');
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington Y.stamp(insertNode);
7ba05518c7ee2f38cd9eedbafb43cf6e7db76aefBrian Wellington insertNode.innerHTML = 'inserted node';
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Y.one('body').appendChild(Y.one('div'));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(Y.one('body').get('lastChild').compareTo(Y.one('#test-append')), 'get("body").appendChild(Y.one("#test-append"))');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.one('body').get('lastChild')), 'get("body").appendChild(Y.one([0]"#test-append"))');
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('inserted node', node.appendChild(Y.one(insertNode)).get('innerHTML'), 'appendChild(Node input)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('inserted node', node.removeChild(Y.one(insertNode)).get('innerHTML'), 'removeChild(Node input)');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var clone = node.cloneNode();
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isFalse(node === clone, 'node === node.cloneNode()');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence // TODO: test deep clone with bound descendant
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(Y.one('.bar').test('.bar'), "Y.one('.bar').test('.bar')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington clone = Y.one('.bar').cloneNode(true);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.isTrue(clone.hasClass('bar'), "clone.hasClass('bar') (before appending)");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one('body').appendChild(clone);
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington clone.set('id', 'new-bar');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington Assert.isTrue(clone.test('.bar'), "clone.test('.bar') (after appending)");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer Assert.isTrue(
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Y.Node.create('<div id="foo" class="bar"></div>').test('.bar'),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('.bar')");
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isTrue(
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington Y.Node.create('<div id="foo" class="bar"></div>').test('#foo.bar'),
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('#foo.bar')");
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.isTrue(node.hasChildNodes(), 'hasChildNodes()');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.isTrue(node.compareTo(node), 'compareTo(node)');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.isTrue(node.compareTo(Y.one(node)), 'compareTo(new Y.Node)');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isFalse(node.compareTo(null), 'compareTo(null)');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isFalse(node.create('<p>foo</p>').inDoc(), 'node.inDoc()');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isTrue(node.contains(byId('test-contains')), 'contains()');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isTrue(node.contains(node), 'contains() self');
703e1c0bb66f3cd3d300358ca0c1fdf3cb5fb1c5Brian Wellington Assert.isTrue(node.contains(element), 'contains() self');
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual('doc', node.ancestor(function(el) {
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington return el.get('id') === 'doc';
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington }).get('id'), 'ancestor');
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.areEqual(node.ancestor(), node.get('parentNode'), "node.ancestor()");
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.isNull(node.ancestor(function(el) {
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington return el.getAttribute('foo') !== '';
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington }), 'ancestor');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.areEqual(node.get('parentNode'), node.ancestor('div'));
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.areEqual(node, node.ancestor('div', true));
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.areEqual('test-class', node.previous().get('id'), 'node.previous()');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isTrue(Y.one(document.body).inDoc(document));
95e47f45521ffbf194b377882cf1bcae51b7baceBrian Wellington Assert.isTrue(node.inDoc(), 'node.inDoc()');
78838d3e0cd62423c23de5503910e01884d2104bBrian Wellington Assert.isTrue(node.inDoc(document), 'node.inDoc(document)');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.isTrue(node.inDoc(Y.one(document)), 'node.inDoc(Y.one(document))');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.isTrue(node.hasAttribute('id'), 'node.hasAttribute("id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isTrue(node.hasAttribute('title'), 'node.hasAttribute("title")');
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews Assert.isFalse(node.hasAttribute('foo'), 'node.hasAttribute("foo")');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.isTrue(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex")');
7b19817cb8128b75df04d7eacaa93002bbf877b1Michael Sawyer node.removeAttribute('tabIndex');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isFalse(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex") (false)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington /*
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(node.getAttribute('tabIndex'), node.get('tabIndex'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "node.getAttribute('tabIndex') === node.get('tabIndex')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington */
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.isFalse(Y.one('body').hasAttribute('title'), 'body.hasAttribute("title")');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.areEqual('0', Y.one('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('1', Y.one('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('', Y.one('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.areEqual('http://www.yahoo.com/foo', Y.one('#link-1').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
96a6f4c77f357ec5a88bfa646fea659a43d84daeBrian Wellington Assert.areEqual('foo.html', Y.one('#link-2').getAttribute('href'), "Y.one('#link1').getAttribute('href')");
96a6f4c77f357ec5a88bfa646fea659a43d84daeBrian Wellington },
96a6f4c77f357ec5a88bfa646fea659a43d84daeBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_fragment: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var frag = Y.one('document').invoke('createDocumentFragment'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington element = byId('test-append');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington frag.appendChild(element);
835658d2bee884e0ac619ee4519172050dee3800Brian Wellington Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('body').appendChild(frag);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_screen: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var id = 'test-prop';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var element = byId(id);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var parent = Y.one(element.parentNode);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington var node = Y.one(element);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var newNode = Y.Node.create('<div id="brand-new-foo">foo</div>');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(0, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.areEqual(0, node.get('docScrollY'), 'node.get("docScrollY")');
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence node = Y.one('#test-xy');
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence node.setXY([100, 100]);
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington var xy = node.getXY();
9a68d61341cbe7a953d437cb6e607dea587f6bc3Brian Wellington var x = Math.round(xy[0]);
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews var y = Math.round(xy[1]);
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews ArrayAssert.itemsAreEqual([100, 100], [x, y], 'Node.getXY("foo", "bar")');
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson },
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson test_region: function() {
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson Assert.isTrue(Y.one('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson Assert.isTrue(Y.one('#get-style').inRegion(Y.one('#doc')), 'node.inRegion(Node)');
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.one('#doc').get('region'), 'node.get("region")');
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson },
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson test_classes: function() {
781dc04f0cf99ccd361040f42e05fbe75bfb3d2bAndreas Gustafsson var id = 'test-class';
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews var element = byId(id);
6417ba84400fcae1bd92e66c992e4641b515d8daAndreas Gustafsson var parent = Y.one(element.parentNode);
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews var node = Y.one(element);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.addClass('foo');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('foo', element.className, 'node.addClass("foo")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node.removeClass('foo');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('', element.className, 'node.removeClass("foo")');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node.addClass('foo');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('body').get('childNodes').addClass('foo');
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington Assert.isTrue(byId('test-class').className == 'foo', 'NodeList.addClass');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer node.replaceClass('foo', 'bar');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('bar', element.className, 'Node.replaceClass("foo", "bar")');
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington var nodes = Y.all('#test-nodes li');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington nodes.addClass('foo').addClass('bar');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodes.each(function(n) {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(n.hasClass('foo'));
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isTrue(n.hasClass('bar'));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer });
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodes.removeClass('bar');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington nodes.each(function(n) {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isFalse(n.hasClass('bar'));
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington });
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node = Y.DOM.create('<div></div>');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.DOM.addClass(node, 'foo');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Y.DOM.replaceClass('foo', 'foo');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer Assert.isTrue(Y.DOM.hasClass(node, 'foo'));
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington node = Y.Node.create('<div></div>');
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington node.addClass('foo bar baz');
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington Assert.areEqual('foo bar baz', node._node.className);
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer test_toggle: function() {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var node = Y.one('#test-class');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.toggleClass('foo');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.toggleClass('foo');
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo')");
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.toggleClass('foo', false);
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo', false)");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.toggleClass('foo');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington node.toggleClass('foo', true);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo', true)");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington },
6dd953f66656dbd151ac404cbf9ffd5a4b209337Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_setStyle: function() {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var element = byId('set-style'),
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node = Y.one(element),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer nodes = node.get('childNodes');
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington node.setStyle('width', '20em');
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington Assert.areEqual('20em', element.style.width, "setStyle('width' '20em')");
b67a6d96578e0152e98826db1e3a0a8bd15fedddBrian Wellington
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.setStyle('marginTop', '1em');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('1em', element.style.marginTop, "setStyle('marginTop','1em')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.setStyle('opacity', 0.5);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(0.5, node.getStyle('opacity'), "setStyle('opacity', 0.5)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.setStyle('float', 'left');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.setStyle('float', 'left');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson nodes.setStyle('marginTop', '1em');
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson Assert.areEqual('1em', nodes.getStyle('marginTop')[2], "setStyle('marginTop', '1em'");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer test_getStyle: function() {
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews var node = Y.one('#get-style');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
ebfcb6cf66283096ebda1503b6cc042ce86b6bedBrian Wellington node.setStyle('opacity', 0.5);
ebfcb6cf66283096ebda1503b6cc042ce86b6bedBrian Wellington Assert.areEqual(0.5, node.getStyle('opacity'), "node.getStyle('opacity')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('left', node.getStyle('float'), "node.getStyle('float')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('100px', node.getStyle('height'), "getStyle('height')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('200px', node.getStyle('width'), "getStyle('width)'");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('visible', node.getStyle('visibility'), "visibility");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington node.setStyle('visibility', 'hidden');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('hidden', node.getStyle('visibility'), "visibility");
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews node.setStyle('visibility', 'visible');
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews },
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_getComputedStyle: function() {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var node = Y.one('#test-computed'),
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington domNode = byId('test-computed'),
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington bw = (Y.UA.ie && Y.UA.ie < 8) ? 4 : 3,
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington w = node.get('offsetWidth'),
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington h = node.get('offsetHeight');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington if (!Y.UA.ie || document.compatMode !== 'BackCompat') {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington w = w - 20 - 2 * bw;
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington h = h - 20 - 2 * bw;
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington }
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(bw + 'px', node.getComputedStyle('borderTopWidth'), "borderTopWidth: medium");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(h, Math.ceil(parseFloat(node.getComputedStyle('height'))), "height: auto (offset minus padding and border)");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington domNode.style.padding = '1em';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('13px', node.getComputedStyle('paddingTop'), "padding 13px");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('visible', node.getComputedStyle('visibility'), "visibility");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington domNode.parentNode.style.visibility = 'hidden';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('hidden', node.getComputedStyle('visibility'), "visibility:hidden");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington domNode.parentNode.style.visibility = 'visible';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(2, node.getComputedStyle('zIndex'), 'node.getComputedStyle("zIndex")');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington domNode.style.margin = 'auto';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('0px', node.getComputedStyle('marginTop'), "margin auto");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(w, Math.round(parseFloat(node.getComputedStyle('width'))), "percent width (from CSS)");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_setStyles: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = byId('set-style');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var element = Y.one(node);
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington element.setStyles({
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington 'top': '5px',
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington 'right': '10em'
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington });
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isTrue( (node.style.top == '5px' && node.style.right == '10em'), "setStyles()");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington test_selector: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var id = 'test-prop',
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington element = byId(id),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node = Y.one('#' + id),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington parent = Y.one(element.parentNode),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington nodes = Y.all('#test-nodes *');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington // Selector methods
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.isNull(Y.one(document.body).one("#fake-id"), 'body.one("#fake-id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isTrue(Y.one(node).test('#' + id), 'node.test( "#id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isNull(parent.one("#fake-id"), 'parent.one("#fake-id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(id, parent.one('#' + id).get('id'), 'parent.one("#id")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNull(parent.one('#text-xy'), 'parent.one("test-xy")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(id, parent.all('#' + id).item(0).get('id'), 'parent.all(node, "#id")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_window: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var win = Y.one(window);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(window, Y.Node.getDOMNode(win), 'Y.one(window)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(document, Y.Node.getDOMNode(win.get('document')), 'win.get(document)');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer //Assert.areEqual(window, Y.Node.getDOMNode(Y.one('document').get('defaultView')), 'win.get(document)');
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington },
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington test_windowSize: function() {
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Assert.isNotNull(Y.one('body').get('winHeight'), 'body.get("winHeight")');
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington },
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_scroll: function() {
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews Y.one('#test-scroll').set('scrollTop', 100);
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Y.one('#test-scroll').set('scrollLeft', 200);
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer document.body.style.height = '5000px';
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer document.body.style.width = '5000px';
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer/*
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one(window).set('scrollTop', 100);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one(window).set('scrollLeft', 200);
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington*/
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Y.one(document).set('scrollTop', 200);
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Y.one(document).set('scrollLeft', 100);
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
0a35d55b99abc9f71a180df65b1a69a9639cfe40Brian Wellington Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer document.body.style.height = '';
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer document.body.style.width = '';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington window.scrollTo(0, 0);
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer },
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer
d4024b720c7855b8234d5af62b6a3d268334e2ccMichael Sawyer test_setContent: function() {
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence var content = '<strong>foo</strong>';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one('#test-insert-html').setContent(content);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(content,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "Y.one('#test-insert-html').setContent(" + content + ")");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('#test-insert-html').setContent(Y.Node.create(content));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(content,
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington "Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer content = '<strong>foo</strong><em>bar</em>';
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Y.one('#test-insert-html').setContent(Y.Node.create(content));
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(content,
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington "Y.one('#test-insert-html').setContent(Y.Node.create(" + content + "))");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var element = document.createElement('strong');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington element.innerHTML = 'bar';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington content = '<strong>bar</strong>';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('#test-insert-html').setContent(element);
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(content,
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "Y.one('#test-insert-html').setContent(element)");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington content = '';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('#test-insert-html').setContent(content);
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(content,
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "Y.one('#test-insert-html').setContent(" + content + ")");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington content = null;
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('#test-insert-html').setContent(content);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('',
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "Y.one('#test-insert-html').setContent(" + content + ")");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer content = 0;
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Y.one('#test-insert-html').setContent(content);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual('0',
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "Y.one('#test-insert-html').setContent(" + content + ")");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington },
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington test_insert: function() {
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington var node = Y.one('#test-insert-html'),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington html = '<strong>foo</strong>',
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington content;
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.setContent('foo');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington content = node.get('innerHTML').toLowerCase();
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.insert(html);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(node._node.innerHTML.toLowerCase(),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington content + html,
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert('" + html + "')");
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington html = '<em>bar</em>';
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence content = node.get('innerHTML').toLowerCase();
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence node.insert(html, 0);
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence Assert.areEqual(node._node.innerHTML.toLowerCase(),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington html + content,
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert(" + html + ", 0)");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington html = '<span>baz</span>';
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.insert(html, 1);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(node.all('> *').item(1).get('tagName'),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington 'SPAN',
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert(" + html + ", 1)");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence html = '';
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington content = node.get('innerHTML').toLowerCase();
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.insert(html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(node._node.innerHTML.toLowerCase(),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews content,
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews html = null;
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews content = node.get('innerHTML').toLowerCase();
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.insert(html);
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual(node._node.innerHTML.toLowerCase(),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews content,
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews // test fragment insertion
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews var childCount = node.get('childNodes').size();
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews html = '<q>bar</q><h2>foo</h2>';
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews content = node.get('innerHTML').toLowerCase();
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.insert(html);
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual(childCount + 2,
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.get('childNodes').size(),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual('Q',
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.get('childNodes').item(childCount).get('tagName'),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual('H2',
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.get('childNodes').item(childCount + 1).get('tagName'),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews html = '<label>foo</label><input>';
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews content = node.get('innerHTML').toLowerCase();
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.insert(html);
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual(node._node.innerHTML.toLowerCase(),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Y.Lang.trim(content + html).toLowerCase(),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews "node.insert(" + html + ")");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews node.setContent('<em>foo</em><span>bar</span>');
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node.insert('<strong>baz</strong>', node.one('span'));
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(node._node.childNodes[1].tagName, 'STRONG',
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert('<strong>bar</strong>', node.one('span')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.insert('<code>var lorem</code>', node.one('em')._node);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(node._node.childNodes[0].tagName, 'CODE',
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert('<code>var lorem</code>', node.one('em')._node)");
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington // insert Node instance
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington html = Y.Node.create('<div>foo</div>');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.insert(html, 2);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(node._node.childNodes[2], html._node,
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington "node.insert(Y.Node.create('<div>foo</div>'))");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington // insert DOM node
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence html = document.createElement('div');
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence Y.one('#test-insert-html').insert(html, 2);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(Y.one('#test-insert-html')._node.childNodes[2], html, 'node.insert(someDOMNode, 2)');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington },
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington test_inject: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = Y.one('#test-insert-html'),
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer html = '<strong>foo</strong>',
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer content = node.get('innerHTML').toLowerCase();
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node.prepend(html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(node._node.innerHTML.toLowerCase(),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer html + content,
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence "node.prepend('" + html + "')");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington html = '<em>bar</em>';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer content = node.get('innerHTML').toLowerCase();
a58d1ce3757a13356e69cbb5893b70c8a9c425c7Michael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.append(html);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(node._node.innerHTML.toLowerCase(),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer content + html,
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "node.append('" + html + "')");
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence test_getValue: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington // text
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isTrue(Y.one('input[name=test-text-value]').hasAttribute('value'),
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence 'input[name=test-text-value].hasAttribute("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isFalse(Y.one('input[name=test-text-novalue]').hasAttribute('value'),
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington 'input[name=test-text-novalue].hasAttribute("value")');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('text value',
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('input[name=test-text-value]').get('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "Y.one('input[name=test-text-value]').get('value')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('', // TODO: normalize to null?
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('input[name=test-text-novalue]').get('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "Y.one('input[name=test-text-novalue]').get('value')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington // textarea
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington // textarea doesn't use value attribute
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence //Assert.isTrue(Y.one('textarea[name=test-textarea-value]').hasAttribute('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington // 'textarea[name=test-textarea-value].hasAttribute("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isFalse(Y.one('textarea[name=test-textarea-novalue]').hasAttribute('value'),
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington 'textarea[name=test-textarea-value].hasAttribute("value")');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('textarea text',
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('textarea[name=test-textarea-textvalue]').get('value'),
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington 'textarea[name=test-textarea-textvalue].get("value")');
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.areEqual('',
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Y.one('textarea[name=test-textarea-novalue]').get('value'),
b1cde6bf3a8e3a77eb77caf97df0d7ec5c8450dfBrian Wellington 'textarea[name=test-textarea-novalue].get("value")');
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence Assert.areEqual('',
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence Y.one('textarea[name=test-textarea-value]').get('value'),
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence 'textarea[name=test-textarea-value].get("value")');
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence // button
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence Assert.isTrue(Y.one('button[name=test-button-value]').hasAttribute('value'),
ad03e9f0bb8f176a51f8c49b48c8cc3e9723cf19Brian Wellington 'textarea[name=test-button-value].hasAttribute("value")');
a64c84272dbd7dc490f276ef58e0441ed40f1e26David Lawrence
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isFalse(Y.one('button[name=test-button-novalue]').hasAttribute('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington 'textarea[name=test-button-value].hasAttribute("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('button value',
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('button[name=test-button-value]').get('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington 'button[name=test-button-value].get("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual('',
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington Y.one('button[name=test-button-novalue]').get('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington 'button[name=test-button-novalue].get("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('',
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews Y.one('button[name=test-button-textvalue]').get('value'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington 'button[name=test-button-textvalue].get("value")');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_remove: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = Y.one('#test-remove'),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer domNode = Y.DOM.byId('test-remove'),
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington parent = domNode.parentNode;
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node.remove();
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isTrue(parent !== domNode.parentNode, 'node.remove()');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington // ensure remove doesnt fail when no parent
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node = Y.Node.create('<div/>');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node.remove();
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_replace: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = Y.one('#test-replace').get('firstChild'),
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews newNode = document.createElement('div');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node.replace(newNode);
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.areEqual(newNode, Y.one('#test-replace').get('firstChild')._node, 'node.replace(domNode)');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington node = Y.one('#test-replace').get('firstChild');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington newNode = Y.Node.create('<div/>');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node.replace(newNode);
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(newNode, Y.one('#test-replace').get('firstChild'), 'node.replace()');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(newNode._node, Y.one('#test-replace').get('firstChild')._node, 'node.replace()');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_elements: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var elements = Y.one('#test-form').get('elements');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.one('#test-form').get('elements')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer },
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews test_toFrag: function() {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var frag = Y.all('#test-frag p').toFrag();
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual(11, frag.get('nodeType'), "Y.all('#test-frag p').toFrag();");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington },
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews test_aria: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('body').set('role', 'menu');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.isTrue(document.body.getAttribute('role') === 'menu', "Y.one('body').set('role', 'menu')")
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Y.one('body').set('aria-checked', true);
c03bb27f0675a6e60ceea66b451548e8481bc05cMark Andrews Assert.areEqual('true', document.body.getAttribute('aria-checked', 2), "Y.one('body').set('aria-checked', true)")
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Assert.areEqual('true', Y.one('body').getAttribute('aria-checked'), "Y.one('body').set('aria-checked', true)")
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington Assert.areEqual('true', Y.one('#foo').get('aria-checked'), "Y.one('#foo').get('aria-checked')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one('body').set('aria-checked', false);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('false', Y.one('body').get('aria-checked'), "Y.one('body').set('aria-checked', false)");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer test_plugin: function() {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.Node.plug(Y.Plugin.NodeFX);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isTrue(!!Y.Node.create('<div></div>').fx, 'Node.plug()');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.Node.unplug(Y.Plugin.NodeFX);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isFalse(!!Y.Node.create('<div></div>').fx, 'Node.unplug()');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.all('input').plug(Y.Plugin.NodeFX);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
8af0b86ade4c15a7db207bd7643f8a9f6cb5a648David Lawrence Y.all('input').each(function(n) {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isObject(n.fx, "Y.all('input').plug(Y.Plugin.NodeFX)");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer });
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.all('input').unplug(Y.Plugin.NodeFX);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.all('input').each(function(n) {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(undefined, n.fx, "Y.all('input').unplug(Y.Plugin.NodeFX)");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer });
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington test_props: function() {
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var mask = document.createElement('div');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington mask.className = 'mask';
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington document.body.appendChild(mask);
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington var doc = Y.one('document');
81dcbe87a7d6ae6fe3228bc183a8b726853dc87cBrian Wellington window.scrollTo(0,0);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer mask.style.height = doc.get('docHeight') + 'px';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer mask.style.width = doc.get('docWidth') + 'px';
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.DOM.setStyle(mask, 'opacity', 0.4);
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual('DIV', Y.one('#test-prop').get('nodeName'), 'one("test-prop")');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('test-xy', doc.one('#test-xy').get('id'), 'doc.one("#test-xy")');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.isNull(doc.one('fake-id'), 'doc.one("#fake-id")');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.areEqual(mask.offsetHeight, doc.get('docHeight'), 'get("docHeight")');
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington Assert.areEqual(mask.offsetWidth, doc.get('docWidth'), 'get("docWidth")');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington mask.className = '';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington test_refresh: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = Y.one('#test-nodes'),
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington nodelist = node.all('li');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington nodelist.item(1).remove();
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist = Y.all('#test-nodes li');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington nodelist.item(1).remove();
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer },
cd73a1c823bc9feea603803a96a9e5f5da8bf33dMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer test_one: function() {
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer var node = Y.DOM.byId('test:colon');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "Y.one(Y.DOM.byId('test:colon')).one(h2)");
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node = Y.DOM.byId('_funky:id{$400}');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "Y.one(Y.DOM.byId('_funky:id{$400}')).one(h2)");
d01a365603bce20c44f0de11fe03a41af2cefabfAndreas Gustafsson
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson node = Y.one(1);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.isNull(node, "Y.one(1)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node = Y.one(true);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.isNull(node, "Y.one(true)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node = Y.one(false);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.isNull(node, "Y.one(false)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node = Y.one(0);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isNull(node, "Y.one(0)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_all: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var node = Y.DOM.byId('test:colon');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Y.one(node).all('h2')._nodes,
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "Y.one(Y.DOM.byId('test:colon')).all(h2)");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node = Y.DOM.byId('_funky:id{$400}');
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.one(node).all('h2')._nodes,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "Y.one(Y.DOM.byId('_funky:id{$400}')).all(h2)");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington node = Y.one('body');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington ArrayAssert.itemsAreEqual([node._node], Y.all(node)._nodes,
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington "Y.all(Y.one('body'))");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence node = Y.one('win');
6417ba84400fcae1bd92e66c992e4641b515d8daAndreas Gustafsson ArrayAssert.itemsAreEqual([node._node], Y.all(node)._nodes,
6417ba84400fcae1bd92e66c992e4641b515d8daAndreas Gustafsson "Y.all(Y.one('win'))");
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington/* comparision fails in webkit, so using alert test below
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington Assert.areEqual(window, Y.all(window)._nodes[0],
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington "Y.all(window)");
0230188003d896d897ff737ff69c76c87eb7b989Michael Sawyer*/
517950ae99fa271b034a5cfec1c9fbb62696f975Mark Andrews
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isNotUndefined(Y.all(window)._nodes[0].alert,
1513eda9f00624e56f722c8e191e349c7c7d8cabBrian Wellington "Y.all(window)");
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington },
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington test_isEmpty: function() {
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isFalse(Y.all('input').isEmpty());
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington Assert.isTrue(Y.all('.nomatch').isEmpty());
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington },
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington test_siblings: function() {
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews var parent = Y.one('#test-nodes > ol'),
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews children = parent.get('children');
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington ArrayAssert.itemsAreEqual(
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington [children.item(0)._node, children.item(1)._node, children.item(3)._node],
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington children.item(2).siblings()._nodes,
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington "children.item(2).siblings()"
cd73a1c823bc9feea603803a96a9e5f5da8bf33dMichael Sawyer );
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer ArrayAssert.itemsAreEqual(
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence [children.item(0)._node, children.item(1)._node, children.item(3)._node],
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington children.item(2).siblings('li')._nodes,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "children.item(2).siblings('li')"
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer );
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington children.addClass('bar');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer children.item(1).removeClass('bar');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence ArrayAssert.itemsAreEqual(
3b7ddac82abc190861f663beb5b890d110e9010dBrian Wellington [children.item(0)._node, children.item(3)._node],
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer children.item(2).siblings('li.bar')._nodes,
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer "children.item(2).siblings('li.bar')"
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington );
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer test_swap: function() {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var elements = Y.DOM.byId('test-swap').getElementsByTagName('li'),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodes = Y.all('#test-swap li');
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington Assert.areEqual(elements[0], nodes.item(0)._node);
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington nodes.item(0).swap(nodes.item(3));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(elements[0], nodes.item(3)._node, "nodes.item(0).swap(nodes.item(3))");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodes.item(0).swap(nodes.item(3));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(elements[0], nodes.item(0)._node);
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Assert.areEqual(elements[3], nodes.item(3)._node);
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer nodes.item(1).swap(nodes.item(2));
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence Assert.areEqual(elements[1], nodes.item(2)._node);
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence nodes.item(1).swap(nodes.item(2));
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Assert.areEqual(elements[1], nodes.item(1)._node);
dbc41c829031c1ba7a4bade35b10474fab02b0a1Brian Wellington Assert.areEqual(elements[2], nodes.item(2)._node);
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer },
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer test_data: function() {
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington var node = Y.one('body');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
09de21079e902c7356d936ef4f2a31060b36e5f3Brian Wellington // deprecated usage
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer node.set('data', 'foo');
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Assert.areEqual('foo', node.get('data'),
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer "node.set('data', 'foo')");
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer node.setData('foo', 'foo');
6850cdd4497424c9d42ade487edfde9fb9a47de9Brian Wellington Assert.areEqual('foo', node.getData('foo'),
6850cdd4497424c9d42ade487edfde9fb9a47de9Brian Wellington "node.setData('foo', 'foo')");
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
09de21079e902c7356d936ef4f2a31060b36e5f3Brian Wellington node.setData({'bar': 'bar', 'baz': 'baz'});
09de21079e902c7356d936ef4f2a31060b36e5f3Brian Wellington Assert.areEqual('bar', node.getData('bar'),
a04a6cbacaac97b9ca51326ff470588e316464e7Brian Wellington "node.setData({'bar': 'bar', 'baz': 'baz'})");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('baz', node.getData('baz'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "node.setData({'bar': 'bar', 'baz': 'baz'})");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.clearData('bar');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(undefined, node.getData('bar'),
ef5d6f22e2aeafeb1690418930119343c4de5b18Andreas Gustafsson "node.clearData('bar')");
ef5d6f22e2aeafeb1690418930119343c4de5b18Andreas Gustafsson
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('baz', node.getData('baz'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "node.clearData('bar')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.clearData();
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(undefined, node.getData('baz'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "node.clearData()");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer test_appendStyle: function() {
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer var html = '<style>body {height:100px}</style>';
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington Y.one('head').append(html);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('100px', Y.one('body').getStyle('height'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "Y.one('head').append(" + html + ")");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
0c21ac7de13161088584d9f13bedb684ea9203f6Michael Sawyer test_ancestor: function() {
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer var node = Y.one('#test-table div div').ancestor('td');
0c21ac7de13161088584d9f13bedb684ea9203f6Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Y.Assert.areEqual(byId('test-td'), node._node,
9e72582b8ebdbc27af7bce9ebdd9be7b97b259b8Brian Wellington "Y.one('#test-table div').ancestor('td'))");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer 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>');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var inner = node.one('.inner');
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews inner.ancestor('td');
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews },
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer test_nodelistEvent: function() {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer var nodelist = Y.all('div'),
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer item = nodelist.item(0),
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer evtObj = {
835658d2bee884e0ac619ee4519172050dee3800Brian Wellington mousedown: function(e, foo, bar) {
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual('foo', foo, "foo === 'foo'");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('bar', bar, "bar === 'bar'");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer }
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer };
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington nodelist.on('click', function(e) {
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Assert.areEqual(this, nodelist);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer });
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Y.on(evtObj, null, nodelist, null, 'foo', 'bar');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.on(evtObj, null, null, 'foo', 'bar');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.on({mouseup: true}, function(e) {
835658d2bee884e0ac619ee4519172050dee3800Brian Wellington Assert.areEqual(this, nodelist);
835658d2bee884e0ac619ee4519172050dee3800Brian Wellington Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews });
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews nodelist.on({mouseup: function(e) {
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual(this, nodelist);
9785f602c81189f0b8346c5bcad85d8a7f763bfaMark Andrews Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington }});
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.on({keydown: true}, function(e) {
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(this, nodelist.item(0));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer }, item);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.on({keydown: true}, function(e) {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(this, nodelist.item(0));
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington }, item);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
88a6fef4944a00d8350ffd8b64ef58c694b8335eMark Andrews
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington nodelist.after('click', function(e) {
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(this, nodelist);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington });
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Y.after(evtObj, null, nodelist, null, 'foo', 'bar');
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington nodelist.after(evtObj, null, null, 'foo', 'bar');
2de31518c3da27092120b40fc373cecf600d64e6Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.after({mouseup: true}, function(e) {
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual(this, nodelist);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence });
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer nodelist.after({keydown: true}, function(e) {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual(this, nodelist.item(0));
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('DIV', e.currentTarget.get('nodeName'), "e.currentTarget.get('nodeName')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington }, item);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington item.simulate('mousedown');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington item.simulate('click');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington item.simulate('mouseup');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington item.simulate('keydown');
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington },
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington test_size: function() {
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence var node = Y.one('#doc'),
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington height = node._node.offsetHeight,
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington width = node._node.offsetWidth;
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.set('offsetHeight', 1000);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington node.set('offsetWidth', 800);
843ede41fdc2555030ba1529c708e158059b22b1Michael Sawyer
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington Assert.areEqual(1000, node.get('offsetHeight'),
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington "node.set('offsetHeight')");
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
cd73a1c823bc9feea603803a96a9e5f5da8bf33dMichael Sawyer Assert.areEqual(800, node.get('offsetWidth'),
2de31518c3da27092120b40fc373cecf600d64e6Brian Wellington "node.set('offsetWidth')");
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.set('offsetWidth', -100);
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.set('offsetHeight', -100);
54b9dc7739090bf3f3822f9852c48bcbe24492fbBrian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.areEqual('0px', node.getStyle('height'),
d9d2eb181b7377c630d2fe21e2bb141fde4a0cecDavid Lawrence "node.get('offsetHeight')");
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer Assert.areEqual('0px', node.getStyle('width'),
6850cdd4497424c9d42ade487edfde9fb9a47de9Brian Wellington "node.get('offsetWidth')");
6850cdd4497424c9d42ade487edfde9fb9a47de9Brian Wellington
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.setStyle('height', '');
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer node.setStyle('width', '');
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(height, node.get('offsetHeight'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "node.get('offsetHeight')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual(width, node.get('offsetWidth'),
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer "node.get('offsetWidth')");
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer test_select: function() {
f6b507b4c94e39d852fecc1a3140c220ede3d3ecAndreas Gustafsson var select = Y.Node.create('<select>');
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.areEqual('', select.get('value'));
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer },
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer test_destroy: function() {
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer var node = Y.Node.create('<div><em>foo</em><strong>bar</strong></div>');
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer nodes = node.all('em, strong');
ba6ea42c3605f3dd5f858edac9c7887a82eb7bb2Brian Wellington
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer node.destroy();
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer Assert.isNull(node._node);
62bdc8a738a26f3a427691cde39e0d9e9e38e458Michael Sawyer
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer },
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington test_prependFrag: function() {
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington var html = '<link id="dyn-link-1" href="#"><link id="dyn-link-2" href="#">';
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.one('head').prepend(html);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington //Y.one('head').prepend(Y.Node.create(html));
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isNotNull(document.getElementById('dyn-link-1'));
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Assert.isNotNull(document.getElementById('dyn-link-2'));
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington }
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington }));
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.Test.Runner.add(suite);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington Y.on('load', function() {
2ca0be2bb8d2ae726cebb6a45d8fd2eebd0c1033Michael Sawyer Y.Test.Runner.run();
51e09bf791b4d3a6fd76f752df3f47d05ef6becdMichael Sawyer }, window);
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington});
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington</script>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington</body>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington</html>
ea32d34e58cc4f6104004d06fa35367e580b8103Brian Wellington