cccc/static/sg/tests/grid/grid.js
2018-12-04 09:58:47 +01:00

68 lines
1.9 KiB
JavaScript
Executable File

(function ($) {
var grid;
var el, offsetBefore, offsetAfter, dragged;
var drag = function(handle, dx, dy) {
offsetBefore = el.offset();
$(handle).simulate("drag", {
dx: dx || 0,
dy: dy || 0
});
dragged = { dx: dx, dy: dy };
offsetAfter = el.offset();
}
var moved = function (dx, dy, msg) {
msg = msg ? msg + "." : "";
var actual = { left: offsetAfter.left, top: offsetAfter.top };
var expected = { left: offsetBefore.left + dx, top: offsetBefore.top + dy };
same(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
}
var ROWS = 500, COLS = 10;
var data = [], row;
for (var i = 0; i < ROWS; i++) {
row = { id: "id_" + i };
for (var j = 0; j < COLS; j++) {
row["col_" + j] = i + "." + j;
}
data.push(row);
}
var cols = [], col;
for (var i = 0; i < COLS; i++) {
cols.push({
id: "col" + i,
field: "col_" + i,
name: "col_" + i
});
}
cols[0].minWidth = 70;
grid = new Slick.Grid("#container", data, cols);
grid.render();
module("grid - column resizing");
test("minWidth is respected", function () {
var firstCol = $("#container .slick-header-column:first");
firstCol.find(".slick-resizable-handle:first").simulate("drag", { dx: 100, dy: 0 });
firstCol.find(".slick-resizable-handle:first").simulate("drag", { dx: -200, dy: 0 });
equal(firstCol.outerWidth(), 70, "width set to minWidth");
});
test("onColumnsResized is fired on column resize", function () {
expect(2);
grid.onColumnsResized.subscribe(function() { ok(true,"onColumnsResized called") });
var oldWidth = cols[0].width;
$("#container .slick-resizable-handle:first").simulate("drag", { dx: 100, dy: 0 });
equal(cols[0].width, oldWidth+100-1, "columns array is updated");
});
test("getData should return data", function () {
equal(grid.getData(), data);
});
})(jQuery);