widget.html revision d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<html>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<head>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith <title>Widget Test Suite</title>
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai <script src="/build/yui/yui.js"></script>
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith <style type="text/css">
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai #console .yui3-console-entry {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai padding:2px;
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai margin:0px;
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai min-height:0;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai #console .yui3-console-entry-fail .yui3-console-entry-cat {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai background-color:red;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai #console .yui3-console-entry-pass .yui3-console-entry-cat {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai background-color:green;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai #console .yui3-console-entry-perf .yui3-console-entry-cat {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai background-color:blue;
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai #console {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai position:static;
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai html, body {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai height:100%;
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<script>
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen DesaiYUI({useBrowserConsole:false}).use('test', 'widget', 'node-event-simulate', 'console', function (Y) {
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var suite = new Y.Test.Suite("Widget Tests");
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai suite.add(new Y.Test.Case({
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai name : "getSkinName",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai "getSkinName should return null if not rendered" : function () {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var w = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isNull( w.getSkinName() );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai "getSkinName should return name from BB if available": function () {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var bb = Y.Node.create( '<div class="yui3-skin-foo"><div></div></div>' ),
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai cb = bb.one( 'div' ),
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai w = new Y.Widget( {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai boundingBox: bb,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai contentBox: cb
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai } );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.areEqual( "foo", w.getSkinName() );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai "getSkinName should return name from body or null": function () {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var w = new Y.Widget().render(),
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai body = Y.one( 'body' );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.areEqual( "sam", w.getSkinName() );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai body.removeClass( "yui3-skin-sam" );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isNull( w.getSkinName() );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai body.addClass( "yui3-skin-sam" );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai "getSkinName should return name from ancestor if both ancestor and body are classed": function () {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var w = new Y.Widget().render( '#testbed' ),
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai body = Y.one( 'body' );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai body.addClass( "yui3-skin-sam" );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.areEqual( "foo", w.getSkinName() );
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }));
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai suite.add(new Y.Test.Case({
4a5f24116202d9475862e022628fa2919d990842Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai name:"destroy",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testRenderedDestroy: function() {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai var w = new Y.Widget({id:"foo"}).render();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai try {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai w.destroy();
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai } catch(e) {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.fail("w.destroy() on a rendered widget threw an exception" + e);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai testRenderedDeepDestroy: function() {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai var w = new Y.Widget({id:"foo"}).render();
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai var nref = Y.Node.create('<div id="deep">Foo</div>');
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.get("contentBox").appendChild(nref);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai try {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.destroy(true);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.one("#deep"), "Deep content box still in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.getDOMNode(nref), "Deep content still in Node cache");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai } catch(e) {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.fail("w.destroy(true) on a rendered widget threw an exception" + e);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai }
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testUnrenderedDestroy: function() {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var w = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai try {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai w.destroy();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai } catch(e) {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.fail("w.destroy() on an unrendered widget threw an exception" + e);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai testSingleBoxDestroy: function() {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai function MyWidget() {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai MyWidget.superclass.constructor.apply(this, arguments);
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai };
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai MyWidget.NAME = "myWidget";
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai Y.extend(MyWidget, Y.Widget, {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai CONTENT_TEMPLATE:null
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai });
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai var w = new MyWidget({
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai id:"foo"
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai });
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.render();
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai try {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai w.destroy();
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai } catch(e) {
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai Y.Assert.fail("w.destroy() on a single box widget threw an exception" + e);
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai }
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai },
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai testSingleBoxDeepDestroy: function() {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai function MyWidget() {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai MyWidget.superclass.constructor.apply(this, arguments);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai };
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai MyWidget.NAME = "myWidget";
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.extend(MyWidget, Y.Widget, {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai CONTENT_TEMPLATE:null
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai });
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai var w = new MyWidget({
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai id:"foo"
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai });
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.render();
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai var nref = Y.Node.create('<div id="deep_single">Foo</div>');
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.get("contentBox").appendChild(nref);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai try {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai w.destroy(true);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.one("#deep_single"), "Deep content box still in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.isNull(Y.Node.getDOMNode(nref), "Deep content still in Node cache");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai } catch(e) {
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai Y.Assert.fail("w.destroy(true) on a single box widget threw an exception" + e);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai }
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai }
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai }));
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai suite.add(new Y.Test.Case({
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
37c410fc73ed5acc3161813869a31de525b5aa2eSatyen Desai name:"UI Events",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai testSingleSimple: function() {
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var w, h, cb,
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai actualEvents = [],
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai expectedEvents = ["widget:click"];
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w = new Y.Widget();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb = w.get("contentBox");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.append("<p class='et'>Some Content For My Widget</p>");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai h = function(e) { actualEvents.push(e.type); };
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.on("click", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.render();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.one(".et").simulate("click");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.destroy();
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai testSingleComplex: function() {
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var w, h, cb
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai actualEvents = [],
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai expectedEvents = ["widget:render",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:renderedChange",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:render",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mousedown",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:mouseup",
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "widget:click"];
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w = new Y.Widget();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb = w.get("contentBox");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.append("<p class='et'>Some Content For My Widget</p>");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai h = function(e) { actualEvents.push(e.type); };
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.on({
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "click": h,
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "render": h,
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "renderedChange": h
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.on("widget:mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.on("foo|widget:mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.on("mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.after("widget:mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.after("foo|widget:mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.after("mouseup", h);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.after({
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "mousedown" : h,
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai "render" : h
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.render();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.one(".et").simulate("mousedown");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.one(".et").simulate("mouseup");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai cb.one(".et").simulate("click");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai w.destroy();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai testNested: function() {
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var outer = new Y.Widget();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var inner = new Y.Widget();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var ocb = outer.get('contentBox');
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var icb = inner.get('contentBox');
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var expectedEvents = ["outerClick", "innerClick", "outerClick"];
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai var actualEvents = [];
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai outer.render();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai ocb.setContent("<span class='oet'>Outer Content</span>");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai inner.render(ocb);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai icb.setContent("<span class='iet'>Inner Content</span>");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai inner.after('click', function() {actualEvents.push("innerClick");});
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai outer.after('click', function() {actualEvents.push("outerClick");});
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai // Only outer
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai ocb.one(".oet").simulate("click");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai // One Inner, One Outer
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai ocb.one(".iet").simulate("click");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai outer.destroy();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai inner.destroy();
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai },
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai testMultipleInstances : function() {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai var actualEvents = [],
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai expectedEvents = ["clickOuter", "clickInner", "clickOuter"],
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w1,
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w2;
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai YUI().use('widget', function (Y) {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w1 = new Y.Widget({render:true});
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w1.get('contentBox').append('<div class="w2-container"></div><span class="miouter">Outer</span>');
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w1.on('click', function (e) {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai actualEvents.push("clickOuter");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai YUI().use('widget', function (Y1) {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w2 = new Y1.Widget({render:".w2-container"});
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w2.get('contentBox').append('<span class="miinner">Inner</span>');
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w2.on('click', function (e) {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai actualEvents.push("clickInner");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai Y.Node.one(".miouter").simulate("click"); // only outer, once.
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai Y.Node.one(".miinner").simulate("click"); // inner, bubbled to outer (once each, without JS errors)
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w1.destroy();
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai w2.destroy();
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai }
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai }));
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai suite.add(new Y.Test.Case({
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai name:"clone",
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testWidgetClone : function() {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a1 = Y.clone(a);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a2 = Y.clone(a1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a3 = Y.clone(a2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a1 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a2 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a3 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b1 = Y.clone(b);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b2 = Y.clone(b1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b3 = Y.clone(b2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b1 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b2 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b3 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c1 = Y.clone(c);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c2 = Y.clone(c1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c3 = Y.clone(c2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c1 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c2 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c3 instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testWidgetHashClone : function() {
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai // When Widget's are properties of an object it seems to break apart
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai // something not passed to the recursive call maybe?
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o = {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai a : a,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai b : b,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai c : c
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai };
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o1 = Y.clone(o);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o2 = Y.clone(o1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o3 = Y.clone(o2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.a instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.b instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.c instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testBaseClone : function() {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai // Base works fine
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a1 = Y.clone(a);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a2 = Y.clone(a1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a3 = Y.clone(a2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a1 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a2 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(a3 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b1 = Y.clone(b);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b2 = Y.clone(b1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b3 = Y.clone(b2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b1 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b2 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(b3 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c1 = Y.clone(c);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c2 = Y.clone(c1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c3 = Y.clone(c2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c1 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c2 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(c3 instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai testBaseHashClone : function() {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var a = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var b = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var c = new Y.Base();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o = {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai a : a,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai b : b,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai c : c
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai };
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o1 = Y.clone(o);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o2 = Y.clone(o1);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var o3 = Y.clone(o2);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.a instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.b instanceof Y.Base);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Assert.isTrue(o3.c instanceof Y.Base);
0b9b9d3bda11c4468e6ebac4df222fdb89c9a7b8Satyen Desai }
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }));
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.setName("Widget Tests");
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.add(suite);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.disableLogging();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.run();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai var console;
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.one("#btnRun").set("disabled", false).on("click", function() {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai if (!console) {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai console = new Y.Console({
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai id:"console",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai width:"100%",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai height:"90%",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai verbose : false,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai printTimeout: 0,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai newestOnTop : false,
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai '<span class="{entry_cat_class}">{label}</span>'+
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai '<span class="{entry_content_class}">{message}</span>'+
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai '</pre>'
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai }).render();
4a5f24116202d9475862e022628fa2919d990842Satyen Desai }
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.enableLogging();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.run();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai });
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith});
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</script>
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</body>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</html>