Merge branch 'devel' of dev.sourcefabric.org:airtime into devel

This commit is contained in:
James 2012-01-17 11:35:48 -05:00
commit ff428d2c4f
215 changed files with 349 additions and 19670 deletions

View File

@ -1,15 +1,15 @@
<?php
require_once __DIR__."/configs/ACL.php";
require_once 'propel/runtime/lib/Propel.php';
Propel::init(__DIR__."/configs/airtime-conf-production.php");
require_once __DIR__."/logging/Logging.php";
Logging::setLogPath('/var/log/airtime/zendphp.log');
require_once __DIR__."/configs/constants.php";
require_once __DIR__."/configs/conf.php";
require_once __DIR__."/configs/ACL.php";
require_once 'propel/runtime/lib/Propel.php';
Propel::init(__DIR__."/configs/airtime-conf-production.php");
require_once __DIR__."/configs/constants.php";
require_once 'DB.php';
require_once 'Preference.php';

View File

@ -9,15 +9,12 @@
*/
$configFile = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf";
$ini = parse_ini_file($configFile, true);
$dbhost = $ini['database']['host'];
$dbname = $ini['database']['dbname'];
$dbuser = $ini['database']['dbuser'];
$dbpass = $ini['database']['dbpass'];
global $CC_CONFIG;
$dbhost = $CC_CONFIG['dsn']['hostspec'];
$dbname = $CC_CONFIG['dsn']['database'];
$dbuser = $CC_CONFIG['dsn']['username'];
$dbpass = $CC_CONFIG['dsn']['password'];
$conf = array (
'datasources' =>

View File

@ -19,8 +19,7 @@ $CC_CONFIG = array(
"rootDir" => __DIR__."/../..",
'pearPath' => dirname(__FILE__).'/../../library/pear',
'zendPath' => dirname(__FILE__).'/../../library/Zend',
'phingPath' => dirname(__FILE__).'/../../library/phing'
'zendPath' => dirname(__FILE__).'/../../library/Zend'
);

View File

@ -379,6 +379,7 @@ class ApiController extends Zend_Controller_Action
$this->view->is_recording = false;
$this->view->server_timezone = Application_Model_Preference::GetTimezone();
$rows = Application_Model_Show::GetCurrentShow($today_timestamp);
Application_Model_Show::ConvertToLocalTimeZone($rows, array("starts", "ends", "start_timestamp", "end_timestamp"));
@ -753,6 +754,7 @@ class ApiController extends Zend_Controller_Action
$request = $this->getRequest();
$api_key = $request->getParam('api_key');
$getDiskInfo = $request->getParam('diskinfo') == "true";
/*
if (!in_array($api_key, $CC_CONFIG["apiKey"]))
{
@ -771,10 +773,13 @@ class ApiController extends Zend_Controller_Action
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
"show_recorder"=>Application_Model_Systemstatus::GetShowRecorderStatus(),
"media_monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus()
),
"partitions"=>Application_Model_Systemstatus::GetDiskInfo()
)
);
if ($getDiskInfo){
$status["partitions"] = Application_Model_Systemstatus::GetDiskInfo();
}
$this->view->status = $status;
}

View File

@ -16,10 +16,13 @@ class SystemstatusController extends Zend_Controller_Action
$services = array(
"pypo"=>Application_Model_Systemstatus::GetPypoStatus(),
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
"show-recorder"=>Application_Model_Systemstatus::GetShowRecorderStatus(),
"media-monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus(),
"rabbitmq-server"=>Application_Model_Systemstatus::GetRabbitMqStatus()
);
if (!isset($_SERVER["AIRTIME_SRV"])){
$services["show-recorder"]=Application_Model_Systemstatus::GetShowRecorderStatus();
}
$partitions = Application_Model_Systemstatus::GetDiskInfo();

View File

@ -28,7 +28,9 @@ class Application_Model_Nowplaying
$status = ($showEnds < $itemEnds) ? "x" : "";
$type = "a";
$type .= ($itemEndDateTime->getTimestamp() > $epochNow && $itemStartDateTime->getTimestamp() <= $epochNow) ? "c" : "";
$type .= ($itemStartDateTime->getTimestamp() <= $epochNow
&& $epochNow < $itemEndDateTime->getTimestamp()
&& $epochNow < $showEndDateTime->getTimestamp()) ? "c" : "";
// remove millisecond from the time format
$itemStart = explode('.', $dbRow['item_starts']);

View File

@ -680,6 +680,18 @@ class Application_Model_Preference
return $val;
}
public static function SetDiskQuota($value){
self::SetValue("disk_quota", $value, false);
}
public static function GetDiskQuota(){
$val = self::GetValue("disk_quota");
if(strlen($val) == 0) {
$val = "0";
}
return $val;
}
/* User specific preferences end */
}

View File

