widget.html revision 1809f37c5e32d3366ee0a26377448d74d5fa7ff5
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">
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith<div id="testbed" class="yui3-skin-foo"></div>
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai<div id="widgetRenderToContainer" style="height:300px;width:300px"></div>
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai <script>
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai YUI({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai useBrowserConsole:false,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }).use('test', 'widget', 'node-event-simulate', 'console', function (Y) {
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var suite = new Y.Test.Suite("Widget Tests");
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai suite.add(new Y.Test.Case({
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai name : "Core",
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testInstantiation" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w instanceof Y.Widget);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Basic API
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.render);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.init);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.destroy);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.get);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.set);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.show);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.hide);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.disable);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.enable);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.focus);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFunction(w.blur);
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testInitState" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("div", w.get("boundingBox").get("tagName").toLowerCase());
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("div", w.get("contentBox").get("tagName").toLowerCase());
98c1ab155c0e2148f69291b1abe1007c9d5a08e8Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("focused"), "focused should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("", w.get("height"), "height should be empty string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("", w.get("width"), "width should be empty string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isString(w.get("id"), "id should be a string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("initialized"), "initialized should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("destroyed"), "destroyed should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("rendered"), "rendered should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("visible"), "visible should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(w.get("tabIndex"), "tabIndex should be null");
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testNonRenderedStateUpdate" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // WRITE ONCE
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id: "foobar",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: Y.Node.create("<span id='bb'></span>"),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai srcNode: Y.Node.create("<span id='cb'></span>")
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("disabled", true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("height", 100);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("width", 200);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("visible", false);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("tabIndex", 5);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("span", w.get("boundingBox").get("tagName").toLowerCase());
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("span", w.get("contentBox").get("tagName").toLowerCase());
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("bb", w.get("boundingBox").get("id"));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("cb", w.get("contentBox").get("id"));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("disabled"), "disabled should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("focused"), "focused should be false"); // focused is READONLY
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("100", w.get("height"), "height should be 100px");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("200", w.get("width"), "width should be 200px");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("foobar", w.get("id"), "id should be foobar");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("visible"), "visible should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(5, w.get("tabIndex"), "tabIndex should be 5");
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testValidationReadonlyWriteonce" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // READONLY
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("focused", true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("rendered", true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // WRITE ONCE
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("boundingBox", Y.Node.create("<span id='bb'></span>"));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("contentBox", Y.Node.create("<span id='cb'></span>"));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("render", true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // INVALID
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("tabIndex", "foo");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // State should be the same as the initial state
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("div", w.get("boundingBox").get("tagName").toLowerCase());
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("div", w.get("contentBox").get("tagName").toLowerCase());
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("focused"), "focused should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("", w.get("height"), "height should be empty string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("", w.get("width"), "width should be empty string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isString(w.get("id"), "id should be a string");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("initialized"), "initialized should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("destroyed"), "destroyed should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("rendered"), "rendered should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("visible"), "visible should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(w.get("tabIndex"), "tabIndex should be null");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testRender" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id: "widgetRender"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bbFromDom = Y.Node.one("#widgetRender");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bbFromDom), "boundingBox not found in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bbFromDom.get("firstChild").compareTo(w.get("contentBox")), "contentBox not first child of boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bbFromDom.compareTo(Y.Node.one("body").get("firstChild")), "widget not inserted to body");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("rendered"), "Rendered flag not set");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testRenderTo" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id: "widgetRenderTo"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bbFromDom = Y.Node.one("#widgetRenderTo");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bbFromDom.get("parentNode").compareTo(Y.Node.one("#widgetRenderToContainer")), "widget not rendered to container passed to render()");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bbFromDom), "boundingBox not found in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bbFromDom.get("firstChild").compareTo(w.get("contentBox")), "contentBox not first child of boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("rendered"), "Rendered flag not set");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testBaseClassNames" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = w.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget"), "bb missing yui3-widget marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(cb.hasClass("yui3-widget-content"), "cb missing yui3-widget-content marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testExtendedClassNames" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai function MyWidget() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.superclass.constructor.apply(this, arguments);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.NAME = "myWidget";
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.extend(MyWidget, Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var myWidget = new MyWidget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai myWidget.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = myWidget.get("boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = myWidget.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget"), "bb missing generic yui3-widget marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-mywidget"), "bb missing yui3-mywidget marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(cb.hasClass("yui3-mywidget-content"), "cb missing yui3-mywidget-content marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(cb.hasClass("yui3-widget-content"), "cb shouldn't have yui3-widget-content marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai myWidget.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testHeight" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai height:100,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:"#widgetRenderToContainer"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox"),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb = w.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Default CSS has no border/padding/margin on BB/CB so this should be fine in all browsers
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(100, bb.get("offsetHeight"), "100 height not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(100, cb.get("offsetHeight"), "100 height not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("height", "200px");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(200, bb.get("offsetHeight"), "200px height not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(200, cb.get("offsetHeight"), "200px height not set correctly in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("height", "50%");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(150, bb.get("offsetHeight"), "% height not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(150, cb.get("offsetHeight"), "% height not set correctly in DOM");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testWidth" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai width:100,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:"#widgetRenderToContainer"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox"),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb = w.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Default CSS has no border/padding/margin on BB/CB so this should be fine in all browsers
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(100, bb.get("offsetWidth"), "100 width not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(100, cb.get("offsetWidth"), "100 width not set correctly in DOM");
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("width", "200px");
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(200, bb.get("offsetWidth"), "200px width not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(200, cb.get("offsetWidth"), "200px width not set correctly in DOM");
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("width", "50%");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(150, bb.get("offsetWidth"), "% width not set correctly in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual(150, cb.get("offsetWidth"), "% width not set correctly in DOM");
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai
81ed0aaa8456bd5c6a54e7797258b1f182eb1f5bSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testDisabled" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-disabled"), "bb should not have a disabled marker class");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("disabled", true);
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("disabled"), "disabled should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget-disabled"), "bb should have a disabled marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("disabled", false);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-disabled"), "bb should not have a disabled marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testDisableEnable" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
d8f2b0dd5ac08b7e9256df9f92b204b33c7f9f69Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-disabled"), "bb should not have a disabled marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.disable();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("disabled"), "disabled should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget-disabled"), "bb should have a disabled marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.enable();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("disabled"), "disabled should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-disabled"), "bb should not have a disabled marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testFocusBlur" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // The focused attribute is read-only, so we test through the public api
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // TODO ENH REQUEST: This doesn't seem right. We should focus on render.
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("focused"), "focused should be false by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-focused"), "bb should not have a disabled marker class");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.focus();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("focused"), "focused should be true");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget-focused"), "bb should have a focused marker");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.blur();
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("focused"), "focused should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-focused"), "bb should not have a focused marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testTabIndex" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(w.get("tabIndex"), "tabIndex should be null by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.get("tabIndex") <= 0, "tabIndex should not be set by default"); // default varies across browsers 0 or -1
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("tabIndex", 6);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(6, w.get("tabIndex"), "tabIndex should be 6");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // FIXME: See http://yuilibrary.com/projects/yui3/ticket/2531105
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Y.Assert.areSame(6, bb.get("tabIndex"), "tabIndex should be 6");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testId" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id: "testId",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:true
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // ID is writeOnce. Cannot reset ID
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("id", "resetTestId");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("testId", w.get("id"), "id not set");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame("testId", bb.get("id"), "id not reflected in DOM");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testVisible" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = w.get("boundingBox");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("visible"), "visible should be true by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-hidden"), "bb should not have a hidden marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areNotEqual("none", bb.getStyle("display"), "widget should not be display:none");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("visible", false);
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(w.get("visible"), "visible should be false");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(bb.hasClass("yui3-widget-hidden"), "bb should have an hidden marker");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual("none", bb.getStyle("display"), "Default CSS should hide widget using display:none");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.set("visible", true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("visible"), "visible should be true by default");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(bb.hasClass("yui3-widget-hidden"), "bb should not have a hidden marker class");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areNotEqual("none", bb.getStyle("display"), "widget should not be display:none");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testBoundingBox" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai container.append("<div id='bbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = Y.one("#bbTest");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: "#bbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:true
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bb), "bb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(bb.get("firstChild")), "Missing contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "boundingBox moved from it's place in the DOM");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testContentBox" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai container.append("<div id='cbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = Y.one("#cbTest");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai contentBox: "#cbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:true
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(cb), "cb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(cb.get("parentNode")), "Missing boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "contentBox moved from it's place in the DOM");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testBoundingBoxContentBox" : function() {
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai container.append("<div id='bbTest'></div>");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = Y.one("#bbTest");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai bb.append("<div id='cbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = Y.one("#cbTest");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: "#bbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai contentBox: "#cbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:true
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bb), "bb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(cb), "cb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(cb.get("parentNode")), "bb not not cb's parent");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "bb moved from it's place in the DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("firstChild").compareTo(cb), "cb not bb's firstChild");
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testBoundingBoxRenderTo" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // NOTE: PE content sits in body, not container
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.one("body").append("<div id='bbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = Y.one("#bbTest");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: "#bbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:container
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bb), "bb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(bb.get("firstChild")), "Missing contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "boundingBox moved from it's place in the DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testContentBoxRenderTo" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.one("body").append("<div id='cbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = Y.one("#cbTest");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai contentBox: "#cbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:container
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(cb), "cb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(cb.get("parentNode")), "Missing boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "contentBox moved from it's place in the DOM");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testBoundingBoxContentBoxRenderTo" : function() {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.one("body").append("<div id='bbTest'></div>");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = Y.one("#bbTest");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai bb.append("<div id='cbTest'></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var cb = Y.one("#cbTest");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: "#bbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai contentBox: "#cbTest",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:container
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
12bdc27e9ac1ba89d9657200cfb22aadad54e7fbSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(bb), "bb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(cb), "cb passed to constructor, not used");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(cb.get("parentNode")), "bb not not cb's parent");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "bb moved from it's place in the DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("firstChild").compareTo(cb), "cb not bb's firstChild");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testSrcNode" : function() {
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var container = Y.one("#widgetRenderToContainer");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai container.append("<div id='srcNode'><div id='foo'></div></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var sn = Y.one("#srcNode");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai srcNode: "#srcNode",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai render:true
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai });
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("contentBox").compareTo(sn), "srcNode should end up being cb");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("srcNode").compareTo(sn), "srcNode should still be accessible from srcNode attribute");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").compareTo(sn.get("parentNode")), "Missing boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(w.get("boundingBox").get("parentNode").compareTo(container), "srcNode moved from it's place in the DOM");
cea74478b281e652658d4e498aafc87c9fa90e92Satyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNotNull(w.get("contentBox").one("#foo"), "contents of srcNode not maintained");
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy(true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "testGetByNode" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id:"outer"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai o.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var ocb = o.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai ocb.append("<div><div id='outerContent'>Outer</div></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var i = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id:"inner"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai i.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var icb = i.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai icb.append("<div><div id='innerContent'>Inner</div></div>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var outerContent = ocb.one("#outerContent");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var innerContent = icb.one("#innerContent");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(o, Y.Widget.getByNode(outerContent), "Couldn't find outer widget from content");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(i, Y.Widget.getByNode(innerContent), "Couldn't find inner widget from content");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(o, Y.Widget.getByNode(o.get("contentBox")), "Couldn't find outer widget from outer contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(o, Y.Widget.getByNode(o.get("boundingBox")), "Couldn't find outer widget from outer boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(i, Y.Widget.getByNode(i.get("contentBox")), "Couldn't find inner widget from inner contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(i, Y.Widget.getByNode(i.get("boundingBox")), "Couldn't find inner widget from inner boundingBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai i.destroy(true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai o.destroy(true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai "testStrings" : function() {
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai var w = new Y.Widget();
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.ObjectAssert.ownsNoKeys(w.get("strings"), "No strings should be available by default");
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai w.set("strings", {
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai stringOne: "one",
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai stringTwo: "two"
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai });
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai // Strings get merged, not overwritten
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai w.set("strings", {
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai stringThree: "three",
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai stringFour: "four"
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai });
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.Assert.areEqual("one", w.get("strings").stringOne);
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.Assert.areEqual("two", w.get("strings").stringTwo);
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.Assert.areEqual("three", w.get("strings").stringThree);
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.Assert.areEqual("four", w.get("strings").stringFour);
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai "testLoading" : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var n = Y.Node.create('<div id="srcNode" class="yui3-widget-loading">Src Node Content</div>');
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai Y.one("body").append(n);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai srcNode:"#srcNode"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areSame(n, w.get("contentBox"), "srcNode not used as content box");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isFalse(n.hasClass("yui3-widget-loading"), "yui3-widget-loading should have removed");
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai
1809f37c5e32d3366ee0a26377448d74d5fa7ff5Satyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai suite.add(new Y.Test.Case({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai name : "getSkinName",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "getSkinName should return null if not rendered" : function () {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull( w.getSkinName() );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "getSkinName should return name from BB if available": function () {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var bb = Y.Node.create( '<div class="yui3-skin-foo"><div></div></div>' ),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb = bb.one( 'div' ),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w = new Y.Widget( {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai boundingBox: bb,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai contentBox: cb
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual( "foo", w.getSkinName() );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "getSkinName should return name from body or null": function () {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget().render(),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai body = Y.one( 'body' );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual( "sam", w.getSkinName() );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai body.removeClass( "yui3-skin-sam" );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull( w.getSkinName() );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai body.addClass( "yui3-skin-sam" );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "getSkinName should return name from ancestor if both ancestor and body are classed": function () {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget().render( '#testbed' ),
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai body = Y.one( 'body' );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai body.addClass( "yui3-skin-sam" );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.areEqual( "foo", w.getSkinName() );
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai suite.add(new Y.Test.Case({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai name:"destroy",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testRenderedDestroy: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({id:"foo"}).render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai try {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } catch(e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.fail("w.destroy() on a rendered widget threw an exception" + e);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testRenderedDeepDestroy: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget({id:"foo"}).render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var nref = Y.Node.create('<div id="deep">Foo</div>');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.get("contentBox").appendChild(nref);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai try {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy(true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#deep"), "Deep content box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.getDOMNode(nref), "Deep content still in Node cache");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } catch(e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.fail("w.destroy(true) on a rendered widget threw an exception" + e);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testUnrenderedDestroy: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai try {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } catch(e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.fail("w.destroy() on an unrendered widget threw an exception" + e);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testSingleBoxDestroy: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai function MyWidget() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.superclass.constructor.apply(this, arguments);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.NAME = "myWidget";
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.extend(MyWidget, Y.Widget, {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai CONTENT_TEMPLATE:null
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new MyWidget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id:"foo"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai try {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } catch(e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.fail("w.destroy() on a single box widget threw an exception" + e);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testSingleBoxDeepDestroy: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai function MyWidget() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.superclass.constructor.apply(this, arguments);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai MyWidget.NAME = "myWidget";
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.extend(MyWidget, Y.Widget, {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai CONTENT_TEMPLATE:null
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w = new MyWidget({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id:"foo"
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var nref = Y.Node.create('<div id="deep_single">Foo</div>');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.get("contentBox").appendChild(nref);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai try {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy(true);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#foo"), "Bounding box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.one("#deep_single"), "Deep content box still in DOM");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isNull(Y.Node.getDOMNode(nref), "Deep content still in Node cache");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai } catch(e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.fail("w.destroy(true) on a single box widget threw an exception" + e);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai suite.add(new Y.Test.Case({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai name:"UI Events",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testSingleSimple: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w, h, cb,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai actualEvents = [],
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai expectedEvents = ["widget:click"];
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb = w.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.append("<p class='et'>Some Content For My Widget</p>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai h = function(e) { actualEvents.push(e.type); };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.on("click", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.one(".et").simulate("click");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testSingleComplex: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var w, h, cb
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai actualEvents = [],
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai expectedEvents = ["widget:render",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:renderedChange",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:render",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mousedown",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:mouseup",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "widget:click"];
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb = w.get("contentBox");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.append("<p class='et'>Some Content For My Widget</p>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai h = function(e) { actualEvents.push(e.type); };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.on({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "click": h,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "render": h,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "renderedChange": h
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.on("widget:mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.on("foo|widget:mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.on("mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.after("widget:mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.after("foo|widget:mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.after("mouseup", h);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.after({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "mousedown" : h,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai "render" : h
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.one(".et").simulate("mousedown");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.one(".et").simulate("mouseup");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai cb.one(".et").simulate("click");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testNested: function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var outer = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var inner = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var ocb = outer.get('contentBox');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var icb = inner.get('contentBox');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var expectedEvents = ["outerClick", "innerClick", "outerClick"];
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var actualEvents = [];
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai outer.render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai ocb.setContent("<span class='oet'>Outer Content</span>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai inner.render(ocb);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai icb.setContent("<span class='iet'>Inner Content</span>");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai inner.after('click', function() {actualEvents.push("innerClick");});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai outer.after('click', function() {actualEvents.push("outerClick");});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Only outer
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai ocb.one(".oet").simulate("click");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // One Inner, One Outer
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai ocb.one(".iet").simulate("click");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai outer.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai inner.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testMultipleInstances : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var actualEvents = [],
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai expectedEvents = ["clickOuter", "clickInner", "clickOuter"],
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w1,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w2;
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai YUI().use('widget', function (Y) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w1 = new Y.Widget({render:true});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w1.get('contentBox').append('<div class="w2-container"></div><span class="miouter">Outer</span>');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w1.on('click', function (e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai actualEvents.push("clickOuter");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai YUI().use('widget', function (Y1) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w2 = new Y1.Widget({render:".w2-container"});
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w2.get('contentBox').append('<span class="miinner">Inner</span>');
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w2.on('click', function (e) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai actualEvents.push("clickInner");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Node.one(".miouter").simulate("click"); // only outer, once.
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Node.one(".miinner").simulate("click"); // inner, bubbled to outer (once each, without JS errors)
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.ArrayAssert.itemsAreEqual(expectedEvents, actualEvents);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w1.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai w2.destroy();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai suite.add(new Y.Test.Case({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai name:"clone",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testWidgetClone : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a1 = Y.clone(a);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a2 = Y.clone(a1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a3 = Y.clone(a2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a1 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a2 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a3 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b1 = Y.clone(b);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b2 = Y.clone(b1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b3 = Y.clone(b2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b1 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b2 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b3 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c1 = Y.clone(c);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c2 = Y.clone(c1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c3 = Y.clone(c2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c1 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c2 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c3 instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testWidgetHashClone : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // When Widget's are properties of an object it seems to break apart
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // something not passed to the recursive call maybe?
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c = new Y.Widget();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o = {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai a : a,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai b : b,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai c : c
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o1 = Y.clone(o);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o2 = Y.clone(o1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o3 = Y.clone(o2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.a instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.b instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.c instanceof Y.Widget);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testBaseClone : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai // Base works fine
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a1 = Y.clone(a);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a2 = Y.clone(a1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a3 = Y.clone(a2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a1 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a2 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(a3 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b1 = Y.clone(b);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b2 = Y.clone(b1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b3 = Y.clone(b2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b1 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b2 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(b3 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c1 = Y.clone(c);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c2 = Y.clone(c1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c3 = Y.clone(c2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c1 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c2 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(c3 instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai },
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai testBaseHashClone : function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var a = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var b = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var c = new Y.Base();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o = {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai a : a,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai b : b,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai c : c
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai };
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o1 = Y.clone(o);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o2 = Y.clone(o1);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var o3 = Y.clone(o2);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.a instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.b instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Assert.isTrue(o3.c instanceof Y.Base);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }));
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Test.Runner.setName("Widget Tests");
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Test.Runner.add(suite);
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Test.Runner.disableLogging();
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai Y.Test.Runner.run();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai var console;
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.one("#btnRun").set("disabled", false).on("click", function() {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai if (!console) {
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai console = new Y.Console({
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai id:"console",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai width:"100%",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai height:"90%",
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai verbose : false,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai printTimeout: 0,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai newestOnTop : false,
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai entryTemplate: '<pre class="{entry_class} {cat_class} {src_class}">'+
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai '<span class="{entry_cat_class}">{label}</span>'+
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai '<span class="{entry_content_class}">{message}</span>'+
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai '</pre>'
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }).render();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai }
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Test.Runner.enableLogging();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai Y.Test.Runner.run();
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai });
d3c5729464159cab52ada7ff4b6c26b91bd4dcb4Satyen Desai });
d4a90de3308f343c5d935b5f9b6bcc9f5bc4d05fSatyen Desai </script>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</body>
00cf03a1ca1624dac1fecc85f43fc34f8806aff9Luke Smith</html>