--- /dev/null
+// DATA_TEMPLATE: complex_header_2
+oTest.fnStart( "fnSetColumnVis with complex headers" );
+
+$(document).ready( function () {
+ /* Check the default */
+ var oTable = $('#example').dataTable();
+ var oSettings = oTable.fnSettings();
+
+ oTest.fnTest(
+ "All columns are visible by default",
+ null,
+ function () { return $('#example tbody tr:eq(0) td').length == 5; }
+ );
+
+ oTest.fnTest(
+ "Hide the first column",
+ function () {
+ $('#example').dataTable().fnSetColumnVis( 0, false );
+ },
+ function () { return $('#example tbody tr:eq(0) td').length == 4; }
+ );
+
+ oTest.fnTest(
+ "First cell is '2' - first column hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "2"; }
+ );
+
+ oTest.fnTest(
+ "First cell has colspan of 3",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 3; }
+ );
+
+ oTest.fnTest(
+ "First cell has rowspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "First cell in last column is '11'",
+ null,
+ function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 11; }
+ );
+
+ oTest.fnTest(
+ "First cell in last column has been truncated to one column",
+ null,
+ function () { return $('#example thead tr:eq(4) th:eq(0)')[0].getAttribute('colspan') == 1; }
+ );
+
+
+ oTest.fnTest(
+ "Hide the second column",
+ function () {
+ $('#example').dataTable().fnSetColumnVis( 0, true );
+ $('#example').dataTable().fnSetColumnVis( 1, false );
+ },
+ function () { return $('#example tbody tr:eq(0) td').length == 4; }
+ );
+
+ oTest.fnTest(
+ "First cell is '1' - second column hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "1"; }
+ );
+
+ oTest.fnTest(
+ "Second cell is '2' - second column hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "2"; }
+ );
+
+ oTest.fnTest(
+ "First cell in fourth row is '10' (visibly the first) - second column hidden",
+ null,
+ function () { return $('#example thead tr:eq(3) th:eq(0)').html() == "10"; }
+ );
+
+ oTest.fnTest(
+ "First cell has colspan of 1",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 1; }
+ );
+
+ oTest.fnTest(
+ "Second cell has colspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('colspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "First cell has rowspan of 1",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 1; }
+ );
+
+ oTest.fnTest(
+ "Second cell has rowspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "First cell in last column is '11'",
+ null,
+ function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 11; }
+ );
+
+ oTest.fnTest(
+ "First cell in last column has been truncated to one column",
+ null,
+ function () { return $('#example thead tr:eq(4) th:eq(0)')[0].getAttribute('colspan') == 1; }
+ );
+
+
+ oTest.fnTest(
+ "Hide the first two columns",
+ function () {
+ $('#example').dataTable().fnSetColumnVis( 0, false );
+ $('#example').dataTable().fnSetColumnVis( 1, false );
+ },
+ function () { return $('#example tbody tr:eq(0) td').length == 3; }
+ );
+
+ oTest.fnTest(
+ "First cell is '2' - first two columns hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "2"; }
+ );
+
+ oTest.fnTest(
+ "Second cell is '3' - first two columns hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "3"; }
+ );
+
+ oTest.fnTest(
+ "First cell in third row is '6' - first two columns hidden",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(0)').html() == "6"; }
+ );
+
+ oTest.fnTest(
+ "First cell has colspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('colspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "First cell has rowspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)')[0].getAttribute('rowspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "Second cell has rowspan of 1",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 1; }
+ );
+
+ oTest.fnTest(
+ "First cell in last column is '12'",
+ null,
+ function () { return $('#example thead tr:eq(4) th:eq(0)').html() == 12; }
+ );
+
+
+ oTest.fnTest(
+ "Hide the third column",
+ function () {
+ $('#example').dataTable().fnSetColumnVis( 0, true );
+ $('#example').dataTable().fnSetColumnVis( 1, true );
+ $('#example').dataTable().fnSetColumnVis( 2, false );
+ },
+ function () { return $('#example tbody tr:eq(0) td').length == 4; }
+ );
+
+ oTest.fnTest(
+ "First cell is '1' - third column hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(0)').html() == "1"; }
+ );
+
+ oTest.fnTest(
+ "Second cell is '2' - third column hidden",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)').html() == "2"; }
+ );
+
+ oTest.fnTest(
+ "First cell (visible second) in third row is '6' - third column hidden",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(0)').html() == "6"; }
+ );
+
+ oTest.fnTest(
+ "Second cell has colspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('colspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "Second cell has rowspan of 2",
+ null,
+ function () { return $('#example thead tr:eq(0) th:eq(1)')[0].getAttribute('rowspan') == 2; }
+ );
+
+ oTest.fnTest(
+ "Third row first cell (second visible) colspan is 1",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(0)')[0].getAttribute('colspan') == 1; }
+ );
+
+ oTest.fnTest(
+ "Third row second cell (third visible) value is 7",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(1)').html() == "7"; }
+ );
+
+ oTest.fnTest(
+ "Third row second cell (third visible) colspan is 1",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(1)')[0].getAttribute('colspan') == 1; }
+ );
+
+ oTest.fnTest(
+ "Third row second cell (third visible) rowspan is 3",
+ null,
+ function () { return $('#example thead tr:eq(2) th:eq(1)')[0].getAttribute('rowspan') == 3; }
+ );
+
+
+ oTest.fnComplete();
+} );
\ No newline at end of file