Merge branch 'master' into PROT-9-webservice
[proteocache.git] / webapp / resources / datatables-1.9.4 / media / unit_testing / tests_onhold / 6_delayed_rendering / bAutoWidth.js
diff --git a/webapp/resources/datatables-1.9.4/media/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js b/webapp/resources/datatables-1.9.4/media/unit_testing/tests_onhold/6_delayed_rendering/bAutoWidth.js
new file mode 100644 (file)
index 0000000..45b5a00
--- /dev/null
@@ -0,0 +1,145 @@
+// DATA_TEMPLATE: empty_table
+oTest.fnStart( "bAutoWidth" );
+
+/* It's actually a little tricky to test this. We can't test absolute numbers because
+ * different browsers and different platforms will render the width of the columns slightly
+ * differently. However, we certainly can test the principle of what should happen (column 
+ * width doesn't change over pages)
+ */
+
+$(document).ready( function () {
+       /* Check the default */
+       var oTable = $('#example').dataTable( {
+               "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+               "bDeferRender": true
+       } );
+       var oSettings = oTable.fnSettings();
+       
+       oTest.fnWaitTest( 
+               "Auto width is enabled by default",
+               null,
+               function () { return oSettings.oFeatures.bAutoWidth; }
+       );
+       
+       oTest.fnWaitTest( 
+               "First column has a width assigned to it",
+               null,
+               function () { return $('#example thead th:eq(0)').attr('style').match(/width/i); }
+       );
+       
+       /*
+       This would seem like a better test - but there appear to be difficulties with tables
+       which are bigger (calculated) than there is actually room for. I suspect this is actually
+       a bug in datatables
+       oTest.fnWaitTest( 
+               "Check column widths on first page match second page",
+               null,
+               function () {
+                       var anThs = $('#example thead th');
+                       var a0 = anThs[0].offsetWidth;
+                       var a1 = anThs[1].offsetWidth;
+                       var a2 = anThs[2].offsetWidth;
+                       var a3 = anThs[3].offsetWidth;
+                       var a4 = anThs[4].offsetWidth;
+                       $('#example_next').click();
+                       var b0 = anThs[0].offsetWidth;
+                       var b1 = anThs[1].offsetWidth;
+                       var b2 = anThs[2].offsetWidth;
+                       var b3 = anThs[3].offsetWidth;
+                       var b4 = anThs[4].offsetWidth;
+                       console.log( a0, b0, a1, b1, a2, b2, a3, b3 );
+                       if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
+                               return true;
+                       else
+                               return false;
+               }
+       );
+       
+       oTest.fnWaitTest( 
+               "Check column widths on second page match thid page",
+               null,
+               function () {
+                       var anThs = $('#example thead th');
+                       var a0 = anThs[0].offsetWidth;
+                       var a1 = anThs[1].offsetWidth;
+                       var a2 = anThs[2].offsetWidth;
+                       var a3 = anThs[3].offsetWidth;
+                       var a4 = anThs[4].offsetWidth;
+                       $('#example_next').click();
+                       var b0 = anThs[0].offsetWidth;
+                       var b1 = anThs[1].offsetWidth;
+                       var b2 = anThs[2].offsetWidth;
+                       var b3 = anThs[3].offsetWidth;
+                       var b4 = anThs[4].offsetWidth;
+                       if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
+                               return true;
+                       else
+                               return false;
+               }
+       );
+       */
+       
+       /* Check can disable */
+       oTest.fnWaitTest( 
+               "Auto width can be disabled",
+               function () {
+                       oSession.fnRestore();
+                       oTable = $('#example').dataTable( {
+                               "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+                               "bDeferRender": true,
+                               "bAutoWidth": false
+                       } );
+                       oSettings = oTable.fnSettings();
+               },
+               function () { return oSettings.oFeatures.bAutoWidth == false; }
+       );
+       
+       oTest.fnWaitTest( 
+               "First column does not have a width assigned to it",
+               null,
+               function () { return $('#example thead th:eq(0)').attr('style') == null; }
+       );
+       
+       /*
+       oTest.fnWaitTest( 
+               "Check column widths on first page do not match second page",
+               null,
+               function () {
+                       var anThs = $('#example thead th');
+                       var a0 = anThs[0].offsetWidth;
+                       var a1 = anThs[1].offsetWidth;
+                       var a2 = anThs[2].offsetWidth;
+                       var a3 = anThs[3].offsetWidth;
+                       var a4 = anThs[4].offsetWidth;
+                       $('#example_next').click();
+                       var b0 = anThs[0].offsetWidth;
+                       var b1 = anThs[1].offsetWidth;
+                       var b2 = anThs[2].offsetWidth;
+                       var b3 = anThs[3].offsetWidth;
+                       var b4 = anThs[4].offsetWidth;
+                       if ( a0==b0 && a1==b1 && a2==b2 && a3==b3 )
+                               return false;
+                       else
+                               return true;
+               }
+       );
+       */
+       
+       /* Enable makes no difference */
+       oTest.fnWaitTest( 
+               "Auto width enabled override",
+               function () {
+                       oSession.fnRestore();
+                       oTable = $('#example').dataTable( {
+                               "sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
+                               "bDeferRender": true,
+                               "bAutoWidth": true
+                       } );
+                       oSettings = oTable.fnSettings();
+               },
+               function () { return oSettings.oFeatures.bAutoWidth; }
+       );
+       
+       
+       oTest.fnComplete();
+} );
\ No newline at end of file