webgui/www/extras/yui/tests/element.html
JT Smith 20f8df1291 upgrading to YUI 2.6
data tables are going to need some work yet, but the other stuff seems to be working 100%
2008-10-22 23:53:29 +00:00

156 lines
5.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Element Test Suite</title>
<link type="text/css" rel="stylesheet" href="../build/logger/assets/logger.css">
<link type="text/css" rel="stylesheet" href="../build/yuitest/assets/testlogger.css">
<script type="text/javascript" src="../build/yahoo/yahoo.js"></script>
<script type="text/javascript" src="../build/event/event.js"></script>
<script type="text/javascript" src="../build/dom/dom.js"></script>
<script type="text/javascript" src="../build/element/element-beta-debug.js"></script>
<script type="text/javascript" src="../build/logger/logger-min.js"></script>
<script type="text/javascript" src="../build/yuitest/yuitest.js"></script>
<style type="text/css">
#foo {
background:#ccc;
height:100px;
width:100px;
}
</style>
<script type="text/javascript">
(function() {
var Y = YAHOO.util,
tool = YAHOO.tool,
suite = new tool.TestSuite("yuisuite");
Y.Event.onDOMReady(function() {
var logger = new YAHOO.tool.TestLogger(null, { height: '80%' });
Y.Element.prototype.initAttributes = function() {
this.setAttributeConfig('foo', {
validator: YAHOO.lang.isString
});
this.setAttributeConfig('href', {
validator: YAHOO.lang.isString
});
};
var foo = new Y.Element('foo', { foo: 2 });
var bar = new Y.Element('bar', { href: 2 });
var elFoo = document.getElementById('foo');
suite.add( new tool.TestCase({
name: 'YAHOO.util.Element',
test_getElement: function() {
YAHOO.util.Assert.areEqual(elFoo, foo.get('element'), 'incorrect element');
},
test_setHTMLAttr: function() {
var innerHTML = 'updated';
foo.set('innerHTML', innerHTML);
YAHOO.util.Assert.areEqual(innerHTML, foo.get('innerHTML'), 'incorrect innerHTML');
},
test_setHTMLAttr: function() {
var innerHTML = 'updated';
foo.set('innerHTML', innerHTML);
YAHOO.util.Assert.areEqual(innerHTML, foo.get('innerHTML'), 'incorrect innerHTML');
},
test_onChange: function() {
var pass = false;
var handler = function() {
pass = true;
};
foo.on('titleChange', handler);
foo.set('title', 'foo title');
YAHOO.util.Assert.isTrue(pass, 'titleChange event failed to fire');
},
test_DomEvent: function() {
var pass = false;
var handler = function() {
pass = true;
};
foo.on('click', handler);
YAHOO.util.UserAction.click('foo');
YAHOO.util.Assert.isTrue(pass, 'click handler failed to be called');
},
test_customEvent: function() {
var pass = false;
var handler = function() {
pass = true;
};
foo.on('foo', handler);
foo.fireEvent('foo');
YAHOO.util.Assert.isTrue(pass, 'foo handler failed to be called');
},
test_attribute: function() {
foo.setAttributeConfig('fontname', {
value: 'tahoma',
method: function(val) {
foo.setStyle('font-family', val);
}
});
foo.set('fontname', 'tahoma');
YAHOO.util.Assert.areEqual(Y.Dom.getStyle('foo', 'font-family'), 'tahoma', 'attribConfig');
foo.set('fontname', 'verdana');
foo.resetValue('fontname');
},
test_validator: function() {
YAHOO.util.Assert.areEqual(undefined, foo.get('foo'), 'foo.get("foo")');
YAHOO.util.Assert.areEqual('', bar.get('href'), 'bar.get("href")');
foo.setAttributeConfig('foobar', {
validator: YAHOO.lang.isString
});
foo.set('foobar', 3);
YAHOO.util.Assert.areEqual(undefined, foo.get('foobar'), 'foo.get("foobar")');
bar.set('href', 3);
YAHOO.util.Assert.areEqual('', bar.get('href'), 'bar.get("href")');
bar.set('href', 'http://yahoo.com');
YAHOO.util.Assert.areEqual('http://yahoo.com', bar.get('href'), 'bar.set("href")');
},
test_dom_event: function() {
foo.on('click', function(e) { alert('click'); });
var baz = new Y.Element('baz');
baz.on('click', function(e) { alert('click'); });
},
}));
tool.TestRunner.add(suite);
if (parent && parent != window) {
tool.TestManager.load();
} else {
tool.TestRunner.run();
}
});
})();
</script>
<style type="text/css">
</style>
</head>
<body class="yui-skin-sam">
<div id="doc">
<div id="foo">foo</div>
<a id="bar">foo</a>
</div>
</body>
</html>