/* eslint-env qunit */
window.tablelayout = window.tablelayout || {};
(function (tablelayout) {
'use strict';
QUnit.module( 'Tests for tablelayout.freezeTableRows' );
QUnit.test('fix 1 row and have 2 visible', function(assert) {
var $fixture = jQuery( '#qunit-fixture').find('#smallTable' );
var $table = $fixture.find( 'table' );
var expected_html = '
' +
' ' +
' ' +
' Column 1 | Column 2 | ' +
'
' +
'
' +
'
' +
' ' +
' ' +
' 2 | T | ' +
'
' +
' ' +
' ' +
' 3 | v | ' +
'
' +
' ' +
' 4 | A | ' +
'
' +
' ' +
' 5 | b | ' +
'
' +
'
';
var rowsFrozen = 1;
var rowsVisible = 2;
tablelayout.freezeTableRows($table, rowsFrozen, rowsVisible);
var actual_html = $fixture.html().replace(/\s\s+/g, ' ').trim();
var actual_width = parseInt(actual_html.substr(actual_html.indexOf('width: ')+'width: '.length, '203'.length));
actual_html = actual_html.replace(new RegExp(actual_width+'px','g'), 'px');
var expected_width = parseInt(expected_html.substr(expected_html.indexOf('width: ')+'width: '.length, '203'.length));
expected_html = expected_html.replace(new RegExp(expected_width+'px','g'), 'px');
var actual_height = parseInt(actual_html.substr(actual_html.indexOf('height: ')+'height: '.length, '42'.length));
actual_html = actual_html.replace(actual_height+'px', 'px');
var expected_height = parseInt(expected_html.substr(expected_html.indexOf('height: ')+'height: '.length, '42'.length));
expected_html = expected_html.replace(expected_height+'px', 'px');
var ALLOWED_VARIANCE = 5;
assert.ok(expected_width - ALLOWED_VARIANCE < actual_width && actual_width < expected_width + ALLOWED_VARIANCE, 'expected_width: '+ expected_width + '; actual_width: ' + actual_width);
assert.ok(expected_height - ALLOWED_VARIANCE < actual_height && actual_height < expected_height + ALLOWED_VARIANCE, 'expected_height: '+ expected_height + '; actual_height: ' + actual_height);
assert.deepEqual(actual_html, expected_html.replace(/\s\s+/g, ' ').trim(), 'html is ok');
});
}(window.tablelayout));