@ -176,32 +176,51 @@ class Application_Model_Systemstatus
return $data;
}
public static function GetRabbitMqStatus(){
$docRoot = self::GetMonitStatus("localhost");
public static function GetRabbitMqStatus(){
if (isset($_SERVER["RABBITMQ_HOST"])){
$rabbitmq_host = $_SERVER["RABBITMQ_HOST"];
} else {
$rabbitmq_host = "localhost";
}
$docRoot = self::GetMonitStatus($rabbitmq_host);
$data = self::ExtractServiceInformation($docRoot, "rabbitmq-server");
return $data;
}
public static function GetDiskInfo(){
/* First lets get all the watched directories. Then we can group them
* into the same paritions by comparing the partition sizes. */
$musicDirs = Application_Model_MusicDir::getWatchedDirs();
$musicDirs[] = Application_Model_MusicDir::getStorDir();
$partions = array();
foreach($musicDirs as $md){
$totalSpace = disk_total_space($md->getDirectory());
if (!isset($partitions[$totalSpace])){
$partitions[$totalSpace] = new StdClass;
$partitions[$totalSpace]->totalSpace = $totalSpace;
$partitions[$totalSpace]->totalFreeSpace = disk_free_space($md->getDirectory());
}
if (isset($_SERVER['AIRTIME_SRV'])){
//connect to DB and find how much total space user has allocated.
$totalSpace = Application_Model_Preference::GetDiskQuota();
$partitions[$totalSpace]->dirs[] = $md->getDirectory();
$storPath = Application_Model_MusicDir::getStorDir()->getDirectory();
list($usedSpace,) = preg_split("/[\s]+/", exec("du -bs $storPath"));
$partitions[$totalSpace]->totalSpace = $totalSpace;
$partitions[$totalSpace]->totalFreeSpace = $totalSpace - $usedSpace;
Logging::log($partitions[$totalSpace]->totalFreeSpace);
} else {
/* First lets get all the watched directories. Then we can group them
* into the same partitions by comparing the partition sizes. */
$musicDirs = Application_Model_MusicDir::getWatchedDirs();
$musicDirs[] = Application_Model_MusicDir::getStorDir();
foreach($musicDirs as $md){
$totalSpace = disk_total_space($md->getDirectory());
if (!isset($partitions[$totalSpace])){
$partitions[$totalSpace] = new StdClass;
$partitions[$totalSpace]->totalSpace = $totalSpace;
$partitions[$totalSpace]->totalFreeSpace = disk_free_space($md->getDirectory());
}
$partitions[$totalSpace]->dirs[] = $md->getDirectory();
}
}
return array_values($partitions);

View File

@ -5,6 +5,9 @@ class Airtime_View_Helper_TrialRemaining extends Zend_View_Helper_Abstract
public function trialRemaining()
{
$ending_date = Application_Model_Preference::GetTrialEndingDate();
if ($ending_date == '') {
return '';
}
$datetime1 = new DateTime();
$datetime2 = new DateTime($ending_date);
$interval = $datetime1->diff($datetime2);

View File

@ -60,7 +60,7 @@ $(document).ready(function(){
if ($type == "ogg")
$type = "oga";
$label = $streamData["${id}_description"]." (".$streamData["${id}_bitrate"]." Kbit/s)";
$label = "(".$streamData["${id}_host"].") ".$streamData["${id}_description"]." - ".$streamData["${id}_bitrate"]." Kbit/s";
echo sprintf("<option class='stream' value='%s' data-url='%s' data-type='%s' server-type='%s'>%s</option>", $id, $url, $type, $serverType, $label);
}
?>

View File

@ -36,15 +36,15 @@
<li><span class="name"><?php echo $this->user ?></span> | <a href="/Login/logout">Logout</a></li>
</ul>
</div>
<?php if($this->is_trial){?>
<?php if($this->trial_remain != '' && $this->trial_remain != "Trial expired."){?>
<div class="trial-box">
<p>Your Trial expires in</p>
<p>Your trial expires in</p>
<div class="trial-box-calendar">
<span class="trial-box-calendar-white"><?php echo $this->trial_remain?></span>
<div class="trial-box-calendar-gray">days</div>
</div>
<div class="trial-box-button">
<a title="Purchase your copy of Airtime" href="https://account.sourcefabric.com/clientarea.php" target="_blank">Buy Now</a>
<a title="Purchase your copy of Airtime" href="https://account.sourcefabric.com/clientarea.php" target="_blank">My Account</a>
</div>
</div>
<?php }?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

After

Width:  |  Height:  |  Size: 405 B

View File

@ -23,8 +23,8 @@ function generatePartitions(partitions){
var totalSpace = partitions[i].totalSpace;
var percUsed = sprintf("%01.1f", spaceUsed/totalSpace*100);
var spaceUsedGb = sprintf("%01.1f", spaceUsed/Math.pow(10, 9));
var totalSpaceGb = sprintf("%01.1f", totalSpace/Math.pow(10, 9));
var spaceUsedGb = sprintf("%01.1f", spaceUsed/Math.pow(2, 30));
var totalSpaceGb = sprintf("%01.1f", totalSpace/Math.pow(2, 30));
var row = sprintf(rowTemplate, i+1, i, spaceUsedGb, totalSpaceGb, percUsed, percUsed);
var tr = $(row);
@ -51,16 +51,17 @@ function success(data, textStatus, jqXHR){
$(children[3]).text(s.cpu_perc);
$(children[4]).text(sprintf('%01.1fMB (%s)', parseInt(s.memory_kb)/1000, s.memory_perc));
}
generatePartitions(data.status.partitions);
if (data.status.partitions){
generatePartitions(data.status.partitions);
}
}
function updateStatus(){
$.getJSON( "api/status/format/json", null, success);
function updateStatus(getDiskInfo){
$.getJSON( "api/status/format/json/diskinfo/"+getDiskInfo, null, success);
}
$(document).ready(function() {
updateStatus();
setInterval(updateStatus, 5000);
updateStatus(true);
setInterval(function(){updateStatus(false);}, 5000);
});

View File

@ -1,52 +0,0 @@
// DATA_TEMPLATE: -complex_header
oTest.fnStart( "Complex header" );
$(document).ready( function () {
$('#example').dataTable();
oTest.fnTest(
"Sorting on colspan has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnTest(
"Sorting on non-unique TH and first TH has no effect",
function () { $('#example thead th:eq(2)').click(); },
function () { return $('#example tbody tr td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnTest(
"Sorting on non-unique TH and second TH will not sort",
function () { $('#example thead th:eq(6)').click(); },
function () { return $('#example tbody tr td:eq(4)').html() == "A"; }
);
oTest.fnTest(
"Sorting on non-unique TH and second TH will not sort - reserve",
function () { $('#example thead th:eq(6)').click(); },
function () { return $('#example tbody tr td:eq(4)').html() == "A"; }
);
oTest.fnTest(
"Sorting on unique TH will sort",
function () { $('#example thead th:eq(5)').click(); },
function () { return $('#example tbody tr td:eq(3)').html() == "-"; }
);
oTest.fnTest(
"Sorting on unique TH will sort - reserve",
function () { $('#example thead th:eq(5)').click(); },
function () { return $('#example tbody tr td:eq(3)').html() == "522.1"; }
);
oTest.fnTest(
"Sorting on unique rowspan TH will sort",
function () { $('#example thead th:eq(0)').click(); },
function () { return $('#example tbody tr td:eq(0)').html() == "Gecko"; }
);
oTest.fnComplete();
} );

View File

@ -1,41 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "iDraw - check that iDraw increments for each draw" );
$(document).ready( function () {
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"After first draw, iDraw is 1",
null,
function () { return oSettings.iDraw == 1; }
);
oTest.fnTest(
"After second draw, iDraw is 2",
function () { oTable.fnDraw() },
function () { return oSettings.iDraw == 2; }
);
oTest.fnTest(
"After sort",
function () { oTable.fnSort([[1,'asc']]) },
function () { return oSettings.iDraw == 3; }
);
oTest.fnTest(
"After filter",
function () { oTable.fnFilter('gecko') },
function () { return oSettings.iDraw == 4; }
);
oTest.fnTest(
"After another filter",
function () { oTable.fnFilter('gec') },
function () { return oSettings.iDraw == 5; }
);
oTest.fnComplete();
} );

View File

@ -1,17 +0,0 @@
// DATA_TEMPLATE: 2512
oTest.fnStart( "Check filtering with BR and HTML entity" );
$(document).ready( function () {
$('#example').dataTable();
/* Basic checks */
oTest.fnTest(
"Check filtering",
function () { $('#example').dataTable().fnFilter('testsearchstring'); },
function () { return $('#example tbody tr').length == 1; }
);
oTest.fnComplete();
} );

View File

@ -1,15 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "User given with is left when no scrolling" );
$(document).ready( function () {
$('#example')[0].style.width = "80%";
$('#example').dataTable();
oTest.fnTest(
"Check user width is left",
null,
function () { return $('#example').width() == 640; }
);
oTest.fnComplete();
} );

View File

@ -1,29 +0,0 @@
// DATA_TEMPLATE: dymanic_table
oTest.fnStart( "2530 - Check width's when dealing with empty strings" );
$(document).ready( function () {
$('#example').dataTable( {
"aaData": [
['','Internet Explorer 4.0','Win 95+','4','X'],
['','Internet Explorer 5.0','Win 95+','5','C']
],
"aoColumns": [
{ "sTitle": "", "sWidth": "40px" },
{ "sTitle": "Browser" },
{ "sTitle": "Platform" },
{ "sTitle": "Version", "sClass": "center" },
{ "sTitle": "Grade", "sClass": "center" }
]
} );
/* Basic checks */
oTest.fnTest(
"Check calculated widths",
null,
function () { return $('#example tbody tr td:eq(0)').width() < 100; }
);
oTest.fnComplete();
} );

View File

@ -1,36 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "Destroy with hidden columns" );
$(document).ready( function () {
$('#example').dataTable( {
"aoColumnDefs": [
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
{ "bVisible": false, "aTargets": [ 3 ] }
]
} );
$('#example').dataTable().fnDestroy();
oTest.fnTest(
"Check that the number of columns in table is correct",
null,
function () { return $('#example tbody tr:eq(0) td').length == 5; }
);
oTest.fnTest(
"And with scrolling",
function () {
$('#example').dataTable( {
"sScrollY": 200,
"aoColumnDefs": [
{ "bSearchable": false, "bVisible": false, "aTargets": [ 2 ] },
{ "bVisible": false, "aTargets": [ 3 ] }
]
} );
$('#example').dataTable().fnDestroy();
},
function () { return $('#example tbody tr:eq(0) td').length == 5; }
);
oTest.fnComplete();
} );

View File

@ -1,44 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2600 - Display rewind when changing length" );
$(document).ready( function () {
$('#example').dataTable();
oTest.fnTest(
"Info correct on init",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Page 2",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 11 to 20 of 57 entries"; }
);
oTest.fnTest(
"Page 3",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 21 to 30 of 57 entries"; }
);
oTest.fnTest(
"Page 4",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 31 to 40 of 57 entries"; }
);
oTest.fnTest(
"Page 5",
function () { $('#example_next').click(); },
function () { return $('#example_info').html() == "Showing 41 to 50 of 57 entries"; }
);
oTest.fnTest(
"Rewind",
function () { $('#example_length select').val('100'); $('#example_length select').change(); },
function () { return $('#example_info').html() == "Showing 1 to 57 of 57 entries"; }
);
oTest.fnComplete();
} );

View File

@ -1,54 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2608 - State saving escaping filters" );
$(document).ready( function () {
$('#example').dataTable( {
"bStateSave": true
} );
oTest.fnTest(
"Set the filter",
function () {
$('#example_filter input').val( '\\s*CVM\\s*$' );
$('#example_filter input').keyup();
},
function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
);
oTest.fnTest(
"Destroy the table and remake it - checking the filter was saved",
function () {
$('#example').dataTable( {
"bStateSave": true,
"bDestroy": true
} );
},
function () { return $('#example_filter input').val() == '\\s*CVM\\s*$'; }
);
oTest.fnTest(
"Do it again without state saving and make sure filter is empty",
function () {
$('#example').dataTable( {
"bDestroy": true
} );
},
function () { return $('#example_filter input').val() == ''; }
);
oTest.fnTest(
"Clean up",
function () {
$('#example').dataTable( {
"bStateSave": true,
"bDestroy": true
} );
$('#example_filter input').val( '' );
$('#example_filter input').keyup();
},
function () { return $('#example_filter input').val() == ''; }
);
oTest.fnCookieDestroy( $('#example').dataTable() );
oTest.fnComplete();
} );

View File

@ -1,40 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2635 - Hiding column and state saving" );
$(document).ready( function () {
$('#example').dataTable( {
"bStateSave": true
} );
oTest.fnTest(
"Set the hidden column",
function () {
$('#example').dataTable().fnSetColumnVis( 2, false );
},
function () { return $('#example thead th').length == 4; }
);
oTest.fnTest(
"Destroy the table and remake it - checking one column was removed",
function () {
$('#example').dataTable( {
"bStateSave": true,
"bDestroy": true
} );
},
function () { return $('#example thead th').length == 4; }
);
oTest.fnTest(
"Do it again without state saving and make sure we are back to 5 columns",
function () {
$('#example').dataTable( {
"bDestroy": true
} );
},
function () { return $('#example thead th').length == 5; }
);
oTest.fnCookieDestroy( $('#example').dataTable() );
oTest.fnComplete();
} );

View File

@ -1,199 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2746 - Stable sorting" );
$(document).ready( function () {
$('#example').dataTable();
oTest.fnTest(
"Initial sort",
null,
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
return ret;
}
);
oTest.fnTest(
"Reserve initial sort",
function () {
$('#example thead th:eq(0)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
return ret;
}
);
oTest.fnTest(
"Reserve to go back to initial sort sort",
function () {
$('#example thead th:eq(0)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
return ret;
}
);
oTest.fnTest(
"Reserve initial sort again",
function () {
$('#example thead th:eq(0)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Webkit' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Safari 1.2' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 1.3' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
return ret;
}
);
oTest.fnTest(
"And once more back to the initial sort",
function () {
$('#example thead th:eq(0)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Firefox 1.0' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Firefox 1.5' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Firefox 2.0';
return ret;
}
);
oTest.fnTest(
"Sort on second column",
function () {
$('#example thead th:eq(1)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0';
return ret;
}
);
oTest.fnTest(
"Reserve sort on second column",
function () {
$('#example thead th:eq(1)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Webkit' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Safari 3.0' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Safari 2.0';
return ret;
}
);
oTest.fnTest(
"And back to asc sorting on second column",
function () {
$('#example thead th:eq(1)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'AOL browser (AOL desktop)' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.0';
return ret;
}
);
oTest.fnTest(
"Sort on third column, having now sorted on second",
function () {
$('#example thead th:eq(2)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1';
return ret;
}
);
oTest.fnTest(
"Reserve sort on third column",
function () {
$('#example thead th:eq(2)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Misc' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Trident' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'IE Mobile' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Internet Explorer 7' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'AOL browser (AOL desktop)';
return ret;
}
);
oTest.fnTest(
"Return sorting on third column to asc",
function () {
$('#example thead th:eq(2)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Other browsers' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Misc' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'All others' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Dillo 0.8' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'NetFront 3.1';
return ret;
}
);
oTest.fnTest(
"Sort on first column having sorted on second then third columns",
function () {
$('#example thead th:eq(0)').click();
},
function () {
var ret =
$('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(1) td:eq(0)').html() == 'Gecko' &&
$('#example tbody tr:eq(0) td:eq(1)').html() == 'Epiphany 2.20' &&
$('#example tbody tr:eq(1) td:eq(1)').html() == 'Camino 1.0' &&
$('#example tbody tr:eq(2) td:eq(1)').html() == 'Camino 1.5';
return ret;
}
);
oTest.fnComplete();
} );

View File

@ -1,14 +0,0 @@
// DATA_TEMPLATE: two_tables
oTest.fnStart( "Initialise two tables" );
$(document).ready( function () {
$('table.display').dataTable();
oTest.fnTest(
"Check that initialisation was okay",
null,
function () { return true; }
);
oTest.fnComplete();
} );

View File

@ -1,19 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2840 - Restore table width on fnDestory" );
$(document).ready( function () {
document.cookie = "";
$('#example').dataTable( {
"sScrollX": "100%",
"sScrollXInner": "110%"
} );
$('#example').dataTable().fnDestroy();
oTest.fnTest(
"Width after destroy",
null,
function () { return $('#example').width() == "800"; }
);
oTest.fnComplete();
} );

View File

@ -1,39 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "2914 - State saving with an empty array" );
$(document).ready( function () {
document.cookie = "";
$('#example').dataTable( {
"bStateSave": true,
"aaSorting": []
} );
oTest.fnTest(
"No sort",
null,
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Next page",
function () {
$('#example').dataTable().fnPageChange( 'next' );
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnTest(
"Destroy the table and remake it - checking we are still on the next page",
function () {
$('#example').dataTable( {
"bStateSave": true,
"aaSorting": [],
"bDestroy": true
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnCookieDestroy( $('#example').dataTable() );
oTest.fnComplete();
} );

View File

@ -1,437 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "Sanity checks for DataTables with DOM data" );
oTest.fnTest(
"jQuery.dataTable function",
null,
function () { return typeof jQuery().dataTable == "function"; }
);
oTest.fnTest(
"jQuery.dataTableSettings storage array",
null,
function () { return typeof jQuery().dataTableSettings == "object"; }
);
oTest.fnTest(
"jQuery.dataTableExt plugin object",
null,
function () { return typeof jQuery().dataTableExt == "object"; }
);
$(document).ready( function () {
$('#example').dataTable();
/* Basic checks */
oTest.fnTest(
"Length changing div exists",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnTest(
"Filtering div exists",
null,
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnTest(
"Information div exists",
null,
function () { return document.getElementById('example_info') != null; }
);
oTest.fnTest(
"Pagination div exists",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnTest(
"Processing div is off by default",
null,
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"10 rows shown on the first page",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Initial sort occured",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
/* Need to use the WaitTest for sorting due to the setTimeout datatables uses */
oTest.fnTest(
"Sorting (first click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting (second click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Sorting (third click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting (first click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnTest(
"Sorting (second click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnTest(
"Sorting multi-column (first click)",
function () {
$('#example thead th:eq(0)').click();
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () { var b =
$('#example tbody td:eq(0)').html() == "Gecko" &&
$('#example tbody td:eq(1)').html() == "Camino 1.0"; return b; }
);
oTest.fnTest(
"Sorting multi-column - sorting second column only",
function () {
$('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
/* Basic paging */
oTest.fnTest(
"Paging to second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody td:eq(1)').html() == "IE Mobile"; }
);
oTest.fnTest(
"Paging to first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Attempting to page back beyond the first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
/* Changing length */
oTest.fnTest(
"Changing table length to 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return $('#example tbody tr').length == 25; }
);
oTest.fnTest(
"Changing table length to 50 records",
function () { $("select[name=example_length]").val('50').change(); },
function () { return $('#example tbody tr').length == 50; }
);
oTest.fnTest(
"Changing table length to 100 records",
function () { $("select[name=example_length]").val('100').change(); },
function () { return $('#example tbody tr').length == 57; }
);
oTest.fnTest(
"Changing table length to 10 records",
function () { $("select[name=example_length]").val('10').change(); },
function () { return $('#example tbody tr').length == 10; }
);
/*
* Information element
*/
oTest.fnTest(
"Information on zero config",
null,
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information on second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 11 to 20 of 57 entries"; }
);
oTest.fnTest(
"Information on third page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 21 to 30 of 57 entries"; }
);
oTest.fnTest(
"Information on last page",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries"; }
);
oTest.fnTest(
"Information back on first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information with 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 25 of 57 entries"; }
);
oTest.fnTest(
"Information with 25 records - second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 26 to 50 of 57 entries"; }
);
oTest.fnTest(
"Information with 100 records - first page",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('100').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 57 of 57 entries"; }
);
oTest.fnTest(
"Information back to 10 records",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('10').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information with filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' last page",
function () {
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 31 to 31 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' back to first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page - second time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter increased to 'Win 98'",
function () { $('#example_filter input').val("Win 98").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter decreased to 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page - third time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter removed",
function () { $('#example_filter input').val("").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/*
* Filtering
*/
oTest.fnTest(
"Filter 'W' - rows",
function () {
/* Reset the table such that the old sorting doesn't mess things up */
oSession.fnRestore();
$('#example').dataTable();
$('#example_filter input').val("W").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Filter 'W' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 42 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Wi'",
function () { $('#example_filter input').val("Wi").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 32 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "AOL browser (AOL desktop)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1 info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1 reverse",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Filter 'Win XP' - maintaing reverse sorting col 1",
function () { $('#example_filter input').val("Win XP").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 7"; }
);
oTest.fnTest(
"Filter 'Win XP' - sorting col 3",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Filter 'Win XP' - sorting col 3 - reversed",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "7"; }
);
oTest.fnTest(
"Filter 'Win' - sorting col 3 - reversed info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 6 of 6 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'nothinghere'",
function () { $('#example_filter input').val("nothinghere").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() ==
"No matching records found"; }
);
oTest.fnTest(
"Filter 'nothinghere' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter back to blank and 1st column sorting",
function () {
$('#example_filter input').val("").keyup();
$('#example thead th:eq(0)').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Prefixing a filter entry",
function () {
$('#example_filter input').val("Win").keyup();
$('#example_filter input').val("GeckoWin").keyup();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Prefixing a filter entry with space",
function () {
$('#example_filter input').val("Gecko Win").keyup();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 17 entries (filtered from 57 total entries)"; }
);
oTest.fnComplete();
} );

View File

@ -1,183 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aaSorting" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default sorting is single column",
null,
function () {
return oSettings.aaSorting.length == 1 && typeof oSettings.aaSorting[0] == 'object';
}
);
oTest.fnTest(
"Default sorting is first column asc",
null,
function () {
return oSettings.aaSorting[0].length == 3 && oSettings.aaSorting[0][0] == 0 &&
oSettings.aaSorting[0][1] == 'asc';
}
);
oTest.fnTest(
"Sorting is applied",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Custom sorting on single string column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Custom sorting on single string column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Custom sorting on single int column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnTest(
"Custom sorting on single int column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','asc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','desc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "iPod Touch / iPhone"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','desc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Safari 3.0"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','asc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','asc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1.9"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','desc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "125.5"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','desc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnTest(
"Multi-column sorting (3 column) - string asc / int asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSorting": [['0','asc'], ['3','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody tr:eq(7) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnComplete();
} );

View File

@ -1,60 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aaSortingFixed" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"No fixed sorting by default",
null,
function () {
return oSettings.aaSortingFixed == null;
}
);
oTest.fnTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSortingFixed": [['0','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaSortingFixed": [['3','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "PSP browser"; }
);
oTest.fnComplete();
} );

View File

@ -1,67 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.bSeachable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Columns are searchable by default",
function () { oTable.fnFilter("Camino"); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html().match(/Camino/); }
);
oTest.fnTest(
"Disabling sorting on a column removes it from the global filter",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "bSearchable": false },
null,
null,
null
]
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("Camino");
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnTest(
"Disabled on one column has no effect on other columns",
function () { oTable.fnFilter("Webkit"); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Webkit"; }
);
oTest.fnTest(
"Disable filtering on multiple columns",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
{ "bSearchable": false },
{ "bSearchable": false },
null,
null,
null
]
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("Webkit");
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnTest(
"Filter on second disabled column",
function () { oTable.fnFilter("Camino"); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnComplete();
} );

View File

@ -1,105 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.bSortable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"All columns are sortable by default",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Can disable sorting from one column",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "bSortable": false },
null,
null,
null
]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
);
oTest.fnTest(
"Disabled column has no sorting class",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") == false; }
);
oTest.fnTest(
"Other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
);
oTest.fnTest(
"Disable sorting on multiple columns - no sorting classes",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "bSortable": false },
null,
{ "bSortable": false },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(1)').hasClass("sorting") ||
$('#example thead th:eq(3)').hasClass("sorting")
return bReturn == false;
}
);
oTest.fnTest(
"Sorting on disabled column 1 has no effect",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
);
oTest.fnTest(
"Sorting on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
);
oTest.fnTest(
"Second sort on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
);
oTest.fnTest(
"Even with multiple disabled sorting columns other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
);
oTest.fnComplete();
} );

View File

@ -1,145 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.bUseRendered" );
/* bUseRendered is used to alter sorting data, if false then the original data is used for
* sorting rather than the rendered data
*/
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa";
} else
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default for bUseRendered is true - rendered data is used for sorting",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; }
);
oTest.fnTest(
"When bUseRendered is false, original data is used for sorting",
function () {
mTmp = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa";
} else {
return a.aData[a.iDataColumn];
}
}
},
null,
null,
null
]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"bUseRendered set to false on one columns and true (default) on two others",
function () {
mTmp = 0;
var mTmp2 = 0;
var mTmp3 = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
{
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa1";
} else {
return a.aData[a.iDataColumn];
}
}
},
{
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp2 == 0 ) {
mTmp2++;
return "aaa2";
} else {
return a.aData[a.iDataColumn];
}
}
},
{
"fnRender": function (a) {
if ( mTmp3 == 0 ) {
mTmp3++;
return "zzz3";
} else {
return a.aData[a.iDataColumn];
}
}
},
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'aaa1'; }
);
oTest.fnTest(
"Multi-column rendering - 2nd column sorting",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"Multi-column rendering - 3rd column sorting",
function () {
$('#example thead th:eq(2)').click();
$('#example thead th:eq(2)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(2)').html() == 'zzz3'; }
);
oTest.fnTest(
"Multi-column rendering - 4th column sorting",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == '-'; }
);
oTest.fnTest(
"Multi-column rendering - 5th column sorting",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnComplete();
} );

View File

@ -1,132 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.bVisible" );
$(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(
"Can hide one column and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "bVisible": false },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 4; }
);
oTest.fnTest(
"Can hide one column and it removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 4; }
);
oTest.fnTest(
"Can hide one column and it removes tfoot th column from DOM",
null,
function () { return $('#example tfoot tr:eq(0) th').length == 4; }
);
oTest.fnTest(
"The correct thead column has been hidden",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Platform(s)" &&
jqNodes[2].innerHTML == "Engine version" &&
jqNodes[3].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnTest(
"The correct tbody column has been hidden",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
},
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "Gnome" &&
jqNodes[2].innerHTML == "1.8" &&
jqNodes[3].innerHTML == "A";
return bReturn;
}
);
oTest.fnTest(
"Can hide multiple columns and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "bVisible": false },
{ "bVisible": false },
null,
{ "bVisible": false }
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 2; }
);
oTest.fnTest(
"Multiple hide - removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 2; }
);
oTest.fnTest(
"Multiple hide - removes tfoot th column from DOM",
null,
function () { return $('#example tfoot tr:eq(0) th').length == 2; }
);
oTest.fnTest(
"Multiple hide - the correct thead columns have been hidden",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Engine version"
return bReturn;
}
);
oTest.fnTest(
"Multiple hide - the correct tbody columns have been hidden",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
},
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "1"
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,175 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.fnRender" );
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
mTmp++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Single column - fnRender is called once for each row",
null,
function () { return mTmp == 57; }
);
oTest.fnTest(
"Confirm that fnRender passes one argument (an object) with three parameters",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( arguments.length != 1 || typeof a.iDataRow=='undefined' ||
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender iDataColumn is row number",
function () {
var iCount = 0;
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( iCount != a.iDataRow )
{
mTmp = false;
}
iCount++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender iDataColumn is the column",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.iDataColumn != 1 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender aData is data array of correct size",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.aData.length != 5 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "fnRender": function (a) {
return 'unittest';
} },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; }
);
oTest.fnTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
null,
{ "fnRender": function (a) {
return 'unittest1';
} },
{ "fnRender": function (a) {
return 'unittest2';
} },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' &&
$('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2';
return bReturn; }
);
oTest.fnComplete();
} );

View File

@ -1,88 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.iDataSort" );
$(document).ready( function () {
/* Should know that sorting already works by default from other tests, so we can jump
* right in here
*/
var oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "iDataSort": 4 },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Sorting on first column is uneffected",
null,
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
);
oTest.fnTest(
"Sorting on second column is the order of the fifth",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"Reserve sorting on second column uses fifth column as well",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
);
oTest.fnTest(
"Sorting on 5th column retains it's own sorting",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"Use 2nd col for sorting 5th col and via-versa - no effect on first col sorting",
function () {
mTmp = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
{ "iDataSort": 4 },
null,
null,
{ "iDataSort": 1 }
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
);
oTest.fnTest(
"2nd col sorting uses fifth col",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"2nd col sorting uses fifth col - reversed",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
);
oTest.fnTest(
"5th col sorting uses 2nd col",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"5th col sorting uses 2nd col - reversed",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1'; }
);
oTest.fnComplete();
} );

View File

@ -1,111 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.sClass" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"By default the test class hasn't been applied to the column (sanity!)",
null,
function () { return $('#example tbody tr:eq(0) td:eq(2)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
null,
{ "sClass": 'unittest' },
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(1) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - third row",
null,
function () { return $('#example tbody tr:eq(3) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - last row",
null,
function () { return $('#example tbody tr:eq(9) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - has not applied to other columns - 1st",
null,
function () { return $('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - has not applied to other columns - 5th",
null,
function () { return $('#example tbody tr:eq(3) td:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - seventh row - second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody tr:eq(6) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - has not applied to header",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - has not applied to footer",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Class defined for multiple columns - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
{ "sClass": 'unittest2' },
null,
null,
{ "sClass": 'unittest1' },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest2') &&
$('#example tbody tr:eq(8) td:eq(3)').hasClass('unittest1');
return bReturn;
}
);
oTest.fnTest(
"Class defined for multiple columns - has not applied to other columns - 5th 1",
null,
function () { return $('#example tbody tr:eq(0) td:eq(4)').hasClass('unittest1') == false; }
);
oTest.fnTest(
"Class defined for multiple columns - has not applied to other columns - 5th 2",
null,
function () { return $('#example tbody tr:eq(6) td:eq(4)').hasClass('unittest2') == false; }
);
oTest.fnComplete();
} );

View File

@ -1,27 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.sName" );
/* This has no effect at all in DOM methods - so we just check that it has applied the name */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aoColumns": [
null,
null,
null,
{ "sName": 'unit test' },
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Names are stored in the columns object",
null,
function () { return oSettings.aoColumns[3].sName =="unit test"; }
);
oTest.fnComplete();
} );

View File

@ -1,78 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.sTitle" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Column names are read from the DOM by default",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Browser" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnTest(
"Can set a single column title - and others are read from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "sTitle": 'unit test' },
null,
null,
null
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnTest(
"Can set multiple column titles",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aoColumns": [
null,
{ "sTitle": 'unit test 1' },
null,
null,
{ "sTitle": 'unit test 2' }
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test 1" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "unit test 2";
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,84 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoColumns.sWidth" );
/* NOTE - we need to disable the auto width for the majority of these test in order to preform
* these tests as the auto width will convert the width to a px value. We can do 'non-exact' tests
* with auto width enabled however to ensure it scales columns as required
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bAutoWidth": false,
"aoColumns": [
null,
{ "sWidth": '40%' },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"With auto width disabled the width for one column is appled",
null,
function () { return $('#example thead th:eq(1)')[0].style.width == "40%"; }
);
oTest.fnTest(
"With auto width disabled the width for one column is appled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bAutoWidth": false,
"aoColumns": [
null,
null,
{ "sWidth": '20%' },
{ "sWidth": '30%' },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(2)')[0].style.width == "20%" &&
$('#example thead th:eq(3)')[0].style.width == "30%";
return bReturn;
}
);
oTest.fnTest(
"With auto width, it will make the smallest column the largest with percentage width given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoColumns": [
null,
null,
null,
{ "sWidth": '40%' },
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;
if ( a3>a0 && a3>a1 && a3>a2 && a3>a4 )
return true;
else
return false;
}
);
oTest.fnComplete();
} );

View File

@ -1,112 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "aoSearchCols" );
/* We could be here forever testing this one, so we test a limited subset on a couple of colums */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default should be to have a empty colums array",
null,
function () {
var bReturn =
oSettings.aoPreSearchCols[0].sSearch == 0 && !oSettings.aoPreSearchCols[0].bRegex &&
oSettings.aoPreSearchCols[1].sSearch == 0 && !oSettings.aoPreSearchCols[1].bRegex &&
oSettings.aoPreSearchCols[2].sSearch == 0 && !oSettings.aoPreSearchCols[2].bRegex &&
oSettings.aoPreSearchCols[3].sSearch == 0 && !oSettings.aoPreSearchCols[3].bRegex &&
oSettings.aoPreSearchCols[4].sSearch == 0 && !oSettings.aoPreSearchCols[4].bRegex;
return bReturn;
}
);
oTest.fnTest(
"Search on a single column - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1" },
null
]
} );
},
function () { return $('#example_info').html() == "Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Search on two columns - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1.5" },
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1.5"; }
);
oTest.fnTest(
"Search on single column - escape regex false",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
null,
null,
null,
null
]
} );
},
function () { return $('#example_info').html() == "Showing 1 to 3 of 3 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Search on two columns - escape regex false on first, true on second",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
{ "sSearch": "3.3", "bEscapeRegex": true },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Konqureror 3.3"; }
);
oTest.fnTest(
"Search on two columns (no records) - escape regex false on first, true on second",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
{ "sSearch": "Allan", "bEscapeRegex": true },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnComplete();
} );

View File

@ -1,106 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "asStripClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Default row striping is applied",
null,
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
oTest.fnTest(
"Row striping does not effect current classes",
null,
function () {
return $('#example tbody tr:eq(0)').hasClass('gradeA') &&
$('#example tbody tr:eq(1)').hasClass('gradeA') &&
$('#example tbody tr:eq(2)').hasClass('gradeA') &&
$('#example tbody tr:eq(3)').hasClass('gradeA');
}
);
oTest.fnTest(
"Row striping on the second page",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
/* No striping */
oTest.fnTest(
"No row striping",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"asStripClasses": []
} );
},
function () {
return $('#example tbody tr:eq(0)')[0].className == "gradeA" &&
$('#example tbody tr:eq(1)')[0].className == "gradeA" &&
$('#example tbody tr:eq(2)')[0].className == "gradeA" &&
$('#example tbody tr:eq(3)')[0].className == "gradeA";
}
);
/* Custom striping */
oTest.fnTest(
"Custom striping [2]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"asStripClasses": [ 'test1', 'test2' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test1') &&
$('#example tbody tr:eq(3)').hasClass('test2');
}
);
/* long array of striping */
oTest.fnTest(
"Custom striping [4]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"asStripClasses": [ 'test1', 'test2', 'test3', 'test4' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnTest(
"Custom striping is restarted on second page [2]",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnComplete();
} );

