1/* eslint-env qunit */
2
3window.tablelayout = window.tablelayout || {};
4
5(function (tablelayout) {
6    'use strict';
7
8    QUnit.module( 'Tests for tablelayout.styleColumnWidths' );
9    QUnit.test('float style both rows', function(assert) {
10        var $fixture = jQuery( '#qunit-fixture' ).find('#smallTable');
11        var $table = $fixture.find( 'table' );
12        var expected_html = '<div class="plugin_tablelayout_placeholder" data-tablelayout="0"></div> <div class="table sectionedit8"><table class="inline flexiblewidth">' +
13            '<colgroup><col style="width: 80px;"><col style="width: 80px;"></colgroup> <thead> ' +
14            '<tr class="row0"> ' +
15            '    <th class="col0 leftalign"> Column 1  </th><th class="col1 leftalign"> Column 2  </th> ' +
16            '</tr> ' +
17            '<tr class="row1"> ' +
18            '    <th class="col0 leftalign"> 2         </th><th class="col1 leftalign"> T          </th> ' +
19            '</tr> ' +
20            '</thead> ' +
21            '<tbody><tr class="row2"> ' +
22            '    <td class="col0 leftalign"> 3         </td><td class="col1 leftalign"> v          </td> ' +
23            '</tr> ' +
24            '<tr class="row3"> ' +
25            '    <th class="col0 leftalign"> 4         </th><th class="col1 leftalign"> A          </th> ' +
26            '</tr> ' +
27            '<tr class="row4"> ' +
28            '    <td class="col0 leftalign"> 5         </td><td class="col1 leftalign"> b          </td> ' +
29            '</tr> ' +
30            '</tbody></table></div> <div class="secedit editbutton_table editbutton_2" style="display: block; margin-top: -12px;"></div>';
31        tablelayout.styleColumnWidths($table, ['80px', '80px']);
32        var actual_html = $fixture.html().replace(/\s\s+/g, ' ').trim();
33
34        assert.deepEqual(actual_html, expected_html.replace(/\s\s+/g, ' ').trim(), 'html is ok');
35    });
36
37    QUnit.test('float style first row only', function(assert) {
38        var $fixture = jQuery( '#qunit-fixture' ).find('#smallTable');
39        var $table = $fixture.find( 'table' );
40        var expected_html = '<div class="plugin_tablelayout_placeholder" data-tablelayout="0"></div> <div class="table sectionedit8"><table class="inline">' +
41            '<colgroup><col style="width: 80px;"><col></colgroup> <thead> ' +
42            '<tr class="row0"> ' +
43            '    <th class="col0 leftalign"> Column 1  </th><th class="col1 leftalign"> Column 2  </th> ' +
44            '</tr> ' +
45            '<tr class="row1"> ' +
46            '    <th class="col0 leftalign"> 2         </th><th class="col1 leftalign"> T          </th> ' +
47            '</tr> ' +
48            '</thead> ' +
49            '<tbody><tr class="row2"> ' +
50            '    <td class="col0 leftalign"> 3         </td><td class="col1 leftalign">  v         </td> ' +
51            '</tr> ' +
52            '<tr class="row3"> ' +
53            '    <th class="col0 leftalign"> 4         </th><th class="col1 leftalign"> A          </th> ' +
54            '</tr> ' +
55            '<tr class="row4"> ' +
56            '    <td class="col0 leftalign"> 5         </td><td class="col1 leftalign"> b          </td> ' +
57            '</tr> ' +
58            '</tbody></table></div> <div class="secedit editbutton_table editbutton_2" style="display: block; margin-top: -12px;"></div>';
59        tablelayout.styleColumnWidths($table, ['80px']);
60        var actual_html = $fixture.html().replace(/\s\s+/g, ' ').trim();
61
62        assert.deepEqual(actual_html, expected_html.replace(/\s\s+/g, ' ').trim(), 'html is ok');
63    });
64
65    QUnit.test('number of table columns', function(assert) {
66        var $table = jQuery( '#qunit-fixture' ).find('#smallTable').find( 'table' );
67        var actual_number = tablelayout.getNumberOfTableCols($table);
68        var expected_number = 2;
69        assert.equal(actual_number, expected_number, 'number of columns correctly counted');
70    });
71
72}(window.tablelayout));
73