widget.html revision 81ed0aaa8456bd5c6a54e7797258b1f182eb1f5b
48c0c81cd6fabac9d3386406d97633780365b839coar<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
a096f8d13bee05fd6ea8b9b50b6c2e818eace7d1striker #console .yui3-console-entry {
dba571e5c5a2586c7e2b382789f3250136ff7577jwoolley padding:2px;
dba571e5c5a2586c7e2b382789f3250136ff7577jwoolley margin:0px;
bf3d1782a29630335a1df535eb395355ab1cd154jwoolley min-height:0;
d8028365066fca602bf35d014530a1802114378crbb #console .yui3-console-entry-fail .yui3-console-entry-cat {
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe background-color:red;
d89c116f82699294ca744125723651c554bc5925wrowe #console .yui3-console-entry-pass .yui3-console-entry-cat {
4214e98fc9045e5010e66f9a967bd6d68f40d342aaron background-color:green;
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz #console .yui3-console-entry-perf .yui3-console-entry-cat {
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz background-color:blue;
571760de5e60c0b459cb11be45507b923cd023eejwoolley position:static;
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb html, body {
9bd71e35f5d26d26d23fe3a677401828e842ed72wrowe height:100%;
35330e0d79ceb8027223bbb8330a381b1f989d6etrawickYUI({useBrowserConsole:false}).use('test', 'widget', 'console', function (Y) {
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb var suite = new Y.Test.Suite("Widget Tests");
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj name : "getSkinName",
af4c982a7cf4515f124935f99a329744035fc699slive "getSkinName should return null if not rendered" : function () {
af4c982a7cf4515f124935f99a329744035fc699slive var w = new Y.Widget();
af4c982a7cf4515f124935f99a329744035fc699slive "getSkinName should return name from BB if available": function () {
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var bb = Y.Node.create( '<div class="yui3-skin-foo"><div></div></div>' ),
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe cb = bb.one( 'div' ),
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe boundingBox: bb,
10270f6f94b2069d0d357805c140a9897449b9ccianh contentBox: cb
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz "getSkinName should return name from body or null": function () {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz var w = new Y.Widget().render(),
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz body = Y.one( 'body' );
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick body.removeClass( "yui3-skin-sam" );
418f39e60a288f855ec033b566744489c3bbbf39trawick body.addClass( "yui3-skin-sam" );
ddafc111b94558ef4e2d7357ceda623315566ce3slive "getSkinName should return name from ancestor if both ancestor and body are classed": function () {
ddafc111b94558ef4e2d7357ceda623315566ce3slive var w = new Y.Widget().render( '#testbed' ),
ae72c92fd41562d7c0e8627c093fcbbae4ac9ef2coar body = Y.one( 'body' );
93f189f1198f539d3cfa75a15b23dcde60ee35ffrbb body.addClass( "yui3-skin-sam" );
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz name:"destroy",
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz testRenderedDestroy: function() {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz var w = new Y.Widget({id:"foo"}).render();
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz } catch(e) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz Y.Assert.fail("w.destroy() on a rendered widget threw an exception" + e);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz testUnrenderedDestroy: function() {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz var w = new Y.Widget();
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianp } catch(e) {
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianp Y.Assert.fail("w.destroy() on an unrendered widget threw an exception" + e);
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe testSingleBoxDestroy: function() {
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe function MyWidget() {
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe MyWidget.superclass.constructor.apply(this, arguments);
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe MyWidget.NAME = "myWidget";
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe CONTENT_TEMPLATE:null
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var w = new MyWidget({
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe } catch(e) {
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe Y.Assert.fail("w.destroy() on a single box widget threw an exception" + e);
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe testWidgetClone : function() {
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var a = new Y.Widget();
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var b = new Y.Widget();
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var c = new Y.Widget();
56b2562cb4041a21bc313fde3204beabdb758800jwoolley var a1 = Y.clone(a);
56b2562cb4041a21bc313fde3204beabdb758800jwoolley var a2 = Y.clone(a1);
56b2562cb4041a21bc313fde3204beabdb758800jwoolley var a3 = Y.clone(a2);
f881b8be216de36c6b964324c772450bca38a4e6trawick var b1 = Y.clone(b);
f881b8be216de36c6b964324c772450bca38a4e6trawick var b2 = Y.clone(b1);
f881b8be216de36c6b964324c772450bca38a4e6trawick var b3 = Y.clone(b2);
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley var c1 = Y.clone(c);
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley var c2 = Y.clone(c1);
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley var c3 = Y.clone(c2);
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard testWidgetHashClone : function() {
a23b1c5a74208b03884c09a6f9dd5d6c97fa6415trawick // When Widget's are properties of an object it seems to break apart
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe // something not passed to the recursive call maybe?
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var a = new Y.Widget();
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var b = new Y.Widget();
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var c = new Y.Widget();
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var o1 = Y.clone(o);
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var o2 = Y.clone(o1);
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var o3 = Y.clone(o2);
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe testBaseClone : function() {
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe var a = new Y.Base();
638a9edaf48cf003cd40ac25ee8c25f572107414stoddard var b = new Y.Base();
638a9edaf48cf003cd40ac25ee8c25f572107414stoddard var c = new Y.Base();
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb // Base works fine
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb var a1 = Y.clone(a);
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb var a2 = Y.clone(a1);
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbb var a3 = Y.clone(a2);
a12f07383f9c286519fe88f559187148d5bd1c16aaron var b1 = Y.clone(b);
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron var b2 = Y.clone(b1);
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaron var b3 = Y.clone(b2);
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe var c2 = Y.clone(c1);
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz var c3 = Y.clone(c2);
dc098c7ce5d36179c504d09fc722d190683d0262aaron testBaseHashClone : function() {
dc098c7ce5d36179c504d09fc722d190683d0262aaron var a = new Y.Base();
dc098c7ce5d36179c504d09fc722d190683d0262aaron var b = new Y.Base();
dc098c7ce5d36179c504d09fc722d190683d0262aaron var c = new Y.Base();
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaron var o1 = Y.clone(o);
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz var o2 = Y.clone(o1);
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz var o3 = Y.clone(o2);
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantz Y.Test.Runner.setName("Widget Tests");
54e1babd5a5a56c576eeeace54110150769cc916coar var console;
54e1babd5a5a56c576eeeace54110150769cc916coar Y.one("#btnRun").set("disabled", false).on("click", function() {
54e1babd5a5a56c576eeeace54110150769cc916coar if (!console) {
54e1babd5a5a56c576eeeace54110150769cc916coar console = new Y.Console({
54e1babd5a5a56c576eeeace54110150769cc916coar id:"console",
54e1babd5a5a56c576eeeace54110150769cc916coar width:"100%",
54e1babd5a5a56c576eeeace54110150769cc916coar height:"90%",
54e1babd5a5a56c576eeeace54110150769cc916coar verbose : false,
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe printTimeout: 0,
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe newestOnTop : false,
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz '<span class="{entry_content_class}">{message}</span>'+
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantz }).render();
f126ee03179eb54308118f1ec3de5a7b461685d8aaron<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>