datatable.html revision 364b3f41370b5853ec58ed0f094565f69ab7c7fd
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith<!DOCTYPE HTML>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<html>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<head>
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith<meta charset="utf-8">
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<title>Datatable Tests</title>
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css">
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssbase/base-min.css">
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<script type="text/javascript" src="/build/yui/yui-debug.js"></script>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<style>
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith html {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-family: sans-serif;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-size: smaller;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith .message {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith padding: 5px;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-size:120%;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith background: #FFFCB6;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith border:1px solid #C9C675;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith #results dt {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-weight:bold;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith padding:3px;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith display:block;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith #results dd {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-weight:normal;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith color:grey;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith #results dd span {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith color: red;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith font-weight:bold;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra</style>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra</head>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<body class="yui3-skin-sam">
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h1>Datatable Tests</h1>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra<p>To test the performance of various datatables, look at the following sections in the code:
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith <pre>
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra//large or small dataset.
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitradata: large,
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra//---------------------------------------------
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra// Special instructions
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra//---------------------------------------------
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra_should: {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith ignore: {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //ignore following tests (good to do if you are doing a large dataset)
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testBaseDatatable: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXDatatable: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_FixedCol: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_AutoCol: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable_BigHeaders: false
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra}
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith </pre>
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Toggle <code>data</code> from <code>large</code> to <code>small</code> to get a different sized dataset. The <code>ignore</code> object determines which table to load. If testing performance, it is recommended that you only enable 1 table at a time.</p>
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith <hr>
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith <hr>
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra<div id="results">
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith <h3>Test Results</h3>
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra</div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Base Datatable</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="base"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Scrolling XY Datatable (Set columnwidths)</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<P>A general XY scrolling datatable. Column widths are provided for all columns, table width and height is provided.</p>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="scrolling-xy"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Scrolling X Datatable (Auto Columns)</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<p>A X-scrolling datatable. Column A and B have specified widths. The rest of the columns do not have any widths specified. Only a height of 200px is specified.</p>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="scrolling-x"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Scrolling Y Datatable</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<p>A Y-scrolling datatable. Column widths are provided for all columns, table height is provided. Since all cols have specified width, you may see this table overflowing past its container div (the blue div in the background). </p>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="scrolling-y"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Scrolling Datatable with no ColumnWidth</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<p>A Y-scrolling datatable, where only the first 2 columns have a specified width. Only the table height is provided.</p>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="scrolling-colwidth"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<h3>Scrolling Datatable with Big Headers</h3>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<p>A XY-scrolling datatable, where only the first 2 columns have a specified width. Table height and width is provided. The table headers are of larger width than the table contents</p>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<div id="scrolling-bigcols"></div>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
76c9fe1d50dff2736aa35ed3e81acaf8cdf48588Tilo Mitra<h3>Scrolling Datatable with no width or height set</h3>
76c9fe1d50dff2736aa35ed3e81acaf8cdf48588Tilo Mitra<p>A scrolling datatable with no width or height values passed in will result in a base datatable being created with auto width and height.</p>
76c9fe1d50dff2736aa35ed3e81acaf8cdf48588Tilo Mitra<div id="scrolling-noscroll"></div>
76c9fe1d50dff2736aa35ed3e81acaf8cdf48588Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra<script type="text/javascript">
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra(function() {
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra YUI({
c77d701a41f1b77424b988c2e63f2a8e6829c7e6Luke Smith filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min',
c77d701a41f1b77424b988c2e63f2a8e6829c7e6Luke Smith allowRollup: false,
c77d701a41f1b77424b988c2e63f2a8e6829c7e6Luke Smith useBrowserConsole: false
31dc38d003f727e19c61510100f8418658af15d5Tilo Mitra }).use("console", "test", "dump", "datatable", "profiler","node","json-parse", function(Y) {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra // Set up the page
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra var ASSERT = Y.Assert,
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra ARRAYASSERT = Y.ArrayAssert,
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra BTNRUN = Y.one("#btnRun"),
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith TestRunner = Y.Test.Runner;
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra BTNRUN.set("disabled", false);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith TestRunner.subscribe(TestRunner.TEST_CASE_COMPLETE_EVENT, testCompleted);
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra Y.on("click", function(e){
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith TestRunner.run();
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith BTNRUN.set("value", 'Running...');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith BTNRUN.set("disabled", true);
98c7a407991cdb0caa6bce97544759d7d56b39e0Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra }, BTNRUN);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith function testCompleted() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith BTNRUN.set("value", 'Test Completed');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log('Test Completed');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra var myConsole = new Y.Console().render();
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //large data set
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var large = [];
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith for (var i=0; i<500; i++) {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith large[i] = {a: i+1, b:i+2, c:i+3, d: i+4, e: i+5, f: i+6, g:i+7};
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //small data set
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var small = [{a:3, b:2, c:1, d:6, e:7, f:2, g:0}, {a:9, b:8, c:7, d:6, e:7, f:2, g:0}, {a:1, b:2, c:3, d:6, e:7, f:2, g:0},
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {a:3, b:2, c:1, d:6, e:7, f:2, g:0}, {a:9, b:8, c:7, d:6, e:7, f:2, g:0}, {a:1, b:2, c:3, d:6, e:7, f:2, g:0},
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {a:3, b:2, c:1, d:6, e:7, f:2, g:0}, {a:9, b:8, c:7, d:6, e:7, f:2, g:0}, {a:1, b:2, c:3, d:6, e:7, f:2, g:0},
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {a:3, b:2, c:1, d:6, e:7, f:2, g:0}, {a:9, b:8, c:7, d:6, e:7, f:2, g:0}, {a:1, b:2, c:3, d:6, e:7, f:2, g:0}];
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra var testBasic = new Y.Test.Case({
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra name: "API Tests",
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith nestedcols: [
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {label:"Grandparent", children:[
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {key: "a"},
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {label:"Parent", children: [
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {key:"b"},
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith {key:"c"}
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith ]}
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith ]}
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith ],
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith cols: [{key:"a", field:"a", label:"AAA", sortable:true, className: ["oneClass", "anotherClass"], width:'75px'},{key:"b", abbr:"bbb", className:"myClass", width: '120px'},{key:"c", width:'75px'},{key:"d", width:'150px'},{key:"3", width:'75px'},{key:"f", width:'150px'},{key:"g", width:'75px'}],
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith cols2: [{key:"a", field:"a", label:"AAA", sortable:true, className: ["oneClass", "anotherClass"], width:'75px'},{key:"b", abbr:"bbb", className:"myClass", width:'75px'},{key:"c"},{key:"d"},{key:"e"},{key:"f"},{key:"g"}],
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith cols3: [{key:"a", field:"a", label:"Lorem Ipsum Dolor SIt Amet", sortable:true, className: ["oneClass", "anotherClass"], width:'5px'},{key:"b", abbr:"Lorem Ipsum Dolor SIt Amet", className:"myClass", width:'75px'},{key:"Lorem Ipsum Dolor SIt Amet"},{key:"Lorem Ipsum Dolor SIt Amet"},{key:"Lorem Ipsum Dolor SIt Amet"},{key:"Lorem Ipsum Dolor SIt Amet"},{key:"Lorem Ipsum Dolor SIt Amet"}],
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //large or small dataset.
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith data: small,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //---------------------------------------------
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith // Special instructions
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //---------------------------------------------
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith _should: {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith ignore: {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //ignore following tests (good to do if you are doing a large dataset)
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testBaseDatatable: true,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable: false,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXDatatable: false,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_FixedCol: false,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_AutoCol: false,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable_BigHeaders: false,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testNoScrollDatatablekey: false
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith }
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //---------------------------------------------
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith // Setup and tear down
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //---------------------------------------------
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith setUp : function () {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //create recordset
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //this.rs = new Y.Recordset({records:this.initialData});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //Some Ways to access recordset properties
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //Y.log(rs.getRecordByIndex(0).getValue('a'));
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //Y.log(rs.get('records').length);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith tearDown : function () {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith delete this.dt;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith /////////////////////////////////////////////////////////////////////////////
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith // Displaying Report
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith /////////////////////////////////////////////////////////////////////////////
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith displayReport: function(data) {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var dl = Y.Node.create('<dl></dl>'),
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith results = Y.one('#results');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.each(data, function(v,k,o) {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var dt = Y.Node.create('<dt>'+k+'</dt>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var dd = Y.Node.create('<dd>' + v.calls + ' call(s) at ' + v.avg + ' ms/call = <span>' + Math.round(v.avg*v.calls) + '</span> ms total</dd>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith dt.appendChild(dd);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith dl.appendChild(dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith });
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith results.appendChild(dl);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith reportParser: function(report) {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith return (report.calls > 0 && report.avg > 0.2);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith /////////////////////////////////////////////////////////////////////////////
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith // Tests
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith //
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith /////////////////////////////////////////////////////////////////////////////
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testBaseDatatable: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#base";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtBase');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols, recordset:this.data, caption:"Base"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtBase');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtBase') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, "time");
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = '#scrolling-xy';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtXY');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols, recordset:this.data, tdValueTemplate:"plug then render {value}", caption: "ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll, {width:"200px", height:"300px"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtXY');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtXY') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, "time");
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXDatatable: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#scrolling-x";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtX');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols2, recordset:this.data, caption:"ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll, {width:"150px"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtX');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtX') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, "time");
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_FixedCol: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#scrolling-y";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtY1');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols, recordset:this.data, tdValueTemplate:"plug then render {value}", caption:"ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll, {height:"300px"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtY1');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtY1') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, 'time');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testYDatatable_AutoCol: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#scrolling-colwidth";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtY2');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols2, recordset:this.data, tdValueTemplate:"plug then render {value}", caption:"ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll, {height:"250px"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtY2');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtY2') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, 'time');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testXYDatatable_BigHeaders: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#scrolling-bigcols";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtHeaders');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols3, recordset:this.data, tdValueTemplate:"plug then render {value}", caption:"ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll, {height:"250px", width:"400px"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtHeaders');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtHeaders') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, 'time');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith testNoScrollDatatable: function() {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var sel = "#scrolling-noscroll";
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.start('dtNoScroll');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt = new Y.DataTable.Base({columnset:this.cols3, recordset:this.data, tdValueTemplate:"plug then render {value}", caption:"ScrollingDataTable"});
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.registerObject('dt', this.dt);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.plug(Y.Plugin.DataTableScroll);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.render(sel);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.stop('dtNoScroll');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var msg = Y.Profiler.getAverage('dtNoScroll') + 'ms taken to display';
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var report = Y.Profiler.getFullReport(this.reportParser);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.displayReport(report);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Profiler.unregisterObject('dt');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.log(msg, 'time');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.one(sel).appendChild('<p class="message">'+msg+'</p>');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith this.dt.scroll.set('width', '200px');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith test_uniqueRecordset: function () {
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith // Ticket #2529980
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith var a = new Y.DataTable.Base(),
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith b = new Y.DataTable.Base(),
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith aRS = a.get('recordset'),
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith bRS = b.get('recordset');
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith Y.Assert.isTrue(aRS instanceof Y.Recordset);
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith Y.Assert.isTrue(bRS instanceof Y.Recordset);
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith Y.Assert.areNotSame(aRS, bRS);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith },
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith "caption should not be added to the DOM unless set": function () {
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var container = Y.one("#base"),
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table, caption;
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table = new Y.DataTable.Base({
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith columnset: this.cols,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith recordset: this.data,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith caption: "Caption set"
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith });
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table.render(container);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith caption = table.get('boundingBox').one('caption');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Assert.isNotNull(caption);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Assert.areSame("Caption set", caption.get('text'));
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table.destroy();
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith container.empty(true);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table = new Y.DataTable.Base({
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith columnset: this.cols,
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith recordset: this.data
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith });
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table.render(container);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith caption = table.get('boundingBox').one('caption');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Assert.isNull(caption);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith table.set('caption', 'Caption set');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith caption = table.get('boundingBox').one('caption');
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Assert.isNotNull(caption);
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith Y.Assert.areSame('Caption set', caption.get('text'));
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith },
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith "test Recordset does not lose plugins on load": function () {
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith var data = [ {a:1,b:1,c:1}, {a:2,b:2,c:2}, {a:3,b:3,c:3} ],
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith recordset,
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith source, table;
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith source = new Y.DataSource.Local({ source: data });
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith source.plug(Y.Plugin.DataSourceArraySchema, {
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith resultFields: ['a','b','c']
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith });
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith table = new Y.DataTable.Base({
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith columnset: [ { key: 'a', sortable: true }, 'b', 'c' ]
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith });
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith table.plug(Y.Plugin.DataTableDataSource, {
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith datasource: source
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith });
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith table.plug(Y.Plugin.DataTableSort);
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith table.render("#base");
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith table.datasource.load();
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith recordset = table.get("recordset");
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith Y.Assert.isObject(recordset);
364b3f41370b5853ec58ed0f094565f69ab7c7fdLuke Smith Y.Assert.isObject(recordset.sort);
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith }
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra });
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
a9469f39cbc0ff8977226a5e0469330341c5186eLuke Smith var suite = new Y.Test.Suite("Datatable Test Suite");
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra suite.add(testBasic);
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra Y.Test.Runner.setName("Datatable Test Runner");
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra Y.Test.Runner.add(suite);
82dcdf72033580e7e6d2a7e634effec6e8753980Luke Smith Y.Test.Runner.run();
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra });
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra})();
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra</script>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra</body>
28ab732ad7743763a94f34d018067c184e17de96Tilo Mitra</html>