View File

@ -1,138 +0,0 @@
// DATA_TEMPLATE: dom_data
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();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Auto width is enabled by default",
null,
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnTest(
"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.fnTest(
"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.fnTest(
"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.fnTest(
"Auto width can be disabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bAutoWidth": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth == false; }
);
oTest.fnTest(
"First column does not have a width assigned to it",
null,
function () { return $('#example thead th:eq(0)').attr('style') == null; }
);
/*
oTest.fnTest(
"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.fnTest(
"Auto width enabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bAutoWidth": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnComplete();
} );

View File

@ -1,40 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bFilter" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Filtering div exists by default",
null,
function () { return document.getElementById('example_filter') != null; }
);
/* Check can disable */
oTest.fnTest(
"Fltering can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bFilter": false
} );
},
function () { return document.getElementById('example_filter') == null; }
);
/* Enable makes no difference */
oTest.fnTest(
"Filtering enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bFilter": true
} );
},
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,130 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bInfiniteScroll" );
$(document).ready( function () {
var oTable = $('#example').dataTable( {
"bScrollInfinite": true,
"sScrollY": "200px"
} );
oTest.fnTest(
"10 rows by default",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Info",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Get nodes",
null,
function () { return $('#example tbody>tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll on 20px adds 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Info after 20px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
);
oTest.fnTest(
"Get nodes after 20px scroll",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnTest(
"Scroll on 10px more results in the same number of rows",
function () { $('div.dataTables_scrollBody').scrollTop(30); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Info after 10 more px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 20 of 57 entries"; }
);
oTest.fnWaitTest(
"Scroll to 240px adds another 10 rows",
function () { $('div.dataTables_scrollBody').scrollTop(240); },
function () { return $('#example tbody tr').length == 30; }
);
oTest.fnTest(
"Info after 240px scroll",
null,
function () { return $('#example_info').html() == "Showing 1 to 30 of 57 entries"; }
);
oTest.fnTest(
"Get nodes after 240px scroll",
null,
function () { return $('#example tbody>tr').length == 30; }
);
oTest.fnTest(
"Filtering will drop back to 10 rows",
function () {
$('div.dataTables_scrollBody').scrollTop(0);
oTable.fnFilter('gec')
},
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Info after filtering",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 20 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Get nodes after filtering",
null,
function () { return $('#example tbody>tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll after filtering adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Get nodes after filtering",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnTest(
"Sorting will drop back to 10 rows",
function () { oTable.fnSort([[1,'asc']]) },
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnWaitTest(
"Scroll after sorting adds 10",
function () { $('div.dataTables_scrollBody').scrollTop(20); },
function () { return $('#example tbody tr').length == 20; }
);
oTest.fnTest(
"Get nodes after scrolling",
null,
function () { return $('#example tbody>tr').length == 20; }
);
oTest.fnComplete();
} );

View File

@ -1,40 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bInfo" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Info div exists by default",
null,
function () { return document.getElementById('example_info') != null; }
);
/* Check can disable */
oTest.fnTest(
"Info can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bInfo": false
} );
},
function () { return document.getElementById('example_info') == null; }
);
/* Enable makes no difference */
oTest.fnTest(
"Info enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bInfo": true
} );
},
function () { return document.getElementById('example_info') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,40 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bJQueryUI" );
$(document).ready( function () {
$('#example').dataTable( {
"bJQueryUI": true
} );
oTest.fnTest(
"Header elements are fully wrapped by DIVs",
null,
function () {
var test = true;
$('#example thead th').each( function () {
if ( this.childNodes > 1 ) {
test = false;
}
} );
return test;
}
);
oTest.fnTest(
"One div for each header element",
null,
function () {
return $('#example thead th div').length == 5;
}
);
oTest.fnTest(
"One span for each header element, nested as child of div",
null,
function () {
return $('#example thead th div>span').length == 5;
}
);
oTest.fnComplete();
} );

View File

@ -1,71 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bLengthChange" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Length div exists by default",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnTest(
"Four default options",
null,
function () { return $("select[name=example_length] option").length == 4; }
);
oTest.fnTest(
"Default options",
null,
function () {
var opts = $("select[name='example_length'] option");
return opts[0].getAttribute('value') == 10 && opts[1].getAttribute('value') == 25 &&
opts[2].getAttribute('value') == 50 && opts[3].getAttribute('value') == 100;
}
);
oTest.fnTest(
"Info takes length into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnTest(
"Change length can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bLengthChange": false
} );
},
function () { return document.getElementById('example_length') == null; }
);
oTest.fnTest(
"Information takes length disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Length change enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bLengthChange": true
} );
},
function () { return document.getElementById('example_length') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,55 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bPaginate" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Pagiantion div exists by default",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnTest(
"Information div takes paging into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bPaginate": false
} );
},
function () { return document.getElementById('example_paginate') == null; }
);
oTest.fnTest(
"Information div takes paging disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 57 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Pagiantion enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bPaginate": true
} );
},
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,99 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bProcessing" );
/* It's actually a bit hard to set this one due to the fact that it will only be shown
* when DataTables is doing some kind of processing. The server-side processing is a bit
* better to test this than here - so we just the interal functions to enable it and check
* that it is available
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Processing is off by default",
null,
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"Processing div cannot be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"Processing div cannot be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing') == null; }
);
/* Check can disable */
oTest.fnTest(
"Processing can be enabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bProcessing": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == true; }
);
oTest.fnTest(
"Processing div is in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing'); }
);
oTest.fnTest(
"Processing div is hidden by default",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
oTest.fnTest(
"Processing div can be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "visible"; }
);
oTest.fnTest(
"Processing div can be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Processing disabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bProcessing": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnComplete();
} );

