(function() { var gCount = -1; var Dom=YAHOO.util.Dom, Assert=YAHOO.util.Assert, ObjectAssert=YAHOO.util.ObjectAssert, ArrayAssert=YAHOO.util.ArrayAssert, DateAssert=YAHOO.util.DateAssert, UserAction=YAHOO.util.UserAction, TestCase = YAHOO.tool.TestCase, TestLogger = YAHOO.tool.TestLogger, TestRunner = YAHOO.tool.TestRunner, TestSuite = YAHOO.tool.TestSuite, DataSource = YAHOO.util.DataSource, DataTable = YAHOO.widget.DataTable, ColumnSet = YAHOO.widget.ColumnSet, RecordSet = YAHOO.widget.RecordSet; /** * * * Base DataTable test template. Sets up values for a DataTable instance. * * */ var dtBaseTemplate = { name: "DataTable Base Tests", dsData: [ {a:"0a",b:"0b",c:"0c"}, {a:"1a",b:"1b",c:"1c"}, {a:"2a",b:"2b",c:"2c"}, {a:"3a",b:"3b",c:"3c"} ], dsConfig: { responseType:YAHOO.util.DataSource.TYPE_JSARRAY, responseSchema:{fields:["a","b","c"]} }, columns: [{key:"a"},{key:"b"},{key:"c"}] }; /** * * * Base DataTable test case. * * */ function DataTableTestCase(template) { DataTableTestCase.superclass.constructor.call(this, template); }; YAHOO.lang.extend(DataTableTestCase, TestCase); DataTableTestCase.prototype.setUp = function() { // Create container anew this.container = document.createElement("div"); ///this.container.id = "testDTContainer"; // Is this necessary? document.body.appendChild(this.container); // Create DataSource anew this.datasource = new YAHOO.util.DataSource(this.dsData, this.dsConfig); }; DataTableTestCase.prototype.tearDown = function() { // Destroy DataTable this.datatable.destroy(); this.datatable = null; // Destroy container if(this.container !== null) { YAHOO.util.Event.purgeElement(this.container, true); document.body.removeChild(this.container); this.container = null; } // TODO: need a destroy method this.datasource = null; }; DataTableTestCase.prototype.createInstance = function(oDT, oConfig) { oDT = oDT || DataTable; this.datatable = new oDT(this.container, this.columns, this.datasource, oConfig); gCount++; return this.datatable; }; /** * * * Tests ColumnSet APIs. * * */ var csColumnSetTemplate = YAHOO.lang.merge(dtBaseTemplate, { name: "DataTable ColumnSet Tests", testGetColumnSet: function() { var dt = this.createInstance(); var cs = dt.getColumnSet(); Assert.isInstanceOf(ColumnSet, cs, "Expected a ColumnSet"); }, testGetColumn: function() { var dt = this.createInstance(); //dt.subscribe("initEvent", function() { var cs = dt.getColumnSet(); var oColumn = cs.keys[0]; var sColId = oColumn.getId(); var el = dt.getTheadEl().rows[0].cells[0]; var oTestColumn = dt.getColumn(el); Assert.areSame(oColumn, oTestColumn, "Expected to get Column by el reference"); //TODO: get column by el reference child // Removed col elements //el = Dom.get(dt.getId()+"-col"+sColId); //oTestColumn = dt.getColumn(el); //Assert.areSame(oColumn, oTestColumn, "Expected to get Column by DOM ID"); oTestColumn = dt.getColumn(0); Assert.areSame(oColumn, oTestColumn, "Expected to get Column by key index"); oTestColumn = cs.getColumn("a"); Assert.areSame(oColumn, oTestColumn, "Expected to get Column by key (ColumnSet method)"); oTestColumn = cs.getColumnById(sColId); Assert.areSame(oColumn, oTestColumn, "Expected to get Column by Column ID (ColumnSet method)"); //}); } //TODO: More ColumnSet APIs }); var csColumnSetTest = new DataTableTestCase(csColumnSetTemplate); /** * * * Runs tests. * * */ YAHOO.util.Event.addListener(window, "load", function() { var columnsetsuite = new TestSuite("ColumnSet Test Suite"); columnsetsuite.add(csColumnSetTest); TestRunner.add(columnsetsuite); }); })();