unit-tests.html revision e22964a5bd54fca80aacad5c7c717c3bc15ac6d3
84765788c559bfdead67172a79759ac60c77231bTilo Mitra<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
84765788c559bfdead67172a79759ac60c77231bTilo Mitra<script type="text/javascript" src="/build/yui/yui-min.js"></script>
84765788c559bfdead67172a79759ac60c77231bTilo Mitra<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
84765788c559bfdead67172a79759ac60c77231bTilo Mitra(function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min',
84765788c559bfdead67172a79759ac60c77231bTilo Mitra allowRollup: false
84765788c559bfdead67172a79759ac60c77231bTilo Mitra }).use("console", "test", "dump", "panel", function(Y) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Set up the page
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var ASSERT = Y.Assert,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra ARRAYASSERT = Y.ArrayAssert,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra BTNRUN = Y.one("#btnRun");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra BTNRUN.set("disabled", false);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.on("click", function(e){
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var myConsole = new Y.Console().render();
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var testBasic = new Y.Test.Case({
84765788c559bfdead67172a79759ac60c77231bTilo Mitra name: "API Tests",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Setup and tear down
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra setUp : function () {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //create recordset
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.one('#container').appendChild(Y.Node.create(template));
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //Some Ways to access recordset properties
84765788c559bfdead67172a79759ac60c77231bTilo Mitra tearDown : function () {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.one('#panelContent').remove();
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one(".yui3-widget-mask");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra testBasicPanel : function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra srcNode: "#panelContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra headerContent: "Test Header Content",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra bodyContent: "TestBodyContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra centered:true
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var bb = this.panel.get('boundingBox');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var buttons = this.panel.get('buttons');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //panel is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(this.panel.get('visible'), true);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areNotEqual(bb.getStyle('display'), "none");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //the button that is viewable is the close button
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(buttons[0].type, "close");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //there is no mask
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one('.yui3-widget-mask');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra testModalPanel : function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra srcNode: "#panelContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra headerContent: "Test Header Content",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra bodyContent: "TestBodyContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra centered:true,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var bb = this.panel.get('boundingBox');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var buttons = this.panel.get('buttons');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //panel is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(this.panel.get('visible'), true);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areNotEqual(bb.getStyle('display'), "none");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //the button that is viewable is the close button
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(buttons[0].type, "close");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //mask is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one('.yui3-widget-mask');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(mask.getStyle('display'), "block");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra testPanelWithHeaderButtons : function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra srcNode: "#panelContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra bodyContent: "TestBodyContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra centered:true,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra value: "hd button 1",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra action: function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.log('hd button1 clicked');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra value: "hd button 2",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra action: function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.log('hd button2 clicked');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra section: "header"
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var bb = this.panel.get('boundingBox');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var buttons = this.panel.get('buttons');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var wrap = Y.one('#panelContent .yui3-widget-hd .yui3-widget-button-wrapper');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var btns = Y.all('.yui3-button');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //panel is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(this.panel.get('visible'), true);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areNotEqual(bb.getStyle('display'), "none");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //the correct buttons are viewable
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.isUndefined(buttons[0].type);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //mask is not visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one('.yui3-widget-mask');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra testPanelWithFooterButtons : function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra srcNode: "#panelContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra bodyContent: "TestBodyContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra centered:true,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra value: "ft button 1",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra action: function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.log('ft button1 clicked');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra value: "ft button 2",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra action: function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.log('ft button2 clicked');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra section: "footer"
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var bb = this.panel.get('boundingBox');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var buttons = this.panel.get('buttons');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var ft = Y.one('#panelContent .yui3-widget-ft');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var wrap = Y.one('#panelContent .yui3-widget-ft .yui3-widget-button-wrapper');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var btns = Y.all('.yui3-button');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var btnspan = Y.all('.yui3-button-content');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //panel is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(this.panel.get('visible'), true);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areNotEqual(bb.getStyle('display'), "none");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //the correct buttons are viewable
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.isUndefined(buttons[0].type);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra //use innerText instead of getContent() to keep IE happy - it arbitrarily puts a </a> in sometimes
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areEqual(btnspan.item(0).get('innerText'), "ft button 1");
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areEqual(btnspan.item(1).get('innerText'), "ft button 2");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //mask is not visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one('.yui3-widget-mask');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra testPanelWithChangingButtons: function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra srcNode: "#panelContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra bodyContent: "TestBodyContent",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra centered:true,
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var bb = this.panel.get('boundingBox');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var buttons = this.panel.get('buttons');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var ft = Y.one('#panelContent .yui3-widget-ft');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var wrap = Y.one('#panelContent .yui3-widget-ft .yui3-widget-button-wrapper');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var btns = Y.all('.yui3-button');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var btnspan = Y.all('.yui3-button-content');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //panel is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(this.panel.get('visible'), true);
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areNotEqual(bb.getStyle('display'), "none");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //the correct buttons are viewable - only the close button in this case
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(buttons[0].type, "close");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //add a button in to the footer
84765788c559bfdead67172a79759ac60c77231bTilo Mitra value: "ft button 1",
84765788c559bfdead67172a79759ac60c77231bTilo Mitra action: function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.log('ft button1 clicked');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra ft = Y.one('#panelContent .yui3-widget-ft');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra btns = Y.all('.yui3-button');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra btnspan = Y.all('.yui3-button-content');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //test to make sure new button is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //there should be 2 buttons, the original [x] and the new footer button
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areEqual(btnspan.item(1).get('innerText'), "ft button 1");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //add the close button in to the header
84765788c559bfdead67172a79759ac60c77231bTilo Mitra type:"close"
84765788c559bfdead67172a79759ac60c77231bTilo Mitra hd = Y.one('#panelContent .yui3-widget-hd');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra ft = Y.one('#panelContent .yui3-widget-ft');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra btns = Y.all('.yui3-button');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra btnspan = Y.all('.yui3-button-content');
e22964a5bd54fca80aacad5c7c717c3bc15ac6d3Tilo Mitra Y.Assert.areEqual(btnspan.item(2).get('innerText'), "ft button 1"); //the last one should be the footer since the first 2 are the header [x] buttons
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //mask is visible
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var mask = Y.one('.yui3-widget-mask');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Assert.areEqual(mask.getStyle('display'), "block");
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Instantiation
84765788c559bfdead67172a79759ac60c77231bTilo Mitra //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // testCreateEmptyRecordset: function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // var rs = new Y.Recordset(),
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // rs.on('remove', function(e) {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //instantiate empty recordset
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //perform operations on it
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // rs.add({a:1, b:2, c:3});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(rs.getRecord(0).getValue(), {a:1, b:2, c:3});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // rs.add([{a:'hey', b:'yo', c:'hi!'}, {a:2, b:5, c:6}]);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(rs.getRecord(2).getValue(), {a:2, b:5, c:6});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(rem[0].getValue(), {a:2, b:5, c:6});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // // Get Records
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //---------------------------------------------
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // testGetRecords: function() {
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // var newRecord,newRecord1, newRecord2, id;
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //this.rs.get('records');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // // var newrs = new Y.Recordset({records: [{a:10,b:10,c:10}]});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // // newrs.get('records');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //Single Record
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // newRecord1 = this.rs.getRecordByIndex(1);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // newRecord2 = this.rs.getRecord(1);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(newRecord1.getValue(), this.initialData[1]);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(newRecord1, newRecord2);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // //Multiple Records
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // newRecord = this.rs.getRecordsByIndex(1,2);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(newRecord[0].getValue(), this.initialData[1]);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(newRecord[1].getValue(), this.initialData[2]);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // id = this.rs.getRecordByIndex(0).get('id');
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // newRecord = this.rs.getRecord(id);
84765788c559bfdead67172a79759ac60c77231bTilo Mitra // Y.ObjectAssert.areEqual(newRecord, this.rs.getRecordByIndex(0));
84765788c559bfdead67172a79759ac60c77231bTilo Mitra var suite = new Y.Test.Suite({name:"Panel Test Suite"});
84765788c559bfdead67172a79759ac60c77231bTilo Mitra Y.Test.Runner.setName("Panel Test Runner");