View File

@ -1,18 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bServerSide" );
/* Not interested in server-side processing here other than to check that it is off */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Server side is off by default",
null,
function () { return oSettings.oFeatures.bServerSide == false; }
);
oTest.fnComplete();
} );

View File

@ -1,101 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bSort" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Sorting is on by default",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Sorting Asc by default class applied",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc"); }
);
oTest.fnTest(
"Click on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting class removed from first column",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc") != true; }
);
oTest.fnTest(
"Sorting asc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc"); }
);
oTest.fnTest(
"Reverse on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Sorting acs class removed from second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") != true; }
);
oTest.fnTest(
"Sorting desc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_desc"); }
);
/* Check can disable */
oTest.fnTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bSort": false
} );
},
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Disabled classes applied",
null,
function () { return $('#example thead th:eq(0)').hasClass('sorting_disabled'); }
);
oTest.fnTest(
"Click on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Reverse on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Sorting enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bSort": true
} );
},
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnComplete();
} );

View File

@ -1,128 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "bSortClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Sorting classes are applied by default",
null,
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnTest(
"Sorting classes are applied to all required cells",
null,
function () { return $('#example tbody tr:eq(7) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnTest(
"Sorting classes are not applied to non-sorting columns",
null,
function () { return $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_1') == false; }
);
oTest.fnTest(
"Sorting multi-column - add column 1",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2');
}
);
oTest.fnTest(
"Sorting multi-column - add column 2",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3');
}
);
oTest.fnTest(
"Sorting multi-column - add column 3",
function () {
oDispacher.click( $('#example thead th:eq(3)')[0], { 'shift': true } );
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3');
}
);
oTest.fnTest(
"Remove sorting classes on single column sort",
function () {
$('#example thead th:eq(4)').click();
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3') == false;
}
);
oTest.fnTest(
"Sorting class 1 was added",
null,
function () { return $('#example tbody tr:eq(1) td:eq(4)').hasClass('sorting_1'); }
);
/* Check can disable */
oTest.fnTest(
"Sorting classes can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bSortClasses": false
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false; }
);
oTest.fnTest(
"Sorting classes disabled - add column 1 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false;
}
);
oTest.fnTest(
"Sorting classes disabled - add column 2 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false;
}
);
/* Enable makes no difference */
oTest.fnTest(
"Sorting classes enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"bSortClasses": true
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnComplete();
} );

View File

@ -1,97 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "Cookie callback" );
$(document).ready( function () {
var mPass;
/* Note that in order to be fully effective here for saving state, there would need to be a
* stringify function to serialise the data array
*/
oTest.fnTest(
"null by default",
function () {
$('#example').dataTable();
},
function () { return $('#example').dataTable().fnSettings().fnCookieCallback == null; }
);
oTest.fnTest(
"Number of arguments",
function () {
$('#example').dataTable( {
"bDestroy": true,
"bStateSave": true,
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
mPass = arguments.length;
return sName + "=; expires=" + sExpires +"; path=" + sPath;
}
} );
},
function () { return mPass == 4; }
);
oTest.fnTest(
"Name",
function () {
$('#example').dataTable( {
"bDestroy": true,
"bStateSave": true,
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
mPass = sName=="SpryMedia_DataTables_example_dom_data.php";
return sName + "=; expires=" + sExpires +"; path=" + sPath;
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Data",
function () {
$('#example').dataTable( {
"bDestroy": true,
"bStateSave": true,
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
mPass = typeof oData.iStart != 'undefined';
return sName + "=; expires=" + sExpires +"; path=" + sPath;
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Expires",
function () {
$('#example').dataTable( {
"bDestroy": true,
"bStateSave": true,
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
mPass = typeof sExpires == 'string';
return sName + "=; expires=" + sExpires +"; path=" + sPath;
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Path",
function () {
$('#example').dataTable( {
"bDestroy": true,
"bStateSave": true,
"fnCookieCallback": function (sName, oData, sExpires, sPath) {
mPass = sPath.match(/media\/unit_testing\/templates/);
return sName + "=; expires=" + sExpires +"; path=" + sPath;
}
} );
},
function () { return mPass; }
);
oTest.fnCookieDestroy( $('#example').dataTable() );
oTest.fnComplete();
} );

View File

@ -1,30 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnDeleteRow" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Check that the default data is sane",
null,
function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 3; }
);
oTest.fnTest(
"Remove the first data row, and check that hte search data has been updated",
function () { oTable.fnDeleteRow( 0 ); },
function () { return oSettings.asDataSearch.join(' ').match(/4.0/g).length == 2; }
);
oTest.fnTest(
"Check that the info element has been updated",
null,
function () { return $('#example_info').html() == "Showing 1 to 10 of 56 entries"; }
);
oTest.fnComplete();
} );

View File

@ -1,80 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnDrawCallback" );
/* Fairly boring function compared to the others! */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnDrawCallback == null; }
);
oTest.fnTest(
"One argument passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"fnDrawCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"That one argument is the settings object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"fnDrawCallback": function ( oSettings ) {
mPass = oSettings;
}
} );
},
function () { return oTable.fnSettings() == mPass; }
);
oTest.fnTest(
"fnRowCallback called once on first draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnDrawCallback": function ( ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnRowCallback called once on each draw there after as well",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return mPass == 4; }
);
oTest.fnComplete();
} );

View File

@ -1,227 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnFooterCallback" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnFooterCallback == null; }
);
oTest.fnTest(
"Five arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"fnFooterCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 5; }
);
oTest.fnTest(
"fnRowCallback called once per draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnRowCallback called on paging (i.e. another draw)",
function () { $('#example_next').click(); },
function () { return mPass == 2; }
);
oTest.fnTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
nFoot.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
}
} );
},
function () { return $('#example tfoot th:eq(0)').html() == "Displaying 10 records"; }
);
oTest.fnTest(
"Data array has length matching original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aasData.length != 57 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Data array's column lengths match original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
for ( var i=0, iLen=aasData.length ; i<iLen ; i++ )
{
if ( aasData[i].length != 5 )
{
mPass = false;
}
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart != 0 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart == 10 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd != 10 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd == 20 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is full data when not filtered",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 57 )
{
mPass = true;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is 9 when filtering on 'Mozilla'",
function () {
oSession.fnRestore();
mPass = false;
oTable = $('#example').dataTable( {
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 9 )
{
mPass = true;
}
}
} );
oTable.fnFilter( "Mozilla" );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

View File

@ -1,227 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnHeaderCallback" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnHeaderCallback == null; }
);
oTest.fnTest(
"Five arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"fnHeaderCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 5; }
);
oTest.fnTest(
"fnRowCallback called once per draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnRowCallback called on paging (i.e. another draw)",
function () { $('#example_next').click(); },
function () { return mPass == 2; }
);
oTest.fnTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
nHead.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
}
} );
},
function () { return $('#example thead th:eq(0)').html() == "Displaying 10 records"; }
);
oTest.fnTest(
"Data array has length matching original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aasData.length != 57 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Data array's column lengths match original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
for ( var i=0, iLen=aasData.length ; i<iLen ; i++ )
{
if ( aasData[i].length != 5 )
{
mPass = false;
}
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart != 0 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart == 10 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd != 10 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd == 20 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is full data when not filtered",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 57 )
{
mPass = true;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is 9 when filtering on 'Mozilla'",
function () {
oSession.fnRestore();
mPass = false;
oTable = $('#example').dataTable( {
"fnHeaderCallback": function ( nHead, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 9 )
{
mPass = true;
}
}
} );
oTable.fnFilter( "Mozilla" );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

View File

@ -1,115 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnInfoCallback checks" );
$(document).ready( function () {
var mPass;
$('#example').dataTable();
/* Basic checks */
oTest.fnTest(
"null by default",
null,
function () { return $('#example').dataTable().fnSettings().oLanguage.fnInfoCallback == null; }
);
oTest.fnTest(
"Agrument length",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
mPass = arguments.length;
return sPre;
}
} );
},
function () { return mPass == 6; }
);
oTest.fnTest(
"Settings first",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
mPass = (oS == $('#example').dataTable().fnSettings()) ? true : false;
return sPre;
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Start arg",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
return iStart;
}
} );
},
function () { return $('#example_info').html() == "1"; }
);
oTest.fnTest(
"End arg",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
return iEnd;
}
} );
},
function () { return $('#example_info').html() == "10"; }
);
oTest.fnTest(
"Max arg",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
return iMax;
}
} );
},
function () { return $('#example_info').html() == "57"; }
);
oTest.fnTest(
"Max arg - filter",
function () {
$('#example').dataTable().fnFilter("1.0");
},
function () { return $('#example_info').html() == "57"; }
);
oTest.fnTest(
"Total arg",
function () {
$('#example').dataTable( {
"bDestroy": true,
"fnInfoCallback": function( oS, iStart, iEnd, iMax, iTotal, sPre ) {
return iTotal;
}
} );
},
function () { return $('#example_info').html() == "57"; }
);
oTest.fnTest(
"Total arg - filter",
function () {
$('#example').dataTable().fnFilter("1.0");
},
function () { return $('#example_info').html() == "3"; }
);
oTest.fnComplete();
} );

View File

@ -1,94 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnInitComplete" );
/* Fairly boring function compared to the others! */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnInitComplete == null; }
);
oTest.fnTest(
"One argument passed (for DOM!)",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"fnInitComplete": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"That one argument is the settings object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"fnInitComplete": function ( oSettings ) {
mPass = oSettings;
}
} );
},
function () { return oTable.fnSettings() == mPass; }
);
oTest.fnTest(
"fnInitComplete called once on first draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnInitComplete": function ( ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnInitComplete never called there after",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return mPass == 1; }
);
oTest.fnWaitTest(
"10 rows in the table on complete",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnInitComplete": function ( ) {
mPass = $('#example tbody tr').length;
}
} );
},
function () { return mPass == 10; }
);
oTest.fnComplete();
} );

