node.html revision 9d45ad92322b7cd4b0c8d8f87d29b534410c6ddb
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<html>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<head>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<title>Node Test Suite</title>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<script type="text/javascript" src="/build/yui/yui.js"></script>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<style type="text/css">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncbody {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync font:13px/1.22 arial;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width:1000px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#doc {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync min-height:200px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#get-style {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync background:#ccc;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync float:left;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync font-size:10px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync height:10em;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync padding:15px 0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width:200px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync.mask {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync background:#ccc;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync position:absolute;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync top:0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync left:0;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync overflow:hidden;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#test-xy {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync background:green;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync position:absolute;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync height:10px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width:10px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#test-computed {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync position:relative;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width:50%;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync margin:auto;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync padding:10px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync z-index: 2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#test-scroll {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync height: 100px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width: 100px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync overflow:auto;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#test-scroll p {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync height:1000px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync width:1000px;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncbutton {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync display:block;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync.yui-skin-sam .yui-console-entry-pass .yui-console-entry-cat {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync background: #070;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync color: #fff;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync.yui-skin-sam .yui-console-entry-fail .yui-console-entry-cat {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync background: #700;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync color: #fff;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync</style>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync</head>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<body class="yui-skin-sam">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-append"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-xy"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-remove"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-replace"><p>replace me</p></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-scroll">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <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>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-frag">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <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>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <p>Lorem ipsum dolor <em>sit</em>.</p>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="doc" class="doc-wrap">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <a href="http://www.yahoo.com/foo" id="link-1">Yahoo!</a>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <a href="foo.html" id="link-2" tabIndex="-1">foo</a>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <form id="test-form" class="test-class" action="#">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <label for="test-text-value"><em>label</em></label>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <input name="test-text-value" value="text value">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <input name="test-text-novalue">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <textarea name="test-textarea-value" value="textarea value"></textarea>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <textarea name="test-textarea-novalue"></textarea>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <textarea name="test-textarea-textvalue">textarea text</textarea>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <button name="test-button-value" value="button value">button</button>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <button name="test-button-novalue"></button>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <button name="test-button-textvalue">button text</button>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </form><div id="test-class">test class</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-prop" tabindex="4">text<em id="test-contains">test<span></span></em><strong>node</strong></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="set-style"><div class="bar" id="bar">setStyle</div>foo<div>blah</div></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="get-style">getStyle</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="baz">baz</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync text
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-extras">extras</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-children">foo <span>bar</span> <strong>baz</strong> </div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-empty-children"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="inline-style" style="color: green">inline style</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="foo" aria-checked="true"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-computed">test computed style</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <form id="form.foo@bar:baz">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <select id="test-select" name="test-select">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <option value="0">foo</option>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <option value="1">bar</option>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <option>baz</option>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </select>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </form>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <div id="test-nodes">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <ul>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 1</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 2</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 3</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 4</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </ul>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <ol>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li class="bar">item 1</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 2</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 3</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li class="bar">item 4</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </ol>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <ol>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 1</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 2</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 3</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 4</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync </ol>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<iframe src="test-frame.html"></iframe>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<div id="test-insert-html">foo</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<div id="test:colon">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <h2>test</h2>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<ol id="test-swap">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 1</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 2</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 3</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <li>item 4</li>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync</ol>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<div id="_funky:id{$400}">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync <h2>test</h2>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync</div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<div id="yui-log"></div>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync<script type="text/javascript">
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncYUI({base: '/build/', filter: 'raw'}).use('anim', 'console', 'test', function(Y) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var Assert = Y.Assert,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert = Y.ArrayAssert,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync suite = new Y.Test.Suite("yuisuite");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync window.Y = Y; // export Y global for Selenium
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync new Y.Console({node: '#yui-log', height: '50em' }).render('#yui-log');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var byId = function(id) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return document.getElementById(id);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync };
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var $ = Y.Selector.query;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync suite.add( new Y.Test.Case({
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync name: 'Y.Node Instance',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_get: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.get('#test-nodes'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = Y.all('#test-nodes *');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // return null
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.one("a[href$='?t=5']");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.get(''), 'Y.get("")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.get(null), 'Y.get(null)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.get('#fake-id'), 'Y.get("#fake-id") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.get('#fake-id li'), 'Y.get("#fake-id li") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // return zero length collection
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue((Y.all('') instanceof Y.NodeList), 'Y.all("") instanceof NodeList');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue((Y.all('null') instanceof Y.NodeList), 'Y.all("null") instanceof NodeList');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue((Y.all('#foo *') instanceof Y.NodeList), 'Y.all("#foo *") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // return 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').id, Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes'), Y.Node.getDOMNode(Y.get('#test-nodes')), 'Y.get("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('test-nodes', Y.get('#test-nodes').get('id'), 'Y.get("#test-nodes").get("id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node, Y.get('#test-nodes'), 'node === Y.get("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[0],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.getDOMNode(Y.get('#test-nodes li:first-child')), 'Y.get("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').getElementsByTagName('li')[1],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.getDOMNode(Y.get('#test-nodes li:nth-child(2)')), 'Y.get("#test-nodes:nth-child(2)")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(document.getElementById('form.foo@bar:baz'), Y.Node.getDOMNode(Y.get('[id="form.foo@bar:baz"]')), "[id=form.foo@bar:baz]");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var firstChild = Y.get('body :first-child');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('body').insertBefore(Y.Node.create('<div>foo</div>'), firstChild);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(firstChild._node === Y.get('body :first-child')._node, "wrong node: Y.get('body :first-child')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('body').removeChild(Y.get('body :first-child'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(Y.Selector.query('body :first-child', null, true), Y.get('body :first-child')._node, "body :first-child === #test-append");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // return more than 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual($('#test-select option'), Y.NodeList.getDOMNodes(Y.all('#test-select option')), 'Y.get("#test-select option")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(3, Y.all('#test-select option').size(), 'Y.get("#test-select option").size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(2, Y.all('form').size(), 'Y.get("form").size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('FORM', Y.all('form').item(1).get('tagName'), 'Y.get("form").item(1)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(3, Y.all('.bar').size(), 'Y.get(".bar")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areNotEqual(nodes, Y.all('#test-nodes *'), 'nodes === Y.all("#test-nodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(nodes.size(), Y.all('#test-nodes *').size(), 'nodes.size() === Y.all("#test-nodes").size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual(Y.Selector.query('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Firefox fails due to Firebug pollutes document.queryAll but not document.getElementsByTagName
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //ArrayAssert.itemsAreEqual(document.getElementsByTagName('div'), Y.all(Y.Selector.query('div'))._nodes, "Y.all(Y.Selector.query('div'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual(Y.Selector.query('input[name]'), Y.all(Y.Selector.query('input[name]'))._nodes, "Y.all(Y.Selector.query('input[name]'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual(Y.Selector.query('.foo'), Y.all(Y.Selector.query('.foo'))._nodes, "Y.all(Y.Selector.query('.foo'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var frameDoc = Y.get('iframe').get('contentWindow.document');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('iframe foo', Y.Lang.trim(frameDoc.query('#demo li').get('innerHTML')),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "frameDoc.query('#demo li').get('innerHTML')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual([document.body], Y.all(document.body)._nodes, "Y.all(document.body)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_each: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var count = 0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = Y.all('#test-nodes *'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync index;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.each(function(node, i, list) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync count++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync index = i;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(nodes, list, 'nodes === instance');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node instanceof Y.Node, 'node instanceof Y.Node');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node, this, 'this === node');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync });
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(count, nodes.size(), 'node.each(count) === nodes.size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(nodes.size() - 1, index, 'nodes.size() - 1 === index');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_some: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var nodes = Y.all('#test-nodes *'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync index, instance, isNode;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(nodes.some(function(node, i, list) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return true;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }), 'nodes.some(function() { return true; })');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(nodes.some(function(node, i, list) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }), 'nodes.some(function() {})');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_indexOf: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(0, Y.all('body').indexOf(Y.get('body')),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.all('body').indexOf(Y.get('body'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(0, Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0])),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.all('div').indexOf(Y.one(document.getElementsByTagName('div')[0]))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-')),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.all('div').indexOf(Y.get('#test-'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(-1, Y.all('div').indexOf(Y.get('#test-form')),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.all('div').indexOf(Y.get('#test-form'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_getters: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-nodes',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element = byId(id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.get('#' + id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = Y.all('#' + id + ' *');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(null, node.get(''), 'node.get("") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(null, node.get('fake'), 'node.get("fake") === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(null, node.get('nodeValue'), 'nodeValue === null');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('DIV', node.get('nodeName'), 'nodeName === "DIV"');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('UL', nodes.get('nodeName')[0], 'nodeName === "UL"');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('LI', nodes.get('nodeName')[nodes.size() - 1], 'nodeName === "LI"');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.firstChild.nextSibling.nodeName, node.get('firstChild').get('nextSibling').get('nodeName'), 'node.firstChild.nextSibling.nodeName"');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.lastChild.nodeName, node.get('lastChild').get('nodeName'), 'lastChild.nodeName"');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(9, node.get('ownerDocument').get('nodeType'), 'node.ownerDocument.nodeType === 9');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('test-nodes', nodes.get('parentNode').get('id')[0], 'nodes.get(parentNode)[0].get("id") === test-nodes');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.firstChild.nodeType, node.get('firstChild').get('nodeType'), 'firstChild.get("nodeType")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.offsetWidth, node.get('offsetWidth'), 'offsetWidth === node.offsetWidth');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.offsetParent.tagName, node.get('offsetParent').get('tagName'), 'offsetParent.tagName === offsetParent.tagName');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('item 1', Y.Lang.trim(nodes.get('children')[0].get('text')[0]), 'nodes.get("children")[0].get("text")[0]');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var textContainer = Y.Node.create('<div>foo</div>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo', textContainer.get('text'), "textContainer.get('text')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync textContainer.set('text', 'bar');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('bar', textContainer.get('text'), "textContainer.set('text', 'bar')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual($('#test-select option'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.NodeList.getDOMNodes(Y.get('#test-select').get('options')),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'Y.get("#test-select.get("options")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(2, node.get('children').size(), 'get("children")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(0, Y.one('#test-empty-children').get('children').size(), "Y.one('#test-empty-children').get('children')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(8, Y.all('#' + id + ' li').size(), 'Y.all("#test-nodes li.size()")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // size() is deprecated on Node
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //Assert.areEqual(1, Y.get('#' + id + ' li').size(), 'Y.get("#test-nodes li.size()")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').size(), 'node.get("childNodes").size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('tagName').length, 'node.get("childNodes")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual(byId('test-nodes').childNodes.length, node.get('childNodes').get('length').length, "node.get('childNodes').get('length')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.lastChild.nodeName, node.get('lastChild.nodeName'), 'node.get("lastChild.nodeName")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.lastChild.previousSibling.nodeName, node.get('lastChild').get('previousSibling').get('nodeName'), 'node.lastChild.previousSibling.nodeName');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('test', Y.get('#test-prop').get('firstChild.nextSibling.firstChild.nodeValue'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'node.get("firstChild.nextSibling.firstChild.nodeValue")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-prop').tabIndex, Y.get('#test-prop').get('tabIndex'), 'Y.get("#test-prop").get("tabIndex")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('doc').tabIndex, Y.get('#doc').get('tabIndex'), 'Y.get("#doc".get("tabIndex"))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('link-1').tabIndex, Y.get('#link-1').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('link-2').tabIndex, Y.get('#link-2').get('tabIndex'), 'Y.get("#link1".get("tabIndex"))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(undefined, Y.get('form').get('childNodes')._nodes.item, 'convert live list to static');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.all('input').get('parentNode') instanceof Y.NodeList, "Y.all('input').get('parentNode')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_create: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-nodes',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element = byId(id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.get('#' + id);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('fresh', node.create('<div id="fresh">fresh</div>').get('id'), 'node.create from string)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.Node.create('<select><option>foo</option></select>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var option = Y.Node.create('<option>bar</option>').set('selected', 'selected');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.appendChild(option);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.Node.getDOMNode(option).selected, "Y.Node.create('<option>test</option>').set('selected', 'selected'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var html = '<li><a href=""></a></li>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.Node.create(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('A', node.get('firstChild.tagName'), html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = 'baz';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.Node.create(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('3', node.get('nodeType'), "node.get('nodeType')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('3', Y.Node.getDOMNode(node).nodeType, "Y.Node.getDOMNode(node).nodeType");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<div>bar</div>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.Node.create(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('3', node.get('firstChild.nodeType'), "node.get('firstChild.nodeType')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('3', node.get('firstChild').get('nodeType'), "node.get('firstChild').get('nodeType')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('3', Y.Node.getDOMNode(node.get('firstChild')).nodeType, "Y.Node.getDOMNode(node.get('firstChild')).nodeType");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insertBefore(Y.Node.create('foo'), node.get('firstChild'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foobar', node.get('innerHTML'), "node.get('innerHTML')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foobar', node.get('text'), "node.get('text')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_setter: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-prop',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element = byId(id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.get('#' + id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = Y.all('#test-nodes *');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var childNodes = Y.get('body').get('childNodes');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync childNodes.set('title', 'foo bar');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(byId('test-nodes').title == 'foo bar', 'Y.get("body").get("childNodes").set("title")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.set('foo', 'foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isUndefined(node.get('foo'), 'node.get("foo")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.set('title', 'my title');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('my title', Y.Node.getDOMNode(node).title, 'node.title)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('my title', node.get('title'), 'node.set("title")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.set('className', 'foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo', Y.NodeList.getDOMNodes(nodes)[0].className, 'node.className');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo', nodes.get('className')[2], 'node.get("className")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo', nodes.item(nodes.size() - 2).get('className'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'nodes.item(nodes.size - 2).get("className")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var attrMap = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync className: 'fooclass',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync title: 'new title'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync };
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setAttrs(attrMap);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var getAttrs = node.getAttrs(['className', 'title']);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(attrMap.className, getAttrs.className, 'node.setAttrs(attrMap) (get className)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(attrMap.title, getAttrs.title, 'node.setAttrs(attrMap) (get title)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-select').set('selectedIndex', 2);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(2, Y.get('#test-select')._node.selectedIndex,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-select').set('selectedIndex', 2)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('body > form').set('test-select.selectedIndex', 2);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(2, byId('test-select').selectedIndex,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'Y.get("body > form").set("test-select.selectedIndex", 2)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var index = Y.get('#test-select').query('option[value=1]').set('selected', true);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(1, Y.get('#test-select')._node.selectedIndex,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-select').set('selectedIndex', 1)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.one('#test-select').set('value', 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(1, Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.one('#test-select').set('value', 'baz');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('baz', Y.one('#test-select').get('value'), "Y.one('#test-select').set('value', 1)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_dom_methods: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-prop';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = byId(id);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var parent = Y.Node.get(element.parentNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.Node.get('#test-prop');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasMethod('appendChild'), "node.hasMethod('appendChild')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //Assert.isTrue(element === Y.get(node), 'element === Y.get(node)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element.getElementsByTagName('em')[0].nodeName, node.getElementsByTagName('em').item(0).get('nodeName'), 'getElementsByTagName');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var insertNode = document.createElement('div');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.stamp(insertNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync insertNode.innerHTML = 'inserted node';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('body').appendChild(Y.get('div'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.get('body').get('lastChild').compareTo(Y.get('#test-append')), 'get("body").appendChild(Y.get("#test-append"))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-append'), Y.Node.getDOMNode(Y.get('body').get('lastChild')), 'get("body").appendChild(Y.get([0]"#test-append"))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('inserted node', node.appendChild(insertNode).get('innerHTML'), 'appendChild(element input)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('inserted node', node.removeChild(insertNode).get('innerHTML'), 'removeChild(element input)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('inserted node', node.appendChild(Y.get(insertNode)).get('innerHTML'), 'appendChild(Node input)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('inserted node', node.removeChild(Y.get(insertNode)).get('innerHTML'), 'removeChild(Node input)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var clone = node.cloneNode();
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node === clone, 'node === node.cloneNode()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(1, clone.get('nodeType'), 'cloneNode()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // TODO: test deep clone with bound descendant
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.get('childNodes').size() === node.cloneNode(true).get('childNodes').size(), 'node.get("childNodes").size() === node.cloneNode(true).get("childNodes").size()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.one('.bar').test('.bar'), "Y.one('.bar').test('.bar')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync clone = Y.one('.bar').cloneNode(true);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(clone.hasClass('bar'), "clone.hasClass('bar') (before appending)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.one('body').appendChild(clone);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(clone.test('.bar'), "clone.test('.bar') (after appending)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.create('<div id="foo" class="bar"></div>').test('.bar'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('.bar')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.create('<div id="foo" class="bar"></div>').test('#foo.bar'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.Node.create('<div id=\"foo\" class=\"bar\"></div>').test('#foo.bar')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasChildNodes(), 'hasChildNodes()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.compareTo(node), 'compareTo(node)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.compareTo(Y.Node.get(node)), 'compareTo(new Y.Node)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.compareTo(null), 'compareTo(null)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.create('<p>foo</p>').inDoc(), 'node.inDoc()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.contains(byId('test-contains')), 'contains()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.contains(node), 'contains() self');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.contains(element), 'contains() self');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.contains(document.getElementsByTagName('div')), 'contains() false positive for collection');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('doc', node.ancestor(function(el) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return el.get('id') === 'doc';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }).get('id'), 'ancestor');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node.ancestor(), node.get('parentNode'), "node.ancestor()");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(node.ancestor(function(el) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return el.getAttribute('foo') !== '';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }), 'ancestor');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node.get('parentNode'), node.ancestor('div'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node, node.ancestor('div', true));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('test-class', node.previous().get('id'), 'node.previous()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.get(document.body).inDoc(document));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.inDoc(), 'node.inDoc()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.inDoc(document), 'node.inDoc(document)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.inDoc(Y.get(document)), 'node.inDoc(Y.get(document))');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(byId('test-contains'), Y.Node.getDOMNode(node.getById('test-contains')), 'node.getById("test-contains")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasAttribute('id'), 'node.hasAttribute("id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasAttribute('title'), 'node.hasAttribute("title")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.hasAttribute('foo'), 'node.hasAttribute("foo")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.removeAttribute('tabIndex');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.hasAttribute('tabIndex'), 'node.hasAttribute("tabIndex") (false)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node.getAttribute('tabIndex'), node.get('tabIndex'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.getAttribute('tabIndex') === node.get('tabIndex')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(Y.get('body').hasAttribute('title'), 'body.hasAttribute("title")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('0', Y.get('select[name=test-select] option:nth-child(1)').getAttribute('value'), 'option1.getAttribute("value") (from innerText)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('1', Y.get('select[name=test-select] option:nth-child(2)').getAttribute('value'), 'option2.getAttribute("value") (from innerText)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('', Y.get('select[name=test-select] option:nth-child(3)').getAttribute('value'), 'option3.getAttribute("value") (from innerText)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('http://www.yahoo.com/foo', Y.get('#link-1').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo.html', Y.get('#link-2').getAttribute('href'), "Y.get('#link1').getAttribute('href')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_fragment: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var frag = Y.get('document').invoke('createDocumentFragment'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element = byId('test-append');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync frag.appendChild(element);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(element, Y.Node.getDOMNode(frag.get('firstChild')), 'frag.appendChild()');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('body').appendChild(frag);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_screen: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-prop';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = byId(id);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var parent = Y.Node.get(element.parentNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.Node.get(element);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var newNode = Y.Node.create('<div id="brand-new-foo">foo</div>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(document.documentElement.scrollLeft, newNode.get('docScrollX'), 'newNode.get("docScrollX")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(document.documentElement.scrollTop, node.get('docScrollY'), 'node.get("docScrollY")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.one('#test-xy');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setXY([100, 100]);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var xy = node.getXY();
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var x = Math.round(xy[0]);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var y = Math.round(xy[1]);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual([100, 100], [x, y], 'Node.getXY("foo", "bar")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_region: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.DOM.inRegion(byId('baz'), byId('doc')), 'DOM.inRegion(domNode, domNode)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.Node.get('#get-style').inRegion(byId('doc')), 'node.inRegion(domNode)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.Node.get('#get-style').inRegion(Y.Node.get('#doc')), 'node.inRegion(Node)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ArrayAssert.itemsAreEqual(Y.DOM.region(Y.DOM.byId('doc')), Y.Node.get('#doc').get('region'), 'node.get("region")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_classes: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-class';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = byId(id);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var parent = Y.Node.get(element.parentNode);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.Node.get(element);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.get('previousSibling').hasClass('test-class'), 'node.get("previousSibling").hasClass("test-class")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.addClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('foo', element.className, 'node.addClass("foo")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.removeClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('', element.className, 'node.removeClass("foo")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.addClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.Node.get('body').get('childNodes').addClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(byId('test-class').className == 'foo', 'NodeList.addClass');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.replaceClass('foo', 'bar');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('bar', element.className, 'Node.replaceClass("foo", "bar")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var nodes = Y.all('#test-nodes li');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.addClass('foo').addClass('bar');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.each(function(n) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(n.hasClass('foo'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(n.hasClass('bar'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync });
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.removeClass('bar');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.each(function(n) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(n.hasClass('bar'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync });
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.DOM.create('<div></div>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.addClass(node, 'foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.replaceClass('foo', 'foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.DOM.hasClass(node, 'foo'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_toggle: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.one('#test-class');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.toggleClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.toggleClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.toggleClass('foo', false);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isFalse(node.hasClass('foo'), "node.toggleClass('foo', false)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.toggleClass('foo');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.toggleClass('foo', true);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(node.hasClass('foo'), "node.toggleClass('foo', true)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_setStyle: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = byId('set-style'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.Node.get(element),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = node.get('childNodes');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('width', '20em');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('20em', element.style.width, "setStyle('width' '20em')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('marginTop', '1em');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('1em', element.style.marginTop, "setStyle('marginTop','1em')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('opacity', 0.5);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(0.5, node.getStyle('opacity'), "setStyle('opacity', 0.5)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('float', 'left');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('float', 'left');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('left', node.getStyle('float'), "setStyle('float', 'left')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes.setStyle('marginTop', '1em');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('1em', nodes.getStyle('marginTop')[2], "setStyle('marginTop', '1em'");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_getStyle: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.Node.get('#get-style');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('opacity', 0.5);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(0.5, node.getStyle('opacity'), "node.getStyle('opacity')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('left', node.getStyle('float'), "node.getStyle('float')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('100px', node.getStyle('height'), "getStyle('height')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('200px', node.getStyle('width'), "getStyle('width)'");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('visible', node.getStyle('visibility'), "visibility");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('visibility', 'hidden');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('hidden', node.getStyle('visibility'), "visibility");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setStyle('visibility', 'visible');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_getComputedStyle: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.get('#test-computed');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var domNode = byId('test-computed');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.style.zoom = 1;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.style.border = 'medium solid #000';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var bw = (Y.UA.ie) ? 4 : 3;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var h = node.get('offsetHeight') - 20 - 2 * bw;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(bw + 'px', node.getComputedStyle('borderTopWidth'), "borderTopWidth: medium");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(h, Math.round(parseFloat(node.getComputedStyle('height'))), "height: auto (offset minus padding and border)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.style.padding = '1em';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('13px', node.getComputedStyle('paddingTop'), "padding 10em");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('visible', node.getComputedStyle('visibility'), "visibility");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.parentNode.style.visibility = 'hidden';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('hidden', node.getComputedStyle('visibility'), "visibility");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.parentNode.style.visibility = 'visible';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(2, node.getComputedStyle('zIndex'), 'node.getComputedStyle("zIndex")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('500px', node.getComputedStyle('width'), "percent width (from CSS)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync domNode.style.margin = 'auto';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('0px', node.getComputedStyle('marginTop'), "margin auto");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_setStyles: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = byId('set-style');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = Y.Node.get(node);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element.setStyles({
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'top': '5px',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'right': '10em'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync });
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue( (node.style.top == '5px' && node.style.right == '10em'), "setStyles()");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_selector: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var id = 'test-prop',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element = byId(id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node = Y.get('#' + id),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync parent = Y.Node.get(element.parentNode),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync nodes = Y.all('#test-nodes *');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Selector methods
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(Y.Node.get(document.body).query("#fake-id"), 'body.query("#fake-id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.Node.get(node).test('#' + id), 'node.test( "#id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(parent.query("#fake-id"), 'parent.query("#fake-id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(id, parent.query('#' + id).get('id'), 'parent.query("#id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(id, parent.query('#' + id).get('id'), 'parent.query("#id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNull(parent.query('#text-xy'), 'parent.query("test-xy")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(id, parent.queryAll('#' + id).item(0).get('id'), 'parent.queryAll(node, "#id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(id, parent.queryAll('#' + id).item(0).get('id'), 'parent.queryAll(node, "#id")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_window: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var win = Y.get(window);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(window, Y.Node.getDOMNode(win), 'Y.get(window)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(document, Y.Node.getDOMNode(win.get('document')), 'win.get(document)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //Assert.areEqual(window, Y.Node.getDOMNode(Y.get('document').get('defaultView')), 'win.get(document)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_windowSize: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isNotNull(Y.get('body').get('winHeight'), 'body.get("winHeight")');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_scroll: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-scroll').set('scrollTop', 100);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-scroll').set('scrollLeft', 200);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(100, byId('test-scroll').scrollTop, 'test-scroll.set("scrollTop", 100)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(200, byId('test-scroll').scrollLeft, 'test-scroll.set("scrollLeft", 200)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync document.body.style.height = '5000px';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync document.body.style.width = '5000px';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get(window).set('scrollTop', 100);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get(window).set('scrollLeft', 200);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(100, Y.DOM.docScrollY(window), 'window.set("scrollTop", 100)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(200, Y.DOM.docScrollX(window), 'window.set("scrollLeft", 200)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get(document).set('scrollTop', 200);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get(document).set('scrollLeft', 100);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(200, Y.DOM.docScrollY(document), 'document.set("scrollTop", 200)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(100, Y.DOM.docScrollX(document), 'document.set("scrollLeft", 100)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync document.body.style.height = '';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync document.body.style.width = '';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync window.scrollTo(0, 0);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_setContent: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var content = '<strong>foo</strong>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(content);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(" + content + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(Y.Node.create(content));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(Y.Node.create(" + content + "))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = '<strong>foo</strong><em>bar</em>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(Y.Node.create(content));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(Y.Node.create(" + content + "))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var element = document.createElement('strong');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync element.innerHTML = 'bar';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = '<strong>bar</strong>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(element);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(element)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = '';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(content);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(" + content + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = null;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').setContent(content);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual('',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.DOM.byId('test-insert-html').innerHTML.toLowerCase(),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Y.get('#test-insert-html').setContent(" + content + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_insert: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.get('#test-insert-html'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<strong>foo</strong>',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content + html,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert('" + html + "')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<em>bar</em>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html, 0);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html + content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ", 0)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<span>baz</span>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html, 1);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node.all('> *').item(1).get('tagName'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 'SPAN',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ", 1)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = null;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // test fragment insertion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<a>bar</a><h2>foo</h2>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content + html,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ")");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<label>foo</label><input>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html, 0);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html + content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(" + html + ", 0)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.setContent('<em>foo</em><span>bar</span>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert('<strong>baz</strong>', node.one('span'));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.childNodes[1].tagName, 'STRONG',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert('<strong>bar</strong>', node.one('span')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert('<code>var lorem</code>', node.one('em')._node);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.childNodes[0].tagName, 'CODE',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert('<code>var lorem</code>', node.one('em')._node)");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // insert Node instance
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = Y.Node.create('<div>foo</div>');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.insert(html, 2);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.childNodes[2], html._node,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.insert(Y.Node.create('<div>foo</div>'))");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // insert DOM node
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = document.createElement('div');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Y.get('#test-insert-html').insert(html, 2);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(Y.get('#test-insert-html')._node.childNodes[2], html, 'node.insert(someDOMNode, 2)');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_inject: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync var node = Y.get('#test-insert-html'),
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<strong>foo</strong>',
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.prepend(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html + content,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.prepend('" + html + "')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync html = '<em>bar</em>';
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content = node.get('innerHTML');
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync node.append(html);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.areEqual(node._node.innerHTML,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync content + html,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "node.append('" + html + "')");
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync test_getValue: function() {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // text
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Assert.isTrue(Y.get('input[name=test-text-value]').hasAttribute('value'),
'input[name=test-text-value].hasAttribute("value")');
Assert.isFalse(Y.get('input[name=test-text-novalue]').hasAttribute('value'),
'input[name=test-text-novalue].hasAttribute("value")');
Assert.areEqual('text value',
Y.get('input[name=test-text-value]').get('value'),
"Y.get('input[name=test-text-value]').get('value')");
Assert.areEqual('', // TODO: normalize to null?
Y.get('input[name=test-text-novalue]').get('value'),
"Y.get('input[name=test-text-novalue]').get('value')");
// textarea
// textarea doesn't use value attribute
//Assert.isTrue(Y.get('textarea[name=test-textarea-value]').hasAttribute('value'),
// 'textarea[name=test-textarea-value].hasAttribute("value")');
Assert.isFalse(Y.get('textarea[name=test-textarea-novalue]').hasAttribute('value'),
'textarea[name=test-textarea-value].hasAttribute("value")');
Assert.areEqual('textarea text',
Y.get('textarea[name=test-textarea-textvalue]').get('value'),
'textarea[name=test-textarea-textvalue].get("value")');
Assert.areEqual('',
Y.get('textarea[name=test-textarea-novalue]').get('value'),
'textarea[name=test-textarea-novalue].get("value")');
Assert.areEqual('',
Y.get('textarea[name=test-textarea-value]').get('value'),
'textarea[name=test-textarea-value].get("value")');
// button
Assert.isTrue(Y.get('button[name=test-button-value]').hasAttribute('value'),
'textarea[name=test-button-value].hasAttribute("value")');
Assert.isFalse(Y.get('button[name=test-button-novalue]').hasAttribute('value'),
'textarea[name=test-button-value].hasAttribute("value")');
Assert.areEqual('button value',
Y.get('button[name=test-button-value]').get('value'),
'button[name=test-button-value].get("value")');
Assert.areEqual('',
Y.get('button[name=test-button-novalue]').get('value'),
'button[name=test-button-novalue].get("value")');
Assert.areEqual('',
Y.get('button[name=test-button-textvalue]').get('value'),
'button[name=test-button-textvalue].get("value")');
},
test_remove: function() {
var node = Y.get('#test-remove'),
domNode = Y.DOM.byId('test-remove'),
parent = domNode.parentNode;
node.remove();
Assert.isTrue(parent !== domNode.parentNode, 'node.remove()');
// ensure remove doesnt fail when no parent
node = Y.Node.create('<div/>');
node.remove();
},
test_replace: function() {
var node = Y.get('#test-replace').get('firstChild'),
newNode = document.createElement('div');
node.replace(newNode);
Assert.areEqual(newNode, Y.get('#test-replace').get('firstChild')._node, 'node.replace(domNode)');
node = Y.get('#test-replace').get('firstChild');
newNode = Y.Node.create('<div/>');
node.replace(newNode);
Assert.areEqual(newNode, Y.get('#test-replace').get('firstChild'), 'node.replace()');
Assert.areEqual(newNode._node, Y.get('#test-replace').get('firstChild')._node, 'node.replace()');
},
test_elements: function() {
var elements = Y.get('#test-form').get('elements');
ArrayAssert.itemsAreEqual(Y.DOM.byId('test-form').elements, elements._nodes, "Y.get('#test-form').get('elements')");
},
test_toFrag: function() {
var frag = Y.all('#test-frag p').toFrag();
Assert.areEqual(11, frag.get('nodeType'), "Y.all('#test-frag p').toFrag();");
},
test_aria: function() {
Y.get('body').set('role', 'menu');
Assert.isTrue(document.body.getAttribute('role') === 'menu', "Y.get('body').set('role', 'menu')")
Y.get('body').set('aria-checked', true);
Assert.areEqual('true', document.body.getAttribute('aria-checked', 2), "Y.get('body').set('aria-checked', true)")
Assert.areEqual('true', Y.get('body').getAttribute('aria-checked'), "Y.get('body').set('aria-checked', true)")
Assert.areEqual('true', Y.get('#foo').get('aria-checked'), "Y.get('#foo').get('aria-checked')");
Y.get('body').set('aria-checked', false);
Assert.areEqual('false', Y.get('body').get('aria-checked'), "Y.get('body').set('aria-checked', false)");
},
test_plugin: function() {
Y.Node.plug(Y.Plugin.NodeFX);
Assert.isTrue(!!Y.Node.create('<div></div>').fx, 'Node.plug()');
Y.Node.unplug(Y.Plugin.NodeFX);
Assert.isFalse(!!Y.Node.create('<div></div>').fx, 'Node.unplug()');
Y.all('input').plug(Y.Plugin.NodeFX);
Y.all('input').each(function(n) {
Assert.isObject(n.fx, "Y.all('input').plug(Y.Plugin.NodeFX)");
});
Y.all('input').unplug(Y.Plugin.NodeFX);
Y.all('input').each(function(n) {
Assert.areEqual(undefined, n.fx, "Y.all('input').unplug(Y.Plugin.NodeFX)");
});
},
test_props: function() {
var mask = document.createElement('div');
mask.className = 'mask';
document.body.appendChild(mask);
var doc = Y.Node.get('document');
mask.style.height = doc.get('docHeight') + 'px';
mask.style.width = doc.get('docWidth') + 'px';
Y.DOM.setStyle(mask, 'opacity', 0.4);
Assert.areEqual(document.documentElement.scrollLeft, doc.get('docScrollX'), 'doc.get("docScrollX")');
Assert.areEqual(document.documentElement.scrollTop, doc.get('docScrollY'), 'doc.get("docScrollY")');
Assert.areEqual('DIV', Y.Node.get('#test-prop').get('nodeName'), 'query("test-prop")');
Assert.areEqual('test-xy', doc.query('#test-xy').get('id'), 'doc.query("#test-xy")');
Assert.isNull(doc.query('fake-id'), 'doc.query("#fake-id")');
Assert.areEqual(document.documentElement.scrollHeight, mask.offsetHeight, 'get("height")');
Assert.areEqual(document.documentElement.scrollWidth, mask.offsetWidth, 'get("width")');
mask.className = '';
},
test_refresh: function() {
var node = Y.one('#test-nodes'),
nodelist = node.all('li');
nodelist.item(1).remove();
ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
nodelist = Y.all('#test-nodes li');
nodelist.item(1).remove();
ArrayAssert.itemsAreEqual( node.one('li'), nodelist, "Y.one('#test-node').all('li')");
},
test_one: function() {
var node = Y.DOM.byId('test:colon');
Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
"Y.one(Y.DOM.byId('test:colon')).one(h2)");
node = Y.DOM.byId('_funky:id{$400}');
Assert.areEqual(node.getElementsByTagName('h2')[0], Y.one(node).one('h2')._node,
"Y.one(Y.DOM.byId('_funky:id{$400}')).one(h2)");
},
test_all: function() {
var node = Y.DOM.byId('test:colon');
ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
Y.one(node).all('h2')._nodes,
"Y.one(Y.DOM.byId('test:colon')).all(h2)");
node = Y.DOM.byId('_funky:id{$400}');
ArrayAssert.itemsAreEqual(node.getElementsByTagName('h2'),
Y.one(node).all('h2')._nodes,
"Y.one(Y.DOM.byId('_funky:id{$400}')).all(h2)");
},
test_isEmpty: function() {
Assert.isFalse(Y.all('input').isEmpty());
Assert.isTrue(Y.all('.nomatch').isEmpty());
},
test_siblings: function() {
var parent = Y.one('#test-nodes > ol'),
children = parent.get('children');
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(1)._node, children.item(3)._node],
children.item(2).siblings()._nodes,
"children.item(2).siblings()"
);
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(1)._node, children.item(3)._node],
children.item(2).siblings('li')._nodes,
"children.item(2).siblings('li')"
);
children.addClass('bar');
children.item(1).removeClass('bar');
ArrayAssert.itemsAreEqual(
[children.item(0)._node, children.item(3)._node],
children.item(2).siblings('li.bar')._nodes,
"children.item(2).siblings('li.bar')"
);
},
test_swap: function() {
var elements = Y.DOM.byId('test-swap').getElementsByTagName('li'),
nodes = Y.all('#test-swap li');
Assert.areEqual(elements[0], nodes.item(0)._node);
nodes.item(0).swap(nodes.item(3));
Assert.areEqual(elements[0], nodes.item(3)._node, "nodes.item(0).swap(nodes.item(3))");
nodes.item(0).swap(nodes.item(3));
Assert.areEqual(elements[0], nodes.item(0)._node);
Assert.areEqual(elements[3], nodes.item(3)._node);
nodes.item(1).swap(nodes.item(2));
Assert.areEqual(elements[1], nodes.item(2)._node);
nodes.item(1).swap(nodes.item(2));
Assert.areEqual(elements[1], nodes.item(1)._node);
Assert.areEqual(elements[2], nodes.item(2)._node);
}
}));
Y.Test.Runner.add(suite);
// allow window scroll event to happen post-onload
Y.on('load', function() {
setTimeout(function() {
Y.Test.Runner.run();
}, 1);
}, window);
});
</script>
</body>
</html>