widget.html revision 0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<!doctype html>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<html>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<head>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith <title>Widget Test Suite</title>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith <link type="text/css" rel="stylesheet" href="/build/test/assets/test-console.css">
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith <style type="text/css">
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith h1 {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith font: normal 125%/1.4 Arial, sans-serif;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d0a16c48f3477794c63f4ff3242dc20db6a49295Satyen Desai .yui3-skin-sam .yui3-console .yui3-console-content {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith font-size: 10px;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d0a16c48f3477794c63f4ff3242dc20db6a49295Satyen Desai .yui3-skin-sam .yui3-console-entry-pass .yui3-console-entry-cat {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith background: #070;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith color: #fff;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d0a16c48f3477794c63f4ff3242dc20db6a49295Satyen Desai .yui3-skin-sam .yui3-console-entry-fail .yui3-console-entry-cat {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith background: #700;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith color: #fff;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d0a16c48f3477794c63f4ff3242dc20db6a49295Satyen Desai .yui3-skin-sam .yui3-console-entry-time {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith display: none;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith </style>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</head>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<body class="yui3-skin-sam">
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<div id="testbed" class="yui3-skin-foo"></div>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<script src="/build/yui/yui.js"></script>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<script>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke SmithYUI({
d0a16c48f3477794c63f4ff3242dc20db6a49295Satyen Desai filter : 'raw'
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith}).use('test','console',function (Y) {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smithvar suite = new Y.Test.Suite("Widget Tests");
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smithsuite.add(new Y.Test.Case({
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith name : "getSkinName",
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith "getSkinName should return null if not rendered" : function () {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith var w = new Y.Widget();
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith Y.Assert.isNull( w.getSkinName() );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith },
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith "getSkinName should return name from BB if available": function () {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith var bb = Y.Node.create( '<div class="yui3-skin-foo"><div></div></div>' ),
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith cb = bb.one( 'div' ),
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith w = new Y.Widget( {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith boundingBox: bb,
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith contentBox: cb
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith } );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith Y.Assert.areEqual( "foo", w.getSkinName() );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith },
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith "getSkinName should return name from body or null": function () {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith var w = new Y.Widget().render(),
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith body = Y.one( 'body' );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith Y.Assert.areEqual( "sam", w.getSkinName() );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith body.removeClass( "yui3-skin-sam" );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith Y.Assert.isNull( w.getSkinName() );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith body.addClass( "yui3-skin-sam" );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith },
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith "getSkinName should return name from ancestor if both ancestor and body are classed": function () {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith var w = new Y.Widget().render( '#testbed' ),
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith body = Y.one( 'body' );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith body.addClass( "yui3-skin-sam" );
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith Y.Assert.areEqual( "foo", w.getSkinName() );
4a5f24116202d9475862e022628fa2919d990842Satyen Desai },
4a5f24116202d9475862e022628fa2919d990842Satyen Desai
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai testRenderedDestroy: function() {
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai var w = new Y.Widget().render();
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai try {
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai w.destroy();
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai } catch(e) {
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai Y.Assert.fail("w.destroy() on a rendered widget threw an exception" + e);
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai }
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai },
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai
4a5f24116202d9475862e022628fa2919d990842Satyen Desai testUnrenderedDestroy: function() {
4a5f24116202d9475862e022628fa2919d990842Satyen Desai var w = new Y.Widget();
4a5f24116202d9475862e022628fa2919d990842Satyen Desai try {
4a5f24116202d9475862e022628fa2919d990842Satyen Desai w.destroy();
4a5f24116202d9475862e022628fa2919d990842Satyen Desai } catch(e) {
4a5f24116202d9475862e022628fa2919d990842Satyen Desai Y.Assert.fail("w.destroy() on an unrendered widget threw an exception" + e);
4a5f24116202d9475862e022628fa2919d990842Satyen Desai }
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith}));
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smithnew Y.Console({
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith newestOnTop: false,
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith height: '580px'
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith}).render();
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke SmithY.Test.Runner.add(suite);
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke SmithY.Test.Runner.run();
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith});
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</script>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</body>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</html>