View File

@ -1,105 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "fnRowCallback" );
/* Note - fnRowCallback MUST return the first arguments (modified or not) */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnRowCallback == null; }
);
oTest.fnTest(
"Four arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"fnRowCallback": function ( nTr ) {
mPass = arguments.length;
return nTr;
}
} );
},
function () { return mPass == 4; }
);
oTest.fnTest(
"fnRowCallback called once for each drawn row",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
mPass++;
return nTr;
}
} );
},
function () { return mPass == 10; }
);
oTest.fnTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
$(nTr).addClass('unit_test');
return nTr;
}
} );
},
function () { return $('#example tbody tr:eq(1)').hasClass('unit_test'); }
);
oTest.fnTest(
"Data array has length matching columns",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( asData.length != 5 )
mPass = false;
return nTr;
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Data array has length matching columns",
function () {
oSession.fnRestore();
mPass = true;
var iCount = 0;
$('#example').dataTable( {
"fnRowCallback": function ( nTr, asData, iDrawIndex, iDataIndex ) {
if ( iCount != iDrawIndex )
mPass = false;
iCount++;
return nTr;
}
} );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

View File

@ -1,76 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "iDisplayLength" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable();
oTest.fnTest(
"Default length is ten",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Select menu shows 10",
null,
function () { return $('#example_length select').val() == 10; }
);
oTest.fnTest(
"Set initial length to 25",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"iDisplayLength": 25
} );
},
function () { return $('#example tbody tr').length == 25; }
);
oTest.fnTest(
"Select menu shows 25",
null,
function () { return $('#example_length select').val() == 25; }
);
oTest.fnTest(
"Set initial length to 100",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"iDisplayLength": 100
} );
},
function () { return $('#example tbody tr').length == 57; }
);
oTest.fnTest(
"Select menu shows 25",
null,
function () { return $('#example_length select').val() == 100; }
);
oTest.fnTest(
"Set initial length to 23 (unknown select menu length)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"iDisplayLength": 23
} );
},
function () { return $('#example tbody tr').length == 23; }
);
oTest.fnTest(
"Select menu shows 10 (since 23 is unknow)",
null,
function () { return $('#example_length select').val() == 10; }
);
oTest.fnComplete();
} );

View File

@ -1,80 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.oPaginate" );
/* Note that the paging language information only has relevence in full numbers */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( { "sPaginationType": "full_numbers" } );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"oLanguage.oPaginate defaults",
null,
function () {
var bReturn =
oSettings.oLanguage.oPaginate.sFirst == "First" &&
oSettings.oLanguage.oPaginate.sPrevious == "Previous" &&
oSettings.oLanguage.oPaginate.sNext == "Next" &&
oSettings.oLanguage.oPaginate.sLast == "Last";
return bReturn;
}
);
oTest.fnTest(
"oLanguage.oPaginate defaults are in the DOM",
null,
function () {
var bReturn =
$('#example_paginate .first').html() == "First" &&
$('#example_paginate .previous').html() == "Previous" &&
$('#example_paginate .next').html() == "Next" &&
$('#example_paginate .last').html() == "Last";
return bReturn;
}
);
oTest.fnTest(
"oLanguage.oPaginate can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"sPaginationType": "full_numbers",
"oLanguage": {
"oPaginate": {
"sFirst": "unit1",
"sPrevious": "test2",
"sNext": "unit3",
"sLast": "test4"
}
}
} );
oSettings = oTable.fnSettings();
},
function () {
var bReturn =
oSettings.oLanguage.oPaginate.sFirst == "unit1" &&
oSettings.oLanguage.oPaginate.sPrevious == "test2" &&
oSettings.oLanguage.oPaginate.sNext == "unit3" &&
oSettings.oLanguage.oPaginate.sLast == "test4";
return bReturn;
}
);
oTest.fnTest(
"oLanguage.oPaginate definitions are in the DOM",
null,
function () {
var bReturn =
$('#example_paginate .first').html() == "unit1" &&
$('#example_paginate .previous').html() == "test2" &&
$('#example_paginate .next').html() == "unit3" &&
$('#example_paginate .last').html() == "test4";
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,109 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sInfo" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Info language is 'Showing _START_ to _END_ of _TOTAL_ entries' by default",
null,
function () { return oSettings.oLanguage.sInfo == "Showing _START_ to _END_ of _TOTAL_ entries"; }
);
oTest.fnTest(
"Info language default is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Info language can be defined - without any macros",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfo": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sInfo == "unit test"; }
);
oTest.fnTest(
"Info language definition is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "unit test"; }
);
oTest.fnTest(
"Info language can be defined - with macro _START_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oLanguage": {
"sInfo": "unit _START_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 test"; }
);
oTest.fnTest(
"Info language can be defined - with macro _END_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oLanguage": {
"sInfo": "unit _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 10 test"; }
);
oTest.fnTest(
"Info language can be defined - with macro _TOTAL_ only",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oLanguage": {
"sInfo": "unit _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 57 test"; }
);
oTest.fnTest(
"Info language can be defined - with macros _START_ and _END_",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oLanguage": {
"sInfo": "unit _START_ _END_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 10 test"; }
);
oTest.fnTest(
"Info language can be defined - with macros _START_, _END_ and _TOTAL_",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oLanguage": {
"sInfo": "unit _START_ _END_ _TOTAL_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "unit 1 10 57 test"; }
);
oTest.fnComplete();
} );

View File

@ -1,75 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sInfoEmpty" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Info empty language is 'Showing 0 to 0 of 0 entries' by default",
function () { oTable.fnFilter("nothinghere"); },
function () { return oSettings.oLanguage.sInfoEmpty == "Showing 0 to 0 of 0 entries"; }
);
oTest.fnTest(
"Info empty language default is in the DOM",
null,
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"Showing 0 to 0 of 0 entries";
return bReturn;
}
);
oTest.fnTest(
"Info empty language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfoEmpty": "unit test"
}
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("nothinghere");
},
function () { return oSettings.oLanguage.sInfoEmpty == "unit test"; }
);
oTest.fnTest(
"Info empty language default is in the DOM",
null,
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"unit test";
return bReturn;
}
);
oTest.fnTest(
"Macro's not replaced",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfoEmpty": "unit _START_ _END_ _TOTAL_ test"
}
} );
oTable.fnFilter("nothinghere");
},
function () {
var bReturn = document.getElementById('example_info').innerHTML.replace(
' '+oSettings.oLanguage.sInfoFiltered.replace( '_MAX_', '57' ), "" ) ==
"unit _START_ _END_ _TOTAL_ test";
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,73 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sInfoPostFix" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Info post fix language is '' (blank) by default",
null,
function () { return oSettings.oLanguage.sInfoPostFix == ""; }
);
oTest.fnTest(
"Width no post fix, the basic info shows",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Info post fix language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfoPostFix": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sInfoPostFix == "unit test"; }
);
oTest.fnTest(
"Info empty language default is in the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries unit test"; }
);
oTest.fnTest(
"Macros have no effect in the post fix",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfoPostFix": "unit _START_ _END_ _TOTAL_ test"
}
} );
},
function () { return document.getElementById('example_info').innerHTML = "Showing 1 to 10 of 57 entries unit _START_ _END_ _TOTAL_ test"; }
);
oTest.fnTest(
"Post fix is applied after fintering info",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sInfoPostFix": "unit test"
}
} );
oTable.fnFilter("nothinghere");
},
function () { return document.getElementById('example_info').innerHTML = "Showing 0 to 0 of 0 entries unit (filtered from 57 total entries) test"; }
);
oTest.fnComplete();
} );

View File

@ -1,101 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sLengthMenu" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Menu language is 'Show _MENU_ entries' by default",
null,
function () { return oSettings.oLanguage.sLengthMenu == "Show _MENU_ entries"; }
);
oTest.fnTest(
"_MENU_ macro is replaced by select menu in DOM",
null,
function () { return $('select', oSettings.aanFeatures.l[0]).length == 1 }
);
oTest.fnTest(
"Default is put into DOM",
null,
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren[0].nodeValue == "Show " &&
anChildren[2].nodeValue == " entries";
return bReturn;
}
);
oTest.fnTest(
"Menu length language can be defined - no _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sLengthMenu": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sLengthMenu == "unit test"; }
);
oTest.fnTest(
"Menu length language definition is in the DOM",
null,
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
return anChildren[0].nodeValue == "unit test";
}
);
oTest.fnTest(
"Menu length language can be defined - with _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sLengthMenu": "unit _MENU_ test"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren[0].nodeValue == "unit " &&
anChildren[2].nodeValue == " test";
return bReturn;
}
);
oTest.fnTest(
"Only the _MENU_ macro",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sLengthMenu": "_MENU_"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var anChildren = oSettings.aanFeatures.l[0].childNodes;
var bReturn =
anChildren.length == 1 &&
$('select', oSettings.aanFeatures.l[0]).length == 1;
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,47 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sProcessing" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"bProcessing": true
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Processing language is 'Processing...' by default",
null,
function () { return oSettings.oLanguage.sProcessing == "Processing..."; }
);
oTest.fnTest(
"Processing language default is in the DOM",
null,
function () { return document.getElementById('example_processing').innerHTML = "Processing..."; }
);
oTest.fnTest(
"Processing language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"bProcessing": true,
"oLanguage": {
"sProcessing": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sProcessing == "unit test"; }
);
oTest.fnTest(
"Processing language definition is in the DOM",
null,
function () { return document.getElementById('example_processing').innerHTML = "unit test"; }
);
oTest.fnComplete();
} );

View File

@ -1,61 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sSearch" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Search language is 'Search:' by default",
null,
function () { return oSettings.oLanguage.sSearch == "Search:"; }
);
oTest.fnTest(
"Search language default is in the DOM",
null,
function () { return document.getElementById('example_filter').childNodes[0].nodeValue
== "Search: "; }
);
oTest.fnTest(
"Search language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sSearch": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sSearch == "unit test"; }
);
oTest.fnTest(
"Info language definition is in the DOM",
null,
function () { return document.getElementById('example_filter').childNodes[0].nodeValue
== "unit test "; }
);
oTest.fnTest(
"Blank search has a no (separator) inserted",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sSearch": ""
}
} );
oSettings = oTable.fnSettings();
},
function () { return document.getElementById('example_filter').childNodes.length == 1; }
);
oTest.fnComplete();
} );

View File

@ -1,59 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sUrl" );
/* Note that we only test the internal storage of language information pulled form a file here
* as the other language tests will check it goes into the DOM correctly
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"sUrl is blank by default",
null,
function () { return oSettings.oLanguage.sUrl == ""; }
);
oTest.fnWaitTest(
"Loading of German file loads language information",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sUrl": "../../../examples/examples_support/de_DE.txt"
}
} );
oSettings = oTable.fnSettings();
},
function () {
var bReturn =
oSettings.oLanguage.sProcessing == "Bitte warten..." &&
oSettings.oLanguage.sLengthMenu == "_MENU_ Einträge anzeigen" &&
oSettings.oLanguage.sZeroRecords == "Keine Einträge vorhanden." &&
oSettings.oLanguage.sInfo == "_START_ bis _END_ von _TOTAL_ Einträgen" &&
oSettings.oLanguage.sInfoEmpty == "0 bis 0 von 0 Einträgen" &&
oSettings.oLanguage.sInfoFiltered == "(gefiltert von _MAX_ Einträgen)" &&
oSettings.oLanguage.sInfoPostFix == "" &&
oSettings.oLanguage.sSearch == "Suchen" &&
oSettings.oLanguage.oPaginate.sFirst == "Erster" &&
oSettings.oLanguage.oPaginate.sPrevious == "Zurück" &&
oSettings.oLanguage.oPaginate.sNext == "Nächster" &&
oSettings.oLanguage.oPaginate.sLast == "Letzter";
return bReturn;
}
);
/* One DOM check just to ensure that they go into the DOM */
oTest.fnTest(
"Loaded language goes into the DOM",
null,
function () { return document.getElementById('example_info').innerHTML = "1 bis 10 von 57 Einträgen"; }
);
oTest.fnComplete();
} );

View File

@ -1,45 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oLanguage.sZeroRecords" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Zero records language is 'No matching records found' by default",
null,
function () { return oSettings.oLanguage.sZeroRecords == "No matching records found"; }
);
oTest.fnTest(
"Text is shown when empty table (after filtering)",
function () { oTable.fnFilter('nothinghere'); },
function () { return $('#example tbody tr td')[0].innerHTML == "No matching records found" }
);
oTest.fnTest(
"Zero records language can be defined",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oLanguage": {
"sZeroRecords": "unit test"
}
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oLanguage.sZeroRecords == "unit test"; }
);
oTest.fnTest(
"Text is shown when empty table (after filtering)",
function () { oTable.fnFilter('nothinghere2'); },
function () { return $('#example tbody tr td')[0].innerHTML == "unit test" }
);
oTest.fnComplete();
} );

View File

