📄 datatable.js
字号:
Assert.areSame("", dt.getMsgTbodyEl().rows[0].cells[0].style.display, "Expected message displayed");
Assert.areSame(true, Dom.hasClass(dt.getMsgTbodyEl().rows[0].cells[0], "yui-dt-empty"), "Expected empty message");
},
testDeleteThenInsertRows: function() {
var dt = this.createInstance();
dt.deleteRow(0);
dt.deleteRow(0);
dt.deleteRow(0);
dt.deleteRow(0);
dt.addRow({a:"4a",b:"4b",c:"4c"}, 0);
var nRecordsLength = dt.getRecordSet().getLength();
var nTrElsLength = dt.getTbodyEl().rows.length;
Assert.areSame(1, nRecordsLength, "Expected 1 Record");
Assert.areSame(1, nTrElsLength, "Expected 1 TR el");
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Insert 1: Row mismatch");
dt.addRow({a:"5a",b:"5b",c:"5c"}, 0);
nRecordsLength = dt.getRecordSet().getLength();
nTrElsLength = dt.getTbodyEl().rows.length;
Assert.areSame(2, nRecordsLength, "Expected 2 Records");
Assert.areSame(2, nTrElsLength, "Expected 2 TR els");
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Insert 2: Row mismatch");
dt.addRow({a:"6a",b:"6b",c:"6c"}, 0);
nRecordsLength = dt.getRecordSet().getLength();
nTrElsLength = dt.getTbodyEl().rows.length;
Assert.areSame(3, nRecordsLength, "Expected 3 Records");
Assert.areSame(3, nTrElsLength, "Expected 3 TR els");
elRow = dt.getFirstTrEl();
oTestRecord = dt.getRecord(dt.getFirstTrEl());
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Insert 3: Row mismatch");
},
testDeleteInsertThenSortRows: function() {
var dt = this.createInstance();
dt.deleteRow(0);
dt.deleteRow(0);
dt.deleteRow(0);
dt.deleteRow(0);
dt.addRow({a:"4a",b:"4b",c:"4c"}, 0);
dt.addRow({a:"5a",b:"5b",c:"5c"}, 0);
dt.addRow({a:"6a",b:"6b",c:"6c"}, 0);
dt.sortColumn(dt.getColumn(0));
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Expected row and Record to be in sync");
}
});
var dtRowMutationTest = new DataTableTestCase(dtRowMutationTemplate);
/**
*
*
* Tests sorting APIs.
*
*
*/
var dtSortingTemplate = YAHOO.lang.merge(dtBaseTemplate, {
name: "DataTable Sorting Tests",
dsData: [
{a:0,b:"zero"},
{a:1,b:"one"},
{a:2,b:"two"},
{a:3,b:"three"}
],
dsConfig: {
responseType:YAHOO.util.DataSource.TYPE_JSARRAY,
responseSchema:{fields:["a","b"]}
},
columns: [
{key:"a",label:"numbers",sortable:true},
{key:"b",label:"strings",sortable:true}
],
testSortByElementClick: function() {
var dt = this.createInstance();
var oColumn = dt.getColumn(1);
var el = dt.getThEl(oColumn);
UserAction.click(el);
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Click TH: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Click TH: Row mismatch");
var childEl = el.firstChild;
UserAction.click(childEl);
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame("zero", dt.getRecord(dt.getFirstTrEl()).getData("b"), "Click container: Unexpected data");
Assert.areSame(oTestRecord.getId(), elRow.id, "Click container: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Click container: Row mismatch");
UserAction.click(childEl);
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame("one", dt.getRecord(dt.getFirstTrEl()).getData("b"), "Click label: Unexpected data");
Assert.areSame(oTestRecord.getId(), elRow.id, "Click label: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Click label: Row mismatch");
},
testSortNumber: function() {
var dt = this.createInstance();
var oColumn = dt.getColumn(0);
dt.sortColumn(oColumn);
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top asc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom asc: Row mismatch");
dt.sortColumn(oColumn);
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top desc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom desc: Row mismatch");
},
testSortString: function() {
var dt = this.createInstance();
var oColumn = dt.getColumn(1);
dt.sortColumn(oColumn);
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top asc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom asc: Row mismatch");
dt.sortColumn(oColumn);
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top desc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom desc: Row mismatch");
},
testInsertThenSort: function() {
var dt = this.createInstance();
dt.addRow({a:4,b:"four"}, 0)
dt.sortColumn(dt.getColumn(1));
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top asc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom asc: Row mismatch");
dt.sortColumn(dt.getColumn(1));
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top desc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom desc: Row mismatch");
},
testSortThenAppend: function() {
var dt = this.createInstance();
dt.sortColumn(dt.getColumn(1));
dt.addRow({a:4,b:"four"});
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top asc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom asc: Row mismatch");
dt.sortColumn(dt.getColumn(1));
elRow = dt.getFirstTrEl();
oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Top asc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Top desc: Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Bottom desc: Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Bottom desc: Row mismatch");
},
testDeleteAppendInsertThenSort: function() {
var dt = this.createInstance();
dt.deleteRow(dt.getFirstTrEl());
dt.addRow({a:4,b:"four"});
dt.addRow({a:5,b:"five"},0);
dt.sortColumn(dt.getColumn(1));
var elRow = dt.getFirstTrEl();
var oTestRecord = dt._oRecordSet._records[0];
Assert.areSame(oTestRecord.getId(), elRow.id, "Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Row mismatch");
elRow = dt.getLastTrEl();
oTestRecord = dt._oRecordSet._records[dt.getTbodyEl().rows.length-1];
Assert.areSame(oTestRecord.getId(), elRow.id, "Unexpected DOM ID");
DataTableAssert.areSameRow(elRow, oTestRecord, dt, "Row mismatch");
}
});
var dtSortingTest = new DataTableTestCase(dtSortingTemplate);
/**
*
*
* Tests row selection APIs.
*
*
*/
var dtRowSelectionTemplate = YAHOO.lang.merge(dtBaseTemplate, {
name: "DataTable Row Selection Tests",
testSelectUnselectByEl: function() {
var dt = this.createInstance();
var elRow = dt.getFirstTrEl();
dt.selectRow(elRow);
var aSelectedRows = dt.getSelectedRows();
Assert.areSame(true, YAHOO.util.Dom.hasClass(elRow, "yui-dt-selected"), "Failed to apply CSS");
ArrayAssert.contains(elRow.id, aSelectedRows, "Failed to select first row");
dt.unselectRow(elRow);
aSelectedRows = dt.getSelectedRows();
Assert.areSame(false, YAHOO.util.Dom.hasClass(elRow, "yui-dt-selected"), "Failed to remove CSS");
ArrayAssert.doesNotContain(elRow.id, aSelectedRows, "Failed to unselect first row");
},
testSelectThenInsert: function() {
var dt = this.createInstance();
var elRow = dt.getFirstTrEl();
dt.selectRow(elRow);
dt.addRow({a:"4a",b:"4b",c:"4c"}, 0);
var aSelectedRows = dt.getSelectedRows();
var elTestRow = dt.getTbodyEl().rows[1];
Assert.areSame(true, YAHOO.util.Dom.hasClass(elTestRow, "yui-dt-selected"), "Failed to apply CSS");
ArrayAssert.contains(elTestRow.id, aSelectedRows, "Second row should be selected");
elTestRow = dt.getTbodyEl().rows[0];
Assert.areNotSame(true, YAHOO.util.Dom.hasClass(elTestRow, "yui-dt-selected"), "Unexpected CSS");
ArrayAssert.doesNotContain(elTestRow.id, aSelectedRows, "First row should not be selected");
},
testSingleSelect: function() {
var oConfig = {
selectionMode:"single"
}
var dt = this.createInstance(null, oConfig);
dt.subscribe("rowClickEvent",dt.onEventSelectRow,dt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -