Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
ff428d2c4f
|
@ -1,15 +1,15 @@
|
||||||
<?php
|
<?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";
|
require_once __DIR__."/logging/Logging.php";
|
||||||
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
Logging::setLogPath('/var/log/airtime/zendphp.log');
|
||||||
|
|
||||||
require_once __DIR__."/configs/constants.php";
|
|
||||||
require_once __DIR__."/configs/conf.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 'DB.php';
|
||||||
|
|
||||||
require_once 'Preference.php';
|
require_once 'Preference.php';
|
||||||
|
|
|
@ -9,15 +9,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
$configFile = isset($_SERVER['AIRTIME_CONF']) ? $_SERVER['AIRTIME_CONF'] : "/etc/airtime/airtime.conf";
|
global $CC_CONFIG;
|
||||||
$ini = parse_ini_file($configFile, true);
|
|
||||||
|
|
||||||
$dbhost = $ini['database']['host'];
|
|
||||||
$dbname = $ini['database']['dbname'];
|
|
||||||
$dbuser = $ini['database']['dbuser'];
|
|
||||||
$dbpass = $ini['database']['dbpass'];
|
|
||||||
|
|
||||||
|
|
||||||
|
$dbhost = $CC_CONFIG['dsn']['hostspec'];
|
||||||
|
$dbname = $CC_CONFIG['dsn']['database'];
|
||||||
|
$dbuser = $CC_CONFIG['dsn']['username'];
|
||||||
|
$dbpass = $CC_CONFIG['dsn']['password'];
|
||||||
|
|
||||||
$conf = array (
|
$conf = array (
|
||||||
'datasources' =>
|
'datasources' =>
|
||||||
|
|
|
@ -19,8 +19,7 @@ $CC_CONFIG = array(
|
||||||
|
|
||||||
"rootDir" => __DIR__."/../..",
|
"rootDir" => __DIR__."/../..",
|
||||||
'pearPath' => dirname(__FILE__).'/../../library/pear',
|
'pearPath' => dirname(__FILE__).'/../../library/pear',
|
||||||
'zendPath' => dirname(__FILE__).'/../../library/Zend',
|
'zendPath' => dirname(__FILE__).'/../../library/Zend'
|
||||||
'phingPath' => dirname(__FILE__).'/../../library/phing'
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -379,6 +379,7 @@ class ApiController extends Zend_Controller_Action
|
||||||
|
|
||||||
|
|
||||||
$this->view->is_recording = false;
|
$this->view->is_recording = false;
|
||||||
|
$this->view->server_timezone = Application_Model_Preference::GetTimezone();
|
||||||
|
|
||||||
$rows = Application_Model_Show::GetCurrentShow($today_timestamp);
|
$rows = Application_Model_Show::GetCurrentShow($today_timestamp);
|
||||||
Application_Model_Show::ConvertToLocalTimeZone($rows, array("starts", "ends", "start_timestamp", "end_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();
|
$request = $this->getRequest();
|
||||||
$api_key = $request->getParam('api_key');
|
$api_key = $request->getParam('api_key');
|
||||||
|
$getDiskInfo = $request->getParam('diskinfo') == "true";
|
||||||
/*
|
/*
|
||||||
if (!in_array($api_key, $CC_CONFIG["apiKey"]))
|
if (!in_array($api_key, $CC_CONFIG["apiKey"]))
|
||||||
{
|
{
|
||||||
|
@ -771,10 +773,13 @@ class ApiController extends Zend_Controller_Action
|
||||||
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
|
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
|
||||||
"show_recorder"=>Application_Model_Systemstatus::GetShowRecorderStatus(),
|
"show_recorder"=>Application_Model_Systemstatus::GetShowRecorderStatus(),
|
||||||
"media_monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus()
|
"media_monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus()
|
||||||
),
|
)
|
||||||
"partitions"=>Application_Model_Systemstatus::GetDiskInfo()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($getDiskInfo){
|
||||||
|
$status["partitions"] = Application_Model_Systemstatus::GetDiskInfo();
|
||||||
|
}
|
||||||
|
|
||||||
$this->view->status = $status;
|
$this->view->status = $status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,13 @@ class SystemstatusController extends Zend_Controller_Action
|
||||||
$services = array(
|
$services = array(
|
||||||
"pypo"=>Application_Model_Systemstatus::GetPypoStatus(),
|
"pypo"=>Application_Model_Systemstatus::GetPypoStatus(),
|
||||||
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
|
"liquidsoap"=>Application_Model_Systemstatus::GetLiquidsoapStatus(),
|
||||||
"show-recorder"=>Application_Model_Systemstatus::GetShowRecorderStatus(),
|
|
||||||
"media-monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus(),
|
"media-monitor"=>Application_Model_Systemstatus::GetMediaMonitorStatus(),
|
||||||
"rabbitmq-server"=>Application_Model_Systemstatus::GetRabbitMqStatus()
|
"rabbitmq-server"=>Application_Model_Systemstatus::GetRabbitMqStatus()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!isset($_SERVER["AIRTIME_SRV"])){
|
||||||
|
$services["show-recorder"]=Application_Model_Systemstatus::GetShowRecorderStatus();
|
||||||
|
}
|
||||||
|
|
||||||
$partitions = Application_Model_Systemstatus::GetDiskInfo();
|
$partitions = Application_Model_Systemstatus::GetDiskInfo();
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,9 @@ class Application_Model_Nowplaying
|
||||||
$status = ($showEnds < $itemEnds) ? "x" : "";
|
$status = ($showEnds < $itemEnds) ? "x" : "";
|
||||||
|
|
||||||
$type = "a";
|
$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
|
// remove millisecond from the time format
|
||||||
$itemStart = explode('.', $dbRow['item_starts']);
|
$itemStart = explode('.', $dbRow['item_starts']);
|
||||||
|
|
|
@ -680,6 +680,18 @@ class Application_Model_Preference
|
||||||
return $val;
|
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 */
|
/* User specific preferences end */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -176,32 +176,51 @@ class Application_Model_Systemstatus
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetRabbitMqStatus(){
|
public static function GetRabbitMqStatus(){
|
||||||
$docRoot = self::GetMonitStatus("localhost");
|
|
||||||
|
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");
|
$data = self::ExtractServiceInformation($docRoot, "rabbitmq-server");
|
||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function GetDiskInfo(){
|
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();
|
$partions = array();
|
||||||
|
|
||||||
foreach($musicDirs as $md){
|
if (isset($_SERVER['AIRTIME_SRV'])){
|
||||||
$totalSpace = disk_total_space($md->getDirectory());
|
//connect to DB and find how much total space user has allocated.
|
||||||
|
$totalSpace = Application_Model_Preference::GetDiskQuota();
|
||||||
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();
|
$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);
|
return array_values($partitions);
|
||||||
|
|
|
@ -5,6 +5,9 @@ class Airtime_View_Helper_TrialRemaining extends Zend_View_Helper_Abstract
|
||||||
public function trialRemaining()
|
public function trialRemaining()
|
||||||
{
|
{
|
||||||
$ending_date = Application_Model_Preference::GetTrialEndingDate();
|
$ending_date = Application_Model_Preference::GetTrialEndingDate();
|
||||||
|
if ($ending_date == '') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
$datetime1 = new DateTime();
|
$datetime1 = new DateTime();
|
||||||
$datetime2 = new DateTime($ending_date);
|
$datetime2 = new DateTime($ending_date);
|
||||||
$interval = $datetime1->diff($datetime2);
|
$interval = $datetime1->diff($datetime2);
|
||||||
|
|
|
@ -60,7 +60,7 @@ $(document).ready(function(){
|
||||||
if ($type == "ogg")
|
if ($type == "ogg")
|
||||||
$type = "oga";
|
$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);
|
echo sprintf("<option class='stream' value='%s' data-url='%s' data-type='%s' server-type='%s'>%s</option>", $id, $url, $type, $serverType, $label);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -36,15 +36,15 @@
|
||||||
<li><span class="name"><?php echo $this->user ?></span> | <a href="/Login/logout">Logout</a></li>
|
<li><span class="name"><?php echo $this->user ?></span> | <a href="/Login/logout">Logout</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<?php if($this->is_trial){?>
|
<?php if($this->trial_remain != '' && $this->trial_remain != "Trial expired."){?>
|
||||||
<div class="trial-box">
|
<div class="trial-box">
|
||||||
<p>Your Trial expires in</p>
|
<p>Your trial expires in</p>
|
||||||
<div class="trial-box-calendar">
|
<div class="trial-box-calendar">
|
||||||
<span class="trial-box-calendar-white"><?php echo $this->trial_remain?></span>
|
<span class="trial-box-calendar-white"><?php echo $this->trial_remain?></span>
|
||||||
<div class="trial-box-calendar-gray">days</div>
|
<div class="trial-box-calendar-gray">days</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="trial-box-button">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<?php }?>
|
<?php }?>
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 347 B After Width: | Height: | Size: 405 B |
|
@ -23,8 +23,8 @@ function generatePartitions(partitions){
|
||||||
var totalSpace = partitions[i].totalSpace;
|
var totalSpace = partitions[i].totalSpace;
|
||||||
var percUsed = sprintf("%01.1f", spaceUsed/totalSpace*100);
|
var percUsed = sprintf("%01.1f", spaceUsed/totalSpace*100);
|
||||||
|
|
||||||
var spaceUsedGb = sprintf("%01.1f", spaceUsed/Math.pow(10, 9));
|
var spaceUsedGb = sprintf("%01.1f", spaceUsed/Math.pow(2, 30));
|
||||||
var totalSpaceGb = sprintf("%01.1f", totalSpace/Math.pow(10, 9));
|
var totalSpaceGb = sprintf("%01.1f", totalSpace/Math.pow(2, 30));
|
||||||
|
|
||||||
var row = sprintf(rowTemplate, i+1, i, spaceUsedGb, totalSpaceGb, percUsed, percUsed);
|
var row = sprintf(rowTemplate, i+1, i, spaceUsedGb, totalSpaceGb, percUsed, percUsed);
|
||||||
var tr = $(row);
|
var tr = $(row);
|
||||||
|
@ -51,16 +51,17 @@ function success(data, textStatus, jqXHR){
|
||||||
$(children[3]).text(s.cpu_perc);
|
$(children[3]).text(s.cpu_perc);
|
||||||
$(children[4]).text(sprintf('%01.1fMB (%s)', parseInt(s.memory_kb)/1000, s.memory_perc));
|
$(children[4]).text(sprintf('%01.1fMB (%s)', parseInt(s.memory_kb)/1000, s.memory_perc));
|
||||||
}
|
}
|
||||||
|
if (data.status.partitions){
|
||||||
generatePartitions(data.status.partitions);
|
generatePartitions(data.status.partitions);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateStatus(){
|
function updateStatus(getDiskInfo){
|
||||||
$.getJSON( "api/status/format/json", null, success);
|
$.getJSON( "api/status/format/json/diskinfo/"+getDiskInfo, null, success);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
updateStatus();
|
updateStatus(true);
|
||||||
setInterval(updateStatus, 5000);
|
setInterval(function(){updateStatus(false);}, 5000);
|
||||||
});
|
});
|
||||||
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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();
|
|
||||||
} );
|
|
|
@ -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
Loading…
Reference in New Issue