define([
|
'intern!tdd',
|
'intern/chai!assert',
|
'dojo/_base/declare',
|
'dojo/query',
|
'dgrid/Grid',
|
'dgrid/ColumnSet',
|
'dgrid/test/data/orderedData'
|
], function (test, assert, declare, query, Grid, ColumnSet, orderedData) {
|
|
var grid;
|
|
function runClassNameTests() {
|
var domNode = grid.domNode,
|
node;
|
|
assert.strictEqual(query('.dgrid-cell.field-order', domNode).length, 10,
|
'Each row (including header) should contain a cell with the field-order class');
|
assert.strictEqual(query('.dgrid-cell.field-name', domNode).length, 10,
|
'Each row (including header) should contain a cell with the field-name class');
|
assert.strictEqual(query('.dgrid-cell.field-description', domNode).length, 10,
|
'Each row (including header) should contain a cell with the field-description class');
|
|
assert.strictEqual(query('.dgrid-cell.field-name.name-column.main-column', domNode).length, 10,
|
'Each row\'s (including header\'s) field-name cell should have the name-column and main-column classes');
|
|
assert.strictEqual(query('.dgrid-cell.field-description.desc-row', domNode).length, 9,
|
'Each body row\'s description cell should also have the desc-row class');
|
node = query('.dgrid-header .dgrid-cell.field-description', domNode)[0];
|
assert.strictEqual(node.className.indexOf('undefined'), -1,
|
'Header row\'s description cell should NOT contain \'undefined\' due to className returning \'\'');
|
assert.isTrue(query('.dgrid-content .dgrid-cell.field-description', domNode).every(function (cell) {
|
return (/desc-\w+ desc-row/).test(cell.className);
|
}),
|
'Each body row\'s description cell has two desc-* classes (one being desc-row)');
|
}
|
|
test.suite('columns', function () {
|
test.afterEach(function () {
|
grid.destroy();
|
});
|
|
test.test('className property', function () {
|
grid = new Grid({
|
columns: {
|
order: 'Order',
|
name: {
|
label: 'Name',
|
className: 'name-column main-column'
|
},
|
description: {
|
label: 'Description',
|
className: function (object) {
|
return object ?
|
'desc-' + object.name.replace(/ /g, '') + ' desc-row' :
|
'';
|
}
|
}
|
}
|
});
|
document.body.appendChild(grid.domNode);
|
grid.startup();
|
grid.renderArray(orderedData.items);
|
runClassNameTests();
|
});
|
});
|
|
test.suite('columnSets', function () {
|
test.afterEach(function () {
|
grid.destroy();
|
});
|
|
test.test('className property', function () {
|
grid = new (declare([Grid, ColumnSet]))({
|
columnSets: [
|
[[
|
{ field: 'order', label: 'Order' },
|
{
|
field: 'name',
|
label: 'Name',
|
className: 'name-column main-column'
|
}
|
]], [[
|
{
|
field: 'description',
|
label: 'Description',
|
className: function (object) {
|
return object ?
|
'desc-' + object.name.replace(/ /g, '') + ' desc-row' :
|
'';
|
}
|
}
|
]]
|
]
|
});
|
document.body.appendChild(grid.domNode);
|
grid.startup();
|
grid.renderArray(orderedData.items);
|
runClassNameTests();
|
});
|
});
|
});
|