164 lines
4.4 KiB
PHP
164 lines
4.4 KiB
PHP
<?php
|
|
|
|
use Chumper\Datatable\Table;
|
|
use Illuminate\Support\Facades\Request;
|
|
|
|
class TableTest extends PHPUnit_Framework_TestCase {
|
|
|
|
/**
|
|
* @var Table
|
|
*/
|
|
private $table;
|
|
|
|
protected function setUp()
|
|
{
|
|
parent::setUp();
|
|
|
|
Config::shouldReceive('get')->zeroOrMoreTimes()->with("datatable::table")->andReturn(
|
|
array(
|
|
'class' => 'table table-bordered',
|
|
'id' => '',
|
|
'options' => array(
|
|
"sPaginationType" => "full_numbers",
|
|
"bProcessing" => false
|
|
),
|
|
'callbacks' => array(),
|
|
'noScript' => false,
|
|
'table_view' => 'datatable::template',
|
|
'script_view' => 'datatable::javascript',
|
|
)
|
|
);
|
|
|
|
$this->table = new Table();
|
|
}
|
|
|
|
/**
|
|
* @expectedException Exception
|
|
*/
|
|
public function testSetOptions()
|
|
{
|
|
$this->table->setOptions('foo','bar');
|
|
|
|
$this->table->setOptions(array(
|
|
'foo2' => 'bar2',
|
|
'foo3' => 'bar3'
|
|
));
|
|
|
|
$this->table->setOptions('foo', 'bar', 'baz');
|
|
}
|
|
|
|
/**
|
|
* @expectedException Exception
|
|
*/
|
|
public function testSetCallbacks()
|
|
{
|
|
$this->table->setCallbacks('foo', 'bar');
|
|
$this->assertArrayHasKey('foo', $this->table->getCallbacks());
|
|
|
|
$this->table->setCallbacks(array(
|
|
'foo2' => 'bar2',
|
|
'foo3' => 'bar3'
|
|
));
|
|
$this->assertArrayHasKey('foo2', $this->table->getCallbacks());
|
|
$this->assertArrayHasKey('foo3', $this->table->getCallbacks());
|
|
|
|
$this->table->setCallbacks('foo', 'bar', 'baz');
|
|
$this->assertTrue(False); // should throw exception before here
|
|
}
|
|
|
|
/**
|
|
* @expectedException Exception
|
|
*/
|
|
public function testSetCustomValues()
|
|
{
|
|
$this->table->setCustomValues('foo', 'bar');
|
|
$this->assertArrayHasKey('foo', $this->table->getCustomValues());
|
|
|
|
$this->table->setCustomValues(array(
|
|
'foo2' => 'bar2',
|
|
'foo3' => 'bar3'
|
|
));
|
|
$this->assertArrayHasKey('foo2', $this->table->getCustomValues());
|
|
$this->assertArrayHasKey('foo3', $this->table->getCustomValues());
|
|
|
|
$this->table->setCustomValues('foo', 'bar', 'baz');
|
|
$this->assertTrue(False); // should throw exception before here
|
|
}
|
|
|
|
public function testAddColumn()
|
|
{
|
|
$this->table->addColumn('foo');
|
|
|
|
$this->assertEquals(1, $this->table->countColumns());
|
|
|
|
$this->table->addColumn('foo1','foo2');
|
|
|
|
$this->assertEquals(3, $this->table->countColumns());
|
|
|
|
$this->table->addColumn(array('foo3','foo4'));
|
|
|
|
$this->assertEquals(5, $this->table->countColumns());
|
|
}
|
|
|
|
public function testRender()
|
|
{
|
|
Request::shouldReceive('url')->once()->andReturn('fooBar');
|
|
|
|
View::shouldReceive('make')->once()
|
|
->with('datatable::template', array(
|
|
'options' => array(
|
|
'sAjaxSource' => 'fooBar',
|
|
'bServerSide' => true,
|
|
'sPaginationType'=>'full_numbers',
|
|
'bProcessing'=>false
|
|
),
|
|
'callbacks' => array(),
|
|
'values' => array(),
|
|
'data' => array(),
|
|
'columns' => array(1=>'foo'),
|
|
'noScript' => false,
|
|
'class' => $this->table->getClass(),
|
|
'id' => $this->table->getId(),
|
|
|
|
))->andReturn(true);
|
|
|
|
$table1 = $this->table->addColumn('foo')->render();
|
|
|
|
$this->assertTrue($table1);
|
|
}
|
|
|
|
public function testSetData()
|
|
{
|
|
$data = array(
|
|
array(
|
|
'foo',
|
|
'bar'
|
|
),
|
|
array(
|
|
'foo2',
|
|
'bar2'
|
|
),
|
|
);
|
|
|
|
$this->table->setData($data);
|
|
$this->assertEquals($data,$this->table->getData());
|
|
|
|
}
|
|
|
|
public function testSetUrl()
|
|
{
|
|
$this->table->setUrl('foo/url');
|
|
|
|
$this->assertArrayHasKey('bServerSide',$this->table->getOptions());
|
|
$this->assertArrayHasKey('sAjaxSource',$this->table->getOptions());
|
|
|
|
$return = $this->table->getOptions();
|
|
|
|
$this->assertEquals('foo/url',$return['sAjaxSource']);
|
|
}
|
|
|
|
protected function tearDown()
|
|
{
|
|
Mockery::close();
|
|
}
|
|
} |