data tables are going to need some work yet, but the other stuff seems to be working 100%
152 lines
4.8 KiB
JavaScript
152 lines
4.8 KiB
JavaScript
(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);
|
|
});
|
|
})();
|