dom.html revision 141f28408910e5877ef88ee21ae3fb7f67f41468
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney<script type="text/javascript" src="/build/yui/yui-min.js"></script>
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney YUI({ base: '/build/', filter: 'raw'}).use('console', 'test', function(Y) {
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff var Assert = Y.Assert,
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney suite = new Y.Test.Suite("yuisuite");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney new Y.Console({ height: '50em' }).render();
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var doc = document.getElementById('doc'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney lorem = document.getElementById('lorem-ipsum'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney search = document.getElementById('search'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney search_fields = document.getElementById('search-fields'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney search_p = document.getElementById('search-p'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney name: 'DOM',
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_byId: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var inputs = document.getElementById('test-names').getElementsByTagName('input');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(doc, Y.DOM.byId('doc'), 'byId("doc")');
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.isNull(Y.DOM.byId('fake-id'), 'byId("fake-id")');
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Y.DOM.byId('test-name-id1'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney "Y.DOM.byId('test-name-id1')"
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.byId('test-name-id2'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney "Y.DOM.byId('test-name-id2')"
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_getText: function() {
dba22eabcfca7e9fe626abbad1494c3a0200dde0Matt Sweeney Assert.areEqual(h1.innerHTML, Y.DOM.getText(hd), 'getText("hd")');
dba22eabcfca7e9fe626abbad1494c3a0200dde0Matt Sweeney Assert.areEqual('', Y.DOM.getText(tmp), 'getText(tmp)');
dba22eabcfca7e9fe626abbad1494c3a0200dde0Matt Sweeney Assert.areEqual('', Y.DOM.getText(null), 'getText(null)');
dba22eabcfca7e9fe626abbad1494c3a0200dde0Matt Sweeney Assert.areEqual('', Y.DOM.getText(), 'getText()');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_setText: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var node = document.createElement('div'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney content = 'testing text content';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setText(node, content);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff Y.DOM.setText(node, content);
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff content = ' testing text content ';
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff Y.DOM.setText(node, content);
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff Assert.areEqual(content, Y.DOM.getText(node, content), 'setText("' + content + '")');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff test_children: function() {
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff ArrayAssert.itemsAreEqual([], Y.DOM.children(tmp), 'children(tmp)');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff ArrayAssert.itemsAreEqual([], Y.DOM.children(null), 'children(null)');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff ArrayAssert.itemsAreEqual([], Y.DOM.children(), 'children()');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff ArrayAssert.itemsAreEqual([hd, bd, ft], Y.DOM.children(doc), 'children(doc)');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff ArrayAssert.itemsAreEqual([mod1, mod2], Y.DOM.children(main, function(node) {
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff return node.className === 'mod';
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff }), 'children(main, fn)');
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff test_getStyle: function() {
719d5bf86fc9cfc087ec8bf8cc7e1ad78bbf9ccfJeff Conniff Y.DOM.getStyle(foo, 'float'), 'getStyle(foo, "float")');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.getStyle(doc, 'marginBottom'), 'doc, marginBottom');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.getStyle(doc, 'position'), 'doc, position');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_setStyle: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'opacity', 0.5);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney 0.5, "Y.DOM.getStyle(ft, 'opacity')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(main, 'float', 'none');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('none', Y.DOM.getStyle(main, 'float'),
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff 'wrong style returned');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'width', '-1');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney } catch(e) {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.fail('setStyle invalid width error');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'height', '-1');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney } catch(e) {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.fail('setStyle invalid height error');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'display', 'none');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('none', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', 'none')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'display', null);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual('block', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', null)");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'display', 'none');
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Y.DOM.setStyle(ft, 'display', '');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('block', Y.DOM.getStyle(ft, 'display'), "Y.DOM.setStyle(ft, 'display', '')");
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Y.DOM.setStyle(ft, 'opacity', null);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(0.75, Y.DOM.getStyle(ft, 'opacity'), "Y.DOM.setStyle(ft, 'opacity', null)");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'opacity', 0);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'opacity', '');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(0.75, Y.DOM.getStyle(ft, 'opacity'), "Y.DOM.setStyle(ft, 'opacity', '')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'height', '100');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('100px', Y.DOM.getStyle(ft, 'height'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney "Y.DOM.setStyle(ft, 'height', '100')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(ft, 'height', '');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney } catch(e) {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.fail('error thrown setting height: ""');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('200px', Y.DOM.getStyle(ft, 'height'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney "Y.DOM.setStyle(ft, 'height', '')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_styleDefaultUnit: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var node = Y.DOM.byId('ft'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney value = '20px',
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney attr = 'width',
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney attr = 'borderTopWidth';
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Y.DOM.setStyle(node, attr, num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney attr = 'opacity';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney value = 0.5;
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Y.DOM.setStyle(node, attr, num);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney attr = 'borderTopWidth';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney value = '5px';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(node, attr, num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney attr = 'paddingTop';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney value = '5px';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setStyle(node, attr, num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(value, Y.DOM.getStyle(node, attr), attr + ': ' + num);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_create: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var html = '';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var el = Y.DOM.create(html);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var html = null;
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var el = Y.DOM.create(html);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var el = Y.DOM.create(html);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney html = '<input name="test-input" type="radio">';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(1, el.childNodes.length, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html = '<optgroup><option>foo</option></optgroup>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html = '<select><option>foo</option><option>bar</option></select>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual(2, el.childNodes.length, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html = '<table><tr><td>foo</td><td>bar</td></tr></table>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual(1, el.childNodes.length, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual(2, el.childNodes.length, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html = '<iframe src="http://search.yahoo.com/" id="yui-iframetest"></iframe>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual('http://search.yahoo.com/', el.src, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual('yui-iframetest', el.id, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html = '<scr' + 'ipt src="http://search.yahoo.com/"></scr' + 'ipt>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual('http://search.yahoo.com/', el.src, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff html = '<link href="http://search.yahoo.com/" rel="stylesheet">';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual('http://search.yahoo.com/', el.href, html);
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff html ='<div id="default-e34f85" class="mod view_default"> <div id="default-e34f85-hd" class="hd"><h2>Yahoo! Mail Preview</h2> <span class="mod-button-wrapper"> </span> </div> <div id="default-e34f85-bd" class="bd type_mail type_mail_default"> <p class="divider-b small text-right"><a href="http://us.lrd.yahoo.com/_ylt=AhQqDwn_HdUEqFrWLI8HTGP1cSkA/SIG=10rfos93v/**http%3A//mail.yahoo.com/">Go to Yahoo! Mail</a></p> <img src="http://l.yimg.com/a/i/ww/met/mail_promo_060608.gif" alt="Yahoo! Mail avatar shows the possibilities of email" class="promo" width="300px"> <p class="x-large sign-in-link"><a href="https://us.lrd.yahoo.com/_ylt=AnGramz3WfSHqLcCWa92OGj1cSkA/SIG=12tb7s4o8/**https%3A//login.yahoo.com/config/mail%3F.intl=us%26.src=ym%26.done=http%3A//mail.yahoo.com">Sign in</a> to preview your email here.</p> <p class="med-small">The all-new Yahoo! Mail:<br>More ways to connect with everyone.</p> </div></div>';
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff Assert.areEqual('default-e34f85', el.id, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff html = '<thead><tr><td><table><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead>';
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Assert.areEqual('A', el.firstChild.tagName, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff document.getElementById('test-select').appendChild(el);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.isFalse(el.selected, 'el.selected(false)');
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff document.getElementById('test-select').appendChild(el);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.isTrue(el.selected, 'el.selected(true)');
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff // trim leading space
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff html = '<thead><tr><td><table><thead></thead><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead>';
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff test_createNodes: function() {
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff var html = '<div>foo</div><div id="tmp-bar">bar</div><div>baz</div>';
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff var el = Y.DOM.create(html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual(3, el.childNodes.length, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual('foo', el.childNodes[0].innerHTML, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff html = '<option>foo</option><option id="tmp-bar">bar</option><option>baz</option>';
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Assert.areEqual(3, el.childNodes.length, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff html = '<option>foo</option><option selected>bar</option><option>baz</option>';
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Assert.areEqual(3, el.childNodes.length, html);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Assert.isTrue(el.childNodes[1].selected, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff html = '<td>foo</td><td id="tmp-bar">bar</td><td>baz</td>';
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual(3, el.childNodes.length, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff html = '<tbody>foo</tbody><tbody id="tmp-bar">bar</tbody><tbody>baz</tbody>';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(3, el.childNodes.length, html);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('tmp-bar', el.childNodes[1].id, html);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff html = '<thead><tr><td><table><tbody><tr><td>fresh</td></tr></tbody></table></td></tr></thead><tbody></tbody>';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(2, el.childNodes.length, html);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_ancestor: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(doc, Y.DOM.ancestor(hd), 'ancestor(hd)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(doc, Y.DOM.ancestor(bd), 'ancestor(bd)');
d40e32ef6c95cddf35e9cc056dfdd259ba314fa2Jeff Conniff Assert.areEqual(doc, Y.DOM.ancestor(bd), 'ancestor(bd)');
d40e32ef6c95cddf35e9cc056dfdd259ba314fa2Jeff Conniff Assert.areEqual(document.body, Y.DOM.ancestor(bd, function(node) { return node.tagName === 'BODY';}), 'ancestor(bd, fn)');
d40e32ef6c95cddf35e9cc056dfdd259ba314fa2Jeff Conniff Assert.areEqual(bd, Y.DOM.ancestor(bd, null, true), 'ancestor(bd, true)');
d40e32ef6c95cddf35e9cc056dfdd259ba314fa2Jeff Conniff test_insertBefore: function() {
07ad9ab2be0e01d9fe09926c37a65a867aa6f401Jeff Conniff //Assert.areEqual(Y.DOM.insertBefore(ft, hd), Y.DOM.firstChild(doc), 'insertBefore(ft, hd)');
d40e32ef6c95cddf35e9cc056dfdd259ba314fa2Jeff Conniff //Assert.areEqual(ft, Y.DOM.firstChild(doc), 'insertBefore(ft, hd)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_insertAfter: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney //Assert.areEqual(Y.DOM.insertAfter(hd, ft), ft.nextSibling, 'insertAfter(hd, ft)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney //Assert.areEqual(hd, ft.nextSibling, 'insertAfter(hd, ft)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_getAttribute: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var node = Y.DOM.byId('doc');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setAttribute(node, 'class', 'foo');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('foo', node.className, "Y.DOM.setAttribute(node, 'class', 'foo')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('foo', Y.DOM.getAttribute(node, 'class'), "Y.DOM.getAttribute(node, 'class')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('foo', Y.DOM.getAttribute(node, 'className'), "Y.DOM.getAttribute(node, 'className')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setAttribute(node, 'className', 'bar');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('bar', node.className, "node.className");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney node = Y.DOM.byId('search-p-label');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('search-p', Y.DOM.getAttribute(node, 'for'), "Y.DOM.setAttribute(node, 'for', 'search-p')");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('search-p', Y.DOM.getAttribute(node, 'htmlFor'), "Y.DOM.setAttribute(node, 'htmlFor', 'search-p')");
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff test_getValue: function() {
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff var id = 'test-text-value',
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff val = 'text value';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-text-novalue';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-textarea-textvalue';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff val = 'textarea text';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-textarea-value';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-textarea-novalue';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-button-value';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff val = 'button value';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-button-novalue';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff id = 'test-button-textvalue';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-select-value';
d6ac1282b7aebe50016ff2242315c34ac60422c8Jeff Conniff val = 'option value';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-select-novalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-select-textvalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney val = 'option text';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-select-emptyvalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-select-emptyvalue-notext';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-option-value';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney val = 'option value';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-option-emptyvalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-option-novalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-option-emptyvalue-notext';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
283a7ee219d2fefddeb34c0def9f6a3c8410e85bSatyen Desai Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
283a7ee219d2fefddeb34c0def9f6a3c8410e85bSatyen Desai id = 'test-option-textvalue';
46f0ef7b895e2f49e15c3ed30957c19c29af475bSatyen Desai val = 'option text';
283a7ee219d2fefddeb34c0def9f6a3c8410e85bSatyen Desai Assert.areEqual(val, Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('new value', Y.DOM.getValue(Y.DOM.byId(id)), id);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney id = 'test-text-emptyvalue';
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual('""', Y.JSON.stringify(Y.DOM.getValue(Y.DOM.byId(id))),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney "Y.JSON.stringify(Y.DOM.getValue(Y.DOM.byId(" + id + ")))");
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_position: function() { // basic position tests
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var node = document.createElement('div');
b4f14fb8425b05925652295a6e65a98b2448f70fJeff Conniff ArrayAssert.itemsAreEqual([0, 0], Y.DOM.getXY(node), 'off-dom: [0, 0]');
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff Y.DOM.setXY(node, [100, 200]);
d3b7b73e5ca50ba0821b439d4f9a12cfaaf38870Jeff Conniff ArrayAssert.itemsAreEqual([100, 200], Y.DOM.getXY(node), 'off-dom: [100, 200]');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.isNull(Y.DOM.getXY(null), 'Y.DOM.getXY(null)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Y.DOM.setXY(node, [100, 200]);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney ArrayAssert.itemsAreEqual([100, 200], Y.DOM.getXY(node), 'setXY([100, 200]');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney test_region: function() {
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney var node = Y.DOM.byId('doc'),
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney region = Y.DOM.region(node);
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.isFalse(Y.DOM.region(null), 'Y.DOM.region(null)');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(xy[0], region.left, 'region.left');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(xy[1], region.top, 'region.top');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(xy[0], region[0], 'region[0]');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(xy[1], region[1], 'region[1]');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(node.offsetWidth, region.width, 'region.width');
57944bee374767ef401f984a0136afb3822f22f7Matt Sweeney Assert.areEqual(node.offsetHeight, region.height, 'region.height');
var node = Y.DOM.byId('doc'),
scrollX = Y.DOM.docScrollX(node),
scrollY = Y.DOM.docScrollY(node),
winHeight = Y.DOM.winHeight(node),
winWidth = Y.DOM.winWidth(node),
region = Y.DOM.viewportRegion(node);
Assert.areEqual(scrollX, region[0], 'region[0]');
Assert.areEqual(scrollY, region[1], 'region[1]');
region = Y.DOM.viewportRegion();
Assert.areEqual(scrollX, region[0], 'region[0]');
Assert.areEqual(scrollY, region[1], 'region[1]');
var node = Y.DOM.byId('test-add');
Assert.areEqual('STRONG', node.firstChild.nodeName, "Y.DOM.addHTML(node, '<em>new content</em>', node.firstChild)");
Assert.areEqual('SPAN', node.childNodes[1].nodeName, "Y.DOM.addHTML(node, '<em>new content</em>', node.childNodes[1])");
Y.DOM.addHTML(node, 200);
Y.DOM.firstByTag(tag, root),
"Y.DOM.firstByTag(" + tag + " , " + root + ")"
root = document.getElementById('test-form');
Y.DOM.firstByTag(tag, root),
"Y.DOM.firstByTag(" + tag + " , " + root + ")"
"Y.DOM.firstByTag(" + tag + " , " + root + ")"
hex = Y.Color.toHex(rgb);
Assert.areEqual("#610B0B", hex, 'toHex(' + rgb + ')');
hex = Y.Color.toHex(rgb);
Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
hex = Y.Color.toHex(rgb);
Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
hex = Y.Color.toHex(rgb);
Assert.areEqual("#FFFFFF", hex, 'toHex(' + rgb + ')');
hex = Y.Color.toHex(rgb);
Assert.areEqual("#000000", hex, 'toHex(' + rgb + ')');
hex = Y.Color.toHex(rgb);
Assert.areSame(hex, "#61380B", " shoudl be #61380B");
hex = Y.Color.toHex(rgb);
Assert.areSame(hex, "#0B610B", " shoudl be #0B610B");
hex = Y.Color.toHex(rgb);
Assert.areSame(hex, "#380B61", " shoudl be #380B61");
hex = Y.Color.toHex(rgb);
Assert.areSame(hex, "#610B38", " shoudl be #610B38");
var node = document.createElement('div');
document.body.appendChild(node);
document.body.removeChild(node);
node.id = 'doc';
document.body.appendChild(node);
document.body.removeChild(node);
// test form with input name="id" (IE collision with form.id)
Y.Test.Runner.add(suite);
if (parent && parent != window && Y.Test.Manager) {
<p>Fusce feugiat diam. Vestibulum elementum dui in augue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris pulvinar.</p>