@ -1,101 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "oSearch" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default values should be blank",
null,
function () {
var bReturn = oSettings.oPreviousSearch.sSearch == "" &&
!oSettings.oPreviousSearch.bRegex;
return bReturn;
}
);
/* This test might be considered iffy since the full object isn't given, but it's reasonable to
* expect DataTables to cope with this. It should just assumine regex false
*/
oTest.fnTest(
"Search term only in object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"oSearch": {
"sSearch": "Mozilla"
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"New search will kill old one",
function () {
oTable.fnFilter("Opera");
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Presto"; }
);
oTest.fnTest(
"Search plain text term and escape regex true",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oSearch": {
"sSearch": "DS",
"bRegex": false
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Nintendo DS browser"; }
);
oTest.fnTest(
"Search plain text term and escape regex false",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oSearch": {
"sSearch": "Opera",
"bRegex": true
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Presto"; }
);
oTest.fnTest(
"Search regex text term and escape regex true",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oSearch": {
"sSearch": "1.*",
"bRegex": false
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnTest(
"Search regex text term and escape regex false",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"oSearch": {
"sSearch": "1.*",
"bRegex": true
}
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Gecko"; }
);
oTest.fnComplete();
} );

View File

@ -1,18 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "sAjaxSource" );
/* Not interested in ajax source here other than to check it's default */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Server side is off by default",
null,
function () { return oSettings.sAjaxSource == null; }
);
oTest.fnComplete();
} );

View File

@ -1,319 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "sDom" );
/* This is going to be brutal on the browser! There is a lot that can be tested here... */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default DOM varaible",
null,
function () { return oSettings.sDom == "lfrtip"; }
);
oTest.fnTest(
"Default DOM in document",
null,
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
nNodes[4] == nInfo &&
nNodes[5] == nPaging;
return bReturn;
}
);
oTest.fnTest(
"Check example 1 in code propagates",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"sDom": '<"wrapper"flipt>'
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.sDom == '<"wrapper"flipt>'; }
);
oTest.fnTest(
"Check example 1 in DOM",
null,
function () {
var jqNodes = $('#demo div, #demo table');
var nNodes = [];
/* Strip the paging nodes */
for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
{
if ( jqNodes[i].getAttribute('id') != "example_previous" &&
jqNodes[i].getAttribute('id') != "example_next" )
{
nNodes.push( jqNodes[i] );
}
}
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var nCustomWrapper = $('div.wrapper')[0];
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nCustomWrapper &&
nNodes[2] == nFilter &&
nNodes[3] == nLength &&
nNodes[4] == nInfo &&
nNodes[5] == nPaging &&
nNodes[6] == nTable;
return bReturn;
}
);
oTest.fnTest(
"Check example 2 in DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"sDom": '<lf<t>ip>'
} );
},
function () {
var jqNodes = $('#demo div, #demo table');
var nNodes = [];
var nCustomWrappers = []
/* Strip the paging nodes */
for ( var i=0, iLen=jqNodes.length ; i<iLen ; i++ )
{
if ( jqNodes[i].getAttribute('id') != "example_previous" &&
jqNodes[i].getAttribute('id') != "example_next" )
{
nNodes.push( jqNodes[i] );
}
/* Only the two custom divs don't have class names */
if ( !jqNodes[i].getAttribute('class') )
{
nCustomWrappers.push( jqNodes[i] );
}
}
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nCustomWrappers[0] &&
nNodes[2] == nLength &&
nNodes[3] == nFilter &&
nNodes[4] == nCustomWrappers[1] &&
nNodes[5] == nTable &&
nNodes[6] == nInfo &&
nNodes[7] == nPaging;
return bReturn;
}
);
oTest.fnTest(
"Check no length element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"sDom": 'frtip'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
null == nLength &&
nNodes[1] == nFilter &&
nNodes[2] == nTable &&
nNodes[3] == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
oTest.fnTest(
"Check no filter element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"sDom": 'lrtip'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
null == nFilter &&
nNodes[2] == nTable &&
nNodes[3] == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
/* Note we don't test for no table as this is not supported (and it would be fairly daft! */
oTest.fnTest(
"Check no info element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"sDom": 'lfrtp'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
null == nInfo &&
nNodes[4] == nPaging;
return bReturn;
}
);
oTest.fnTest(
"Check no paging element",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"sDom": 'lfrti'
} );
},
function () {
var nNodes = $('#demo div, #demo table');
var nWrapper = document.getElementById('example_wrapper');
var nLength = document.getElementById('example_length');
var nFilter = document.getElementById('example_filter');
var nInfo = document.getElementById('example_info');
var nPaging = document.getElementById('example_paginate');
var nTable = document.getElementById('example');
var bReturn =
nNodes[0] == nWrapper &&
nNodes[1] == nLength &&
nNodes[2] == nFilter &&
nNodes[3] == nTable &&
nNodes[4] == nInfo &&
null == nPaging;
return bReturn;
}
);
oTest.fnTest(
"Element with an id",
function () {
$('#example').dataTable( {
"bDestroy": true,
"sDom": '<"#test"lf>rti'
} );
},
function () {
return $('#test').length == 1;
}
);
oTest.fnTest(
"Element with an id and a class",
function () {
$('#example').dataTable( {
"bDestroy": true,
"sDom": '<"#test.classTest"lf>rti'
} );
},
function () {
return ($('#test').length == 1 && $('#test')[0].className == "classTest");
}
);
oTest.fnTest(
"Element with just a class",
function () {
$('#example').dataTable( {
"bDestroy": true,
"sDom": '<"classTest"lf>rti'
} );
},
function () {
return ($('div.classTest').length == 1 );
}
);
oTest.fnTest(
"Two elements with an id",
function () {
$('#example').dataTable( {
"bDestroy": true,
"sDom": '<"#test1"lf>rti<"#test2"lf>'
} );
},
function () {
return ($('#test1').length == 1 && $('#test2').length == 1);
}
);
oTest.fnTest(
"Two elements with an id and one with a class",
function () {
$('#example').dataTable( {
"bDestroy": true,
"sDom": '<"#test1"lf>rti<"#test2.classTest"lf>'
} );
},
function () {
return ($('#test1').length == 1 && $('#test2').length == 1 && $('div.classTest').length == 1);
}
);
oTest.fnComplete();
} );

View File

@ -1,122 +0,0 @@
// DATA_TEMPLATE: dom_data
oTest.fnStart( "sPaginationType" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable();
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Check two button paging is the default",
null,
function () { return oSettings.sPaginationType == "two_button"; }
);
oTest.fnTest(
"Check class is applied",
null,
function () { return $('#example_paginate').hasClass('paging_two_button'); }
);
oTest.fnTest(
"Two div elements are in the wrapper",
null,
function () { return $('#example_paginate div').length == 2; }
);
oTest.fnTest(
"We have the previous button",
null,
function () { return document.getElementById('example_previous'); }
);
oTest.fnTest(
"We have the next button",
null,
function () { return document.getElementById('example_next'); }
);
oTest.fnTest(
"Previous button is disabled",
null,
function () { return $('#example_previous').hasClass('paginate_disabled_previous'); }
);
oTest.fnTest(
"Next button is enabled",
null,
function () { return $('#example_next').hasClass('paginate_enabled_next'); }
);
/* Don't test paging - that's done by the zero config test script. */
/* Two buttons paging */
oTest.fnTest(
"Can enabled full numbers paging",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"sPaginationType": "full_numbers"
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.sPaginationType == "full_numbers"; }
);
oTest.fnTest(
"Check full numbers class is applied",
null,
function () { return $('#example_paginate').hasClass('paging_full_numbers'); }
);
var nFirst, nPrevious, nNext, nLast;
oTest.fnTest(
"Jump to last page",
function () {
nFirst = $('div.dataTables_paginate span.first');
nPrevious = $('div.dataTables_paginate span.previous');
nNext = $('div.dataTables_paginate span.next');
nLast = $('div.dataTables_paginate span.last');
nLast.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries";
}
);
oTest.fnTest(
"Go to two pages previous",
function () {
nPrevious.click();
nPrevious.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 31 to 40 of 57 entries";
}
);
oTest.fnTest(
"Next (second last) page",
function () {
nNext.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 41 to 50 of 57 entries";
}
);
oTest.fnTest(
"Jump to first page",
function () {
nFirst.click();
},
function () {
return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries";
}
);
oTest.fnComplete();
} );

View File

@ -1,440 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "Sanity checks for DataTables with data from JS" );
oTest.fnTest(
"jQuery.dataTable function",
null,
function () { return typeof jQuery().dataTable == "function"; }
);
oTest.fnTest(
"jQuery.dataTableSettings storage array",
null,
function () { return typeof jQuery().dataTableSettings == "object"; }
);
oTest.fnTest(
"jQuery.dataTableExt plugin object",
null,
function () { return typeof jQuery().dataTableExt == "object"; }
);
$(document).ready( function () {
var oInit = {
"aaData": gaaData
};
$('#example').dataTable( oInit );
/* Basic checks */
oTest.fnTest(
"Length changing div exists",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnTest(
"Filtering div exists",
null,
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnTest(
"Information div exists",
null,
function () { return document.getElementById('example_info') != null; }
);
oTest.fnTest(
"Pagination div exists",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnTest(
"Processing div is off by default",
null,
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"10 rows shown on the first page",
null,
function () { return $('#example tbody tr').length == 10; }
);
oTest.fnTest(
"Initial sort occured",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
/* Need to use the WaitTest for sorting due to the setTimeout datatables uses */
oTest.fnTest(
"Sorting (first click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting (second click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Sorting (third click) on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting (first click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnTest(
"Sorting (second click) on numeric column",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnTest(
"Sorting multi-column (first click)",
function () {
$('#example thead th:eq(0)').click();
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () { var b =
$('#example tbody td:eq(0)').html() == "Gecko" &&
$('#example tbody td:eq(1)').html() == "Camino 1.0"; return b; }
);
oTest.fnTest(
"Sorting multi-column - sorting second column only",
function () {
$('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
/* Basic paging */
oTest.fnTest(
"Paging to second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody td:eq(1)').html() == "IE Mobile"; }
);
oTest.fnTest(
"Paging to first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Attempting to page back beyond the first page",
function () { $('#example_previous').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
/* Changing length */
oTest.fnTest(
"Changing table length to 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return $('#example tbody tr').length == 25; }
);
oTest.fnTest(
"Changing table length to 50 records",
function () { $("select[name=example_length]").val('50').change(); },
function () { return $('#example tbody tr').length == 50; }
);
oTest.fnTest(
"Changing table length to 100 records",
function () { $("select[name=example_length]").val('100').change(); },
function () { return $('#example tbody tr').length == 57; }
);
oTest.fnTest(
"Changing table length to 10 records",
function () { $("select[name=example_length]").val('10').change(); },
function () { return $('#example tbody tr').length == 10; }
);
/*
* Information element
*/
oTest.fnTest(
"Information on zero config",
null,
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information on second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 11 to 20 of 57 entries"; }
);
oTest.fnTest(
"Information on third page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 21 to 30 of 57 entries"; }
);
oTest.fnTest(
"Information on last page",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 51 to 57 of 57 entries"; }
);
oTest.fnTest(
"Information back on first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information with 25 records",
function () { $("select[name=example_length]").val('25').change(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 25 of 57 entries"; }
);
oTest.fnTest(
"Information with 25 records - second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML == "Showing 26 to 50 of 57 entries"; }
);
oTest.fnTest(
"Information with 100 records - first page",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('100').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 57 of 57 entries"; }
);
oTest.fnTest(
"Information back to 10 records",
function () {
$('#example_previous').click();
$("select[name=example_length]").val('10').change();
},
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Information with filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page",
function () { $('#example_next').click(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' last page",
function () {
$('#example_next').click();
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 31 to 31 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' back to first page",
function () {
$('#example_previous').click();
$('#example_previous').click();
$('#example_previous').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page - second time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter increased to 'Win 98'",
function () { $('#example_filter input').val("Win 98").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter decreased to 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter 'Win' second page - third time",
function () {
$('#example_next').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 11 to 20 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Information with filter removed",
function () { $('#example_filter input').val("").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/*
* Filtering
*/
oTest.fnTest(
"Filter 'W' - rows",
function () {
/* Reset the table such that the old sorting doesn't mess things up */
oSession.fnRestore();
$('#example').dataTable( oInit );
$('#example_filter input').val("W").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Filter 'W' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 42 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Wi'",
function () { $('#example_filter input').val("Wi").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 32 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win'",
function () { $('#example_filter input').val("Win").keyup(); },
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "AOL browser (AOL desktop)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1 info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 31 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'Win' - sorting column 1 reverse",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Filter 'Win XP' - maintaing reverse sorting col 1",
function () { $('#example_filter input').val("Win XP").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Internet Explorer 7"; }
);
oTest.fnTest(
"Filter 'Win XP' - sorting col 3",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Filter 'Win XP' - sorting col 3 - reversed",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "7"; }
);
oTest.fnTest(
"Filter 'Win' - sorting col 3 - reversed info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 6 of 6 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter 'nothinghere'",
function () { $('#example_filter input').val("nothinghere").keyup(); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() ==
"No matching records found"; }
);
oTest.fnTest(
"Filter 'nothinghere' - info",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Filter back to blank and 1st column sorting",
function () {
$('#example_filter input').val("").keyup();
$('#example thead th:eq(0)').click();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
oTest.fnTest(
"Prefixing a filter entry",
function () {
$('#example_filter input').val("Win").keyup();
$('#example_filter input').val("GeckoWin").keyup();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 0 to 0 of 0 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Prefixing a filter entry with space",
function () {
$('#example_filter input').val("Gecko Win").keyup();
},
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 17 entries (filtered from 57 total entries)"; }
);
oTest.fnComplete();
} );

View File

@ -1,198 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aaSorting" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default sorting is single column",
null,
function () {
return oSettings.aaSorting.length == 1 && typeof oSettings.aaSorting[0] == 'object';
}
);
oTest.fnTest(
"Default sorting is first column asc",
null,
function () {
return oSettings.aaSorting[0].length == 3 && oSettings.aaSorting[0][0] == 0 &&
oSettings.aaSorting[0][1] == 'asc';
}
);
oTest.fnTest(
"Sorting is applied",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Custom sorting on single string column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Custom sorting on single string column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Custom sorting on single int column asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['1','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "-"; }
);
oTest.fnTest(
"Custom sorting on single int column desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','asc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','desc'], ['1','asc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "iPod Touch / iPhone"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / string desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','desc'], ['1','desc']]
} );
},
function () { return $('#example tbody td:eq(1)').html() == "Safari 3.0"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','asc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string asc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','asc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "1.9"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / int asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','desc'], ['3','asc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "125.5"; }
);
oTest.fnTest(
"Multi-column sorting (2 column) - string desc / int desc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','desc'], ['3','desc']]
} );
},
function () { return $('#example tbody td:eq(3)').html() == "522.1"; }
);
oTest.fnTest(
"Multi-column sorting (3 column) - string asc / int asc / string asc",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSorting": [['0','asc'], ['3','asc'], ['1','asc']]
} );
},
function () { return $('#example tbody tr:eq(7) td:eq(1)').html() == "Firefox 1.0"; }
);
oTest.fnComplete();
} );

View File

@ -1,64 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aaSortingFixed" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"No fixed sorting by default",
null,
function () {
return oSettings.aaSortingFixed == null;
}
);
oTest.fnTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSortingFixed": [['0','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Camino 1.0"; }
);
oTest.fnTest(
"Fixed sorting on first column (string/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/asc)",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aaSortingFixed": [['3','asc']]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Fixed sorting on fourth column (int/asc) with user sorting on second column (string/desc)",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody td:eq(1)').html() == "PSP browser"; }
);
oTest.fnComplete();
} );

View File

@ -1,71 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.bSeachable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Columns are searchable by default",
function () { oTable.fnFilter("Camino"); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html().match(/Camino/); }
);
oTest.fnTest(
"Disabling sorting on a column removes it from the global filter",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "bSearchable": false },
null,
null,
null
]
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("Camino");
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnTest(
"Disabled on one column has no effect on other columns",
function () { oTable.fnFilter("Webkit"); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "Webkit"; }
);
oTest.fnTest(
"Disable filtering on multiple columns",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
{ "bSearchable": false },
{ "bSearchable": false },
null,
null,
null
]
} );
oSettings = oTable.fnSettings();
oTable.fnFilter("Webkit");
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnTest(
"Filter on second disabled column",
function () { oTable.fnFilter("Camino"); },
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnComplete();
} );

View File

@ -1,109 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.bSortable" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"All columns are sortable by default",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Can disable sorting from one column",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "bSortable": false },
null,
null,
null
]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
);
oTest.fnTest(
"Disabled column has no sorting class",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") == false; }
);
oTest.fnTest(
"Other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
);
oTest.fnTest(
"Disable sorting on multiple columns - no sorting classes",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "bSortable": false },
null,
{ "bSortable": false },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(1)').hasClass("sorting") ||
$('#example thead th:eq(3)').hasClass("sorting")
return bReturn == false;
}
);
oTest.fnTest(
"Sorting on disabled column 1 has no effect",
function () {
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() != "All others"; }
);
oTest.fnTest(
"Sorting on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
);
oTest.fnTest(
"Second sort on disabled column 2 has no effect",
function () {
$('#example thead th:eq(3)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() != "-"; }
);
oTest.fnTest(
"Even with multiple disabled sorting columns other columns can still sort",
function () {
$('#example thead th:eq(4)').click();
$('#example thead th:eq(4)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == "X"; }
);
oTest.fnComplete();
} );

View File

@ -1,148 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.bUseRendered" );
/* bUseRendered is used to alter sorting data, if false then the original data is used for
* sorting rather than the rendered data
*/
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa";
} else
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default for bUseRendered is true - rendered data is used for sorting",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'aaa'; }
);
oTest.fnTest(
"When bUseRendered is false, original data is used for sorting",
function () {
mTmp = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa";
} else {
return a.aData[a.iDataColumn];
}
}
},
null,
null,
null
]
} );
$('#example thead th:eq(1)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"bUseRendered set to false on one columns and true (default) on two others",
function () {
mTmp = 0;
var mTmp2 = 0;
var mTmp3 = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
{
"fnRender": function (a) {
if ( mTmp == 0 ) {
mTmp++;
return "aaa1";
} else {
return a.aData[a.iDataColumn];
}
}
},
{
"bUseRendered": false,
"fnRender": function (a) {
if ( mTmp2 == 0 ) {
mTmp2++;
return "aaa2";
} else {
return a.aData[a.iDataColumn];
}
}
},
{
"fnRender": function (a) {
if ( mTmp3 == 0 ) {
mTmp3++;
return "zzz3";
} else {
return a.aData[a.iDataColumn];
}
}
},
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'aaa1'; }
);
oTest.fnTest(
"Multi-column rendering - 2nd column sorting",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"Multi-column rendering - 3rd column sorting",
function () {
$('#example thead th:eq(2)').click();
$('#example thead th:eq(2)').click();
},
function () { return $('#example tbody tr:eq(0) td:eq(2)').html() == 'zzz3'; }
);
oTest.fnTest(
"Multi-column rendering - 4th column sorting",
function () { $('#example thead th:eq(3)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == '-'; }
);
oTest.fnTest(
"Multi-column rendering - 5th column sorting",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnComplete();
} );

View File

@ -1,110 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.bVisible" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
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(
"Can hide one column and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "bVisible": false },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 4; }
);
oTest.fnTest(
"Can hide one column and it removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 4; }
);
oTest.fnTest(
"Can hide one column and it removes tfoot th column from DOM",
null,
function () { return $('#example tfoot tr:eq(0) th').length == 4; }
);
oTest.fnTest(
"The correct tbody column has been hidden",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
},
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "Gnome" &&
jqNodes[2].innerHTML == "1.8" &&
jqNodes[3].innerHTML == "A";
return bReturn;
}
);
oTest.fnTest(
"Can hide multiple columns and it removes td column from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "bVisible": false },
{ "bVisible": false },
null,
{ "bVisible": false }
]
} );
},
function () { return $('#example tbody tr:eq(0) td').length == 2; }
);
oTest.fnTest(
"Multiple hide - removes thead th column from DOM",
null,
function () { return $('#example thead tr:eq(0) th').length == 2; }
);
oTest.fnTest(
"Multiple hide - removes tfoot th column from DOM",
null,
function () { return $('#example tfoot tr:eq(0) th').length == 2; }
);
oTest.fnTest(
"Multiple hide - the correct tbody columns have been hidden",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } );
},
function () {
var jqNodes = $('#example tbody tr:eq(0) td');
var bReturn =
jqNodes[0].innerHTML == "Gecko" &&
jqNodes[1].innerHTML == "1"
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,182 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.fnRender" );
$(document).ready( function () {
/* Check the default */
var mTmp = 0;
var oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
mTmp++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Single column - fnRender is called once for each row",
null,
function () { return mTmp == 57; }
);
oTest.fnTest(
"Confirm that fnRender passes one argument (an object) with three parameters",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( arguments.length != 1 || typeof a.iDataRow=='undefined' ||
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender iDataColumn is row number",
function () {
var iCount = 0;
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( iCount != a.iDataRow )
{
mTmp = false;
}
iCount++;
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender iDataColumn is the column",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.iDataColumn != 1 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"fnRender aData is data array of correct size",
function () {
mTmp = true;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
if ( a.aData.length != 5 )
{
mTmp = false;
}
return a.aData[a.iDataColumn];
} },
null,
null,
null
]
} );
},
function () { return mTmp; }
);
oTest.fnTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "fnRender": function (a) {
return 'unittest';
} },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; }
);
oTest.fnTest(
"Passed back data is put into the DOM",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
null,
{ "fnRender": function (a) {
return 'unittest1';
} },
{ "fnRender": function (a) {
return 'unittest2';
} },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' &&
$('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2';
return bReturn; }
);
oTest.fnComplete();
} );

View File

@ -1,90 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.iDataSort" );
$(document).ready( function () {
/* Should know that sorting already works by default from other tests, so we can jump
* right in here
*/
var oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "iDataSort": 4 },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Sorting on first column is uneffected",
null,
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
);
oTest.fnTest(
"Sorting on second column is the order of the fifth",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"Reserve sorting on second column uses fifth column as well",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
);
oTest.fnTest(
"Sorting on 5th column retains it's own sorting",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"Use 2nd col for sorting 5th col and via-versa - no effect on first col sorting",
function () {
mTmp = 0;
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "iDataSort": 4 },
null,
null,
{ "iDataSort": 1 }
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == 'Gecko'; }
);
oTest.fnTest(
"2nd col sorting uses fifth col",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'A'; }
);
oTest.fnTest(
"2nd col sorting uses fifth col - reversed",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(4)').html() == 'X'; }
);
oTest.fnTest(
"5th col sorting uses 2nd col",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'All others'; }
);
oTest.fnTest(
"5th col sorting uses 2nd col - reversed",
function () { $('#example thead th:eq(4)').click(); },
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'Seamonkey 1.1'; }
);
oTest.fnComplete();
} );

View File

@ -1,115 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.sClass" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"By default the test class hasn't been applied to the column (sanity!)",
null,
function () { return $('#example tbody tr:eq(0) td:eq(2)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
null,
{ "sClass": 'unittest' },
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(1) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - third row",
null,
function () { return $('#example tbody tr:eq(3) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - last row",
null,
function () { return $('#example tbody tr:eq(9) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - has not applied to other columns - 1st",
null,
function () { return $('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - has not applied to other columns - 5th",
null,
function () { return $('#example tbody tr:eq(3) td:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - seventh row - second page",
function () { $('#example_next').click(); },
function () { return $('#example tbody tr:eq(6) td:eq(2)').hasClass('unittest'); }
);
oTest.fnTest(
"Add a class to a single column - has not applied to header",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Add a class to a single column - has not applied to footer",
null,
function () { return $('#example thead tr:eq(3) th:eq(4)').hasClass('unittest') == false; }
);
oTest.fnTest(
"Class defined for multiple columns - first row",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
{ "sClass": 'unittest2' },
null,
null,
{ "sClass": 'unittest1' },
null
]
} );
},
function () {
var bReturn =
$('#example tbody tr:eq(3) td:eq(0)').hasClass('unittest2') &&
$('#example tbody tr:eq(8) td:eq(3)').hasClass('unittest1');
return bReturn;
}
);
oTest.fnTest(
"Class defined for multiple columns - has not applied to other columns - 5th 1",
null,
function () { return $('#example tbody tr:eq(0) td:eq(4)').hasClass('unittest1') == false; }
);
oTest.fnTest(
"Class defined for multiple columns - has not applied to other columns - 5th 2",
null,
function () { return $('#example tbody tr:eq(6) td:eq(4)').hasClass('unittest2') == false; }
);
oTest.fnComplete();
} );

View File

@ -1,28 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.sName" );
/* This has no effect at all in DOM methods - so we just check that it has applied the name */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
null,
null,
{ "sName": 'unit test' },
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Names are stored in the columns object",
null,
function () { return oSettings.aoColumns[3].sName =="unit test"; }
);
oTest.fnComplete();
} );

View File

@ -1,82 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.sTitle" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"If not given, then the columns titles are empty",
null,
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "Browser" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnTest(
"Can set a single column title - and others are read from DOM",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "sTitle": 'unit test' },
null,
null,
null
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "CSS grade";
return bReturn;
}
);
oTest.fnTest(
"Can set multiple column titles",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
{ "sTitle": 'unit test 1' },
null,
null,
{ "sTitle": 'unit test 2' }
]
} );
},
function () {
var jqNodes = $('#example thead tr:eq(0) th');
var bReturn =
jqNodes[0].innerHTML == "Rendering engine" &&
jqNodes[1].innerHTML == "unit test 1" &&
jqNodes[2].innerHTML == "Platform(s)" &&
jqNodes[3].innerHTML == "Engine version" &&
jqNodes[4].innerHTML == "unit test 2";
return bReturn;
}
);
oTest.fnComplete();
} );

View File

@ -1,87 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoColumns.sWidth" );
/* NOTE - we need to disable the auto width for the majority of these test in order to preform
* these tests as the auto width will convert the width to a px value. We can do 'non-exact' tests
* with auto width enabled however to ensure it scales columns as required
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData,
"bAutoWidth": false,
"aoColumns": [
null,
{ "sWidth": '40%' },
null,
null,
null
]
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"With auto width disabled the width for one column is appled",
null,
function () { return $('#example thead th:eq(1)')[0].style.width == "40%"; }
);
oTest.fnTest(
"With auto width disabled the width for one column is appled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"bAutoWidth": false,
"aoColumns": [
null,
null,
{ "sWidth": '20%' },
{ "sWidth": '30%' },
null
]
} );
},
function () {
var bReturn =
$('#example thead th:eq(2)')[0].style.width == "20%" &&
$('#example thead th:eq(3)')[0].style.width == "30%";
return bReturn;
}
);
oTest.fnTest(
"With auto width, it will make the smallest column the largest with percentage width given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoColumns": [
null,
null,
null,
{ "sWidth": '40%' },
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;
if ( a3>a0 && a3>a1 && a3>a2 && a3>a4 )
return true;
else
return false;
}
);
oTest.fnComplete();
} );

View File

@ -1,119 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "aoSearchCols" );
/* We could be here forever testing this one, so we test a limited subset on a couple of colums */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Default should be to have a empty colums array",
null,
function () {
var bReturn =
oSettings.aoPreSearchCols[0].sSearch == 0 && !oSettings.aoPreSearchCols[0].bRegex &&
oSettings.aoPreSearchCols[1].sSearch == 0 && !oSettings.aoPreSearchCols[1].bRegex &&
oSettings.aoPreSearchCols[2].sSearch == 0 && !oSettings.aoPreSearchCols[2].bRegex &&
oSettings.aoPreSearchCols[3].sSearch == 0 && !oSettings.aoPreSearchCols[3].bRegex &&
oSettings.aoPreSearchCols[4].sSearch == 0 && !oSettings.aoPreSearchCols[4].bRegex;
return bReturn;
}
);
oTest.fnTest(
"Search on a single column - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1" },
null
]
} );
},
function () { return $('#example_info').html() == "Showing 1 to 9 of 9 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Search on two columns - no regex statement given",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoSearchCols": [
null,
{ "sSearch": "Mozilla" },
null,
{ "sSearch": "1.5" },
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(3)').html() == "1.5"; }
);
oTest.fnTest(
"Search on single column - escape regex false",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
null,
null,
null,
null
]
} );
},
function () { return $('#example_info').html() == "Showing 1 to 3 of 3 entries (filtered from 57 total entries)"; }
);
oTest.fnTest(
"Search on two columns - escape regex false on first, true on second",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
{ "sSearch": "3.3", "bEscapeRegex": true },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == "Konqureror 3.3"; }
);
oTest.fnTest(
"Search on two columns (no records) - escape regex false on first, true on second",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"aoSearchCols": [
{ "sSearch": ".*ML", "bEscapeRegex": false },
{ "sSearch": "Allan", "bEscapeRegex": true },
null,
null,
null
]
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').html() == "No matching records found"; }
);
oTest.fnComplete();
} );

View File

@ -1,100 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "asStripClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Default row striping is applied",
null,
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
oTest.fnTest(
"Row striping on the second page",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('odd') &&
$('#example tbody tr:eq(1)').hasClass('even') &&
$('#example tbody tr:eq(2)').hasClass('odd') &&
$('#example tbody tr:eq(3)').hasClass('even');
}
);
/* No striping */
oTest.fnTest(
"No row striping",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"asStripClasses": []
} );
},
function () {
return $('#example tbody tr:eq(0)')[0].className == "" &&
$('#example tbody tr:eq(1)')[0].className == "" &&
$('#example tbody tr:eq(2)')[0].className == "" &&
$('#example tbody tr:eq(3)')[0].className == "";
}
);
/* Custom striping */
oTest.fnTest(
"Custom striping [2]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"asStripClasses": [ 'test1', 'test2' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test1') &&
$('#example tbody tr:eq(3)').hasClass('test2');
}
);
/* long array of striping */
oTest.fnTest(
"Custom striping [4]",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"asStripClasses": [ 'test1', 'test2', 'test3', 'test4' ]
} );
},
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnTest(
"Custom striping is restarted on second page [2]",
function () { $('#example_next').click(); },
function () {
return $('#example tbody tr:eq(0)').hasClass('test1') &&
$('#example tbody tr:eq(1)').hasClass('test2') &&
$('#example tbody tr:eq(2)').hasClass('test3') &&
$('#example tbody tr:eq(3)').hasClass('test4');
}
);
oTest.fnComplete();
} );

View File

@ -1,142 +0,0 @@
// DATA_TEMPLATE: js_data
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( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Auto width is enabled by default",
null,
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnTest(
"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.fnTest(
"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.fnTest(
"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.fnTest(
"Auto width can be disabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"bAutoWidth": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth == false; }
);
oTest.fnTest(
"First column does not have a width assigned to it",
null,
function () { return $('#example thead th:eq(0)').attr('style') == null; }
);
/*
oTest.fnTest(
"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.fnTest(
"Auto width enabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"bAutoWidth": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bAutoWidth; }
);
oTest.fnComplete();
} );

View File

@ -1,44 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bFilter" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Filtering div exists by default",
null,
function () { return document.getElementById('example_filter') != null; }
);
/* Check can disable */
oTest.fnTest(
"Fltering can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bFilter": false
} );
},
function () { return document.getElementById('example_filter') == null; }
);
/* Enable makes no difference */
oTest.fnTest(
"Filtering enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bFilter": true
} );
},
function () { return document.getElementById('example_filter') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,44 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bInfo" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Info div exists by default",
null,
function () { return document.getElementById('example_info') != null; }
);
/* Check can disable */
oTest.fnTest(
"Info can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bInfo": false
} );
},
function () { return document.getElementById('example_info') == null; }
);
/* Enable makes no difference */
oTest.fnTest(
"Info enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bInfo": true
} );
},
function () { return document.getElementById('example_info') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,75 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bLengthChange" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Length div exists by default",
null,
function () { return document.getElementById('example_length') != null; }
);
oTest.fnTest(
"Four default options",
null,
function () { return $("select[name=example_length] option").length == 4; }
);
oTest.fnTest(
"Default options",
null,
function () {
var opts = $("select[name='example_length'] option");
return opts[0].getAttribute('value') == 10 && opts[1].getAttribute('value') == 25 &&
opts[2].getAttribute('value') == 50 && opts[3].getAttribute('value') == 100;
}
);
oTest.fnTest(
"Info takes length into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnTest(
"Change length can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bLengthChange": false
} );
},
function () { return document.getElementById('example_length') == null; }
);
oTest.fnTest(
"Information takes length disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Length change enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bLengthChange": true
} );
},
function () { return document.getElementById('example_length') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,59 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bPaginate" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Pagiantion div exists by default",
null,
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnTest(
"Information div takes paging into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 10 of 57 entries"; }
);
/* Check can disable */
oTest.fnTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bPaginate": false
} );
},
function () { return document.getElementById('example_paginate') == null; }
);
oTest.fnTest(
"Information div takes paging disabled into account",
null,
function () { return document.getElementById('example_info').innerHTML ==
"Showing 1 to 57 of 57 entries"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Pagiantion enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bPaginate": true
} );
},
function () { return document.getElementById('example_paginate') != null; }
);
oTest.fnComplete();
} );

View File

@ -1,103 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bProcessing" );
/* It's actually a bit hard to set this one due to the fact that it will only be shown
* when DataTables is doing some kind of processing. The server-side processing is a bit
* better to test this than here - so we just the interal functions to enable it and check
* that it is available
*/
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Processing is off by default",
null,
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"Processing div cannot be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnTest(
"Processing div cannot be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing') == null; }
);
/* Check can disable */
oTest.fnTest(
"Processing can be enabled",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"bProcessing": true
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == true; }
);
oTest.fnTest(
"Processing div is in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing'); }
);
oTest.fnTest(
"Processing div is hidden by default",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
oTest.fnTest(
"Processing div can be shown",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing').style.visibility = "visible"; }
);
oTest.fnTest(
"Processing div can be hidden",
function () { oTable.oApi._fnProcessingDisplay( oSettings, false ); },
function () { return document.getElementById('example_processing').style.visibility = "hidden"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Processing disabled override",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"bProcessing": false
} );
oSettings = oTable.fnSettings();
},
function () { return oSettings.oFeatures.bProcessing == false; }
);
oTest.fnTest(
"Processing div is not in the DOM",
function () { oTable.oApi._fnProcessingDisplay( oSettings, true ); },
function () { return document.getElementById('example_processing') == null; }
);
oTest.fnComplete();
} );

View File

@ -1,20 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bServerSide" );
/* Not interested in server-side processing here other than to check that it is off */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
oTest.fnTest(
"Server side is off by default",
null,
function () { return oSettings.oFeatures.bServerSide == false; }
);
oTest.fnComplete();
} );

View File

@ -1,99 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bSort" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Sorting is on by default",
null,
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnTest(
"Sorting Asc by default class applied",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc"); }
);
oTest.fnTest(
"Click on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
);
oTest.fnTest(
"Sorting class removed from first column",
null,
function () { return $('#example thead th:eq(0)').hasClass("sorting_asc") != true; }
);
oTest.fnTest(
"Sorting asc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc"); }
);
oTest.fnTest(
"Reverse on second column",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
);
oTest.fnTest(
"Sorting acs class removed from second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_asc") != true; }
);
oTest.fnTest(
"Sorting desc class applied to second column",
null,
function () { return $('#example thead th:eq(1)').hasClass("sorting_desc"); }
);
/* Check can disable */
oTest.fnTest(
"Pagiantion can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bSort": false
} );
},
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Click on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
oTest.fnTest(
"Reverse on second column has no effect",
function () { $('#example thead th:eq(1)').click(); },
function () { return $('#example tbody td:eq(3)').html() == "4"; }
);
/* Enable makes no difference */
oTest.fnTest(
"Sorting enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bSort": true
} );
},
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
);
oTest.fnComplete();
} );

View File

@ -1,132 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "bSortClasses" );
$(document).ready( function () {
/* Check the default */
$('#example').dataTable( {
"aaData": gaaData
} );
oTest.fnTest(
"Sorting classes are applied by default",
null,
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnTest(
"Sorting classes are applied to all required cells",
null,
function () { return $('#example tbody tr:eq(7) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnTest(
"Sorting classes are not applied to non-sorting columns",
null,
function () { return $('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_1') == false; }
);
oTest.fnTest(
"Sorting multi-column - add column 1",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2');
}
);
oTest.fnTest(
"Sorting multi-column - add column 2",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3');
}
);
oTest.fnTest(
"Sorting multi-column - add column 3",
function () {
oDispacher.click( $('#example thead th:eq(3)')[0], { 'shift': true } );
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3');
}
);
oTest.fnTest(
"Remove sorting classes on single column sort",
function () {
$('#example thead th:eq(4)').click();
},
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false &&
$('#example tbody tr:eq(0) td:eq(3)').hasClass('sorting_3') == false;
}
);
oTest.fnTest(
"Sorting class 1 was added",
null,
function () { return $('#example tbody tr:eq(1) td:eq(4)').hasClass('sorting_1'); }
);
/* Check can disable */
oTest.fnTest(
"Sorting classes can be disabled",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bSortClasses": false
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false; }
);
oTest.fnTest(
"Sorting classes disabled - add column 1 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(1)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false;
}
);
oTest.fnTest(
"Sorting classes disabled - add column 2 - no effect",
function () {
oDispacher.click( $('#example thead th:eq(2)')[0], { 'shift': true } ); },
function () {
return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1') == false &&
$('#example tbody tr:eq(0) td:eq(1)').hasClass('sorting_2') == false &&
$('#example tbody tr:eq(0) td:eq(2)').hasClass('sorting_3') == false;
}
);
/* Enable makes no difference */
oTest.fnTest(
"Sorting classes enabled override",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"bSortClasses": true
} );
},
function () { return $('#example tbody tr:eq(0) td:eq(0)').hasClass('sorting_1'); }
);
oTest.fnComplete();
} );

View File

@ -1,85 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "fnDrawCallback" );
/* Fairly boring function compared to the others! */
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnDrawCallback == null; }
);
oTest.fnTest(
"One argument passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"aaData": gaaData,
"fnDrawCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"That one argument is the settings object",
function () {
oSession.fnRestore();
oTable = $('#example').dataTable( {
"aaData": gaaData,
"fnDrawCallback": function ( oSettings ) {
mPass = oSettings;
}
} );
},
function () { return oTable.fnSettings() == mPass; }
);
oTest.fnTest(
"fnRowCallback called once on first draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"aaData": gaaData,
"fnDrawCallback": function ( ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnRowCallback called once on each draw there after as well",
function () {
$('#example_next').click();
$('#example_next').click();
$('#example_next').click();
},
function () { return mPass == 4; }
);
oTest.fnComplete();
} );

View File

@ -1,240 +0,0 @@
// DATA_TEMPLATE: js_data
oTest.fnStart( "fnFooterCallback" );
$(document).ready( function () {
/* Check the default */
var oTable = $('#example').dataTable( {
"aaData": gaaData
} );
var oSettings = oTable.fnSettings();
var mPass;
oTest.fnTest(
"Default should be null",
null,
function () { return oSettings.fnFooterCallback == null; }
);
oTest.fnTest(
"Five arguments passed",
function () {
oSession.fnRestore();
mPass = -1;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( ) {
mPass = arguments.length;
}
} );
},
function () { return mPass == 5; }
);
oTest.fnTest(
"fnRowCallback called once per draw",
function () {
oSession.fnRestore();
mPass = 0;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
mPass++;
}
} );
},
function () { return mPass == 1; }
);
oTest.fnTest(
"fnRowCallback called on paging (i.e. another draw)",
function () { $('#example_next').click(); },
function () { return mPass == 2; }
);
oTest.fnTest(
"fnRowCallback allows us to alter row information",
function () {
oSession.fnRestore();
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
nFoot.getElementsByTagName('th')[0].innerHTML = "Displaying "+(iEnd-iStart)+" records";
}
} );
},
function () { return $('#example tfoot th:eq(0)').html() == "Displaying 10 records"; }
);
oTest.fnTest(
"Data array has length matching original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aasData.length != 57 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"Data array's column lengths match original data",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
for ( var i=0, iLen=aasData.length ; i<iLen ; i++ )
{
if ( aasData[i].length != 5 )
{
mPass = false;
}
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart != 0 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iStart correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iStart == 10 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on first page",
function () {
oSession.fnRestore();
mPass = true;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd != 10 )
{
mPass = false;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"iEnd correct on second page",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( iEnd == 20 )
{
mPass = true;
}
}
} );
$('#example_next').click();
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is full data when not filtered",
function () {
oSession.fnRestore();
mPass = false;
$('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 57 )
{
mPass = true;
}
}
} );
},
function () { return mPass; }
);
oTest.fnTest(
"aiDisplay length is 9 when filtering on 'Mozilla'",
function () {
oSession.fnRestore();
mPass = false;
oTable = $('#example').dataTable( {
"aaData": gaaData,
"fnFooterCallback": function ( nFoot, aasData, iStart, iEnd, aiDisplay ) {
if ( aiDisplay.length == 9 )
{
mPass = true;
}
}
} );
oTable.fnFilter( "Mozilla" );
},
function () { return mPass; }
);
oTest.fnComplete();
} );

Some files were not shown because too many files have changed in this diff Show More