Skip to content

Commit c938958

Browse files
committed
Tests for datagrid v4
1 parent edc821a commit c938958

File tree

4 files changed

+103
-6
lines changed

4 files changed

+103
-6
lines changed

tests/Cases/NetteDatabaseDataSourceTest.phpt

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ use Ublaboo\DataGrid\Filter\FilterText;
1616
use Ublaboo\DataGrid\Filter\FilterDate;
1717
use Ublaboo\DataGrid\Filter\FilterDateRange;
1818
use Ublaboo\DataGrid\Filter\FilterRange;
19+
use Ublaboo;
1920

2021
require __DIR__ . '/../bootstrap.php';
22+
require __DIR__ . '/../Files/XTestingDataGridFactory.php';
23+
require __DIR__ . '/../Files/XTestingPresenter.php';
2124

2225
final class NetteDatabaseDataSourceTest extends TestCase
2326
{
@@ -27,13 +30,21 @@ final class NetteDatabaseDataSourceTest extends TestCase
2730
*/
2831
private $db;
2932

33+
/**
34+
* @var Ublaboo\DataGrid\DataGrid
35+
*/
36+
private $grid;
37+
3038

3139
public function setUp()
3240
{
3341
$connection = new Connection('.', NULL, NULL, ['lazy' => TRUE]);
3442

3543
$structure = new Structure($connection, new DevNullStorage);
3644
$this->db = new Context($connection, $structure);
45+
46+
$factory = new Ublaboo\DataGrid\Tests\Files\XTestingDataGridFactory;
47+
$this->grid = $factory->createXTestingDataGrid();
3748
}
3849

3950

@@ -64,7 +75,7 @@ final class NetteDatabaseDataSourceTest extends TestCase
6475
public function testApplyFilterSelect()
6576
{
6677
$s = new NetteDatabaseDataSource($this->db, 'SELECT * FROM user');
67-
$filter = new FilterSelect('status', 'Status', [1 => 'Online', 0 => 'Offline'], 'user.status');
78+
$filter = new FilterSelect($this->grid, 'status', 'Status', [1 => 'Online', 0 => 'Offline'], 'user.status');
6879
$filter->setValue(1);
6980

7081
$s->applyFilterSelect($filter);
@@ -90,19 +101,19 @@ final class NetteDatabaseDataSourceTest extends TestCase
90101

91102
$s = new NetteDatabaseDataSource($this->db, $q, [3, 4]);
92103

93-
$filter1 = new FilterSelect('status', 'Status', [1 => 'Online', 0 => 'Offline'], 'user.status');
104+
$filter1 = new FilterSelect($this->grid, 'status', 'Status', [1 => 'Online', 0 => 'Offline'], 'user.status');
94105
$filter1->setValue(1);
95106

96-
$filter2 = new FilterText('name', 'Name or id', ['name', 'id']);
107+
$filter2 = new FilterText($this->grid, 'name', 'Name or id', ['name', 'id']);
97108
$filter2->setValue('text');
98109

99-
$filter3 = new FilterRange('range', 'Range', 'id', 'To');
110+
$filter3 = new FilterRange($this->grid, 'range', 'Range', 'id', 'To');
100111
$filter3->setValue(['from' => 2, 'to' => NULL]);
101112

102-
$filter4 = new FilterDateRange('date range', 'Date Range', 'created', '-');
113+
$filter4 = new FilterDateRange($this->grid, 'date range', 'Date Range', 'created', '-');
103114
$filter4->setValue(['from' => '1. 2. 2003', 'to' => '3. 12. 2149']);
104115

105-
$filter5 = new FilterDate('date', 'Date', 'date');
116+
$filter5 = new FilterDate($this->grid, 'date', 'Date', 'date');
106117
$filter5->setValue('12. 12. 2012');
107118

108119
$s->applyFilterSelect($filter1);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Ublaboo\DataGrid\Tests\Files;
4+
5+
use Nette;
6+
use Ublaboo\DataGrid\DataGrid;
7+
8+
final class ExportTestingPresenter extends Nette\Application\UI\Presenter
9+
{
10+
11+
protected function createComponentGrid($name)
12+
{
13+
$grid = new DataGrid(NULL, $name);
14+
$grid->addExportCsv('export', 'export.csv');
15+
16+
return $grid;
17+
}
18+
19+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Ublaboo\DataGrid\Tests\Files;
4+
5+
use Nette\Http,
6+
Nette;
7+
8+
class XTestingDataGridFactory
9+
{
10+
11+
public function createXTestingDataGrid($presenterName = 'XTesting')
12+
{
13+
$presenterFactory = new Nette\Application\PresenterFactory;
14+
$presenterFactory->setMapping(['*' => 'Ublaboo\DataGrid\Tests\Files\*Presenter']);
15+
16+
$presenter = $presenterFactory->createPresenter($presenterName);
17+
18+
$url = new Http\UrlScript('localhost');
19+
$request = new Http\Request($url);
20+
$response = new Http\Response;
21+
$session = new Http\Session($request, $response);
22+
23+
$presenter->injectPrimary(NULL, NULL, NULL, $request, $response, $session);
24+
25+
return $presenter->getComponent('grid');
26+
}
27+
28+
}

tests/Files/XTestingPresenter.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
namespace Ublaboo\DataGrid\Tests\Files;
4+
5+
use Nette;
6+
use Ublaboo\DataGrid\DataGrid;
7+
8+
final class XTestingPresenter extends Nette\Application\UI\Presenter
9+
{
10+
11+
/**
12+
* @var bool
13+
*/
14+
public $action_handeled = FALSE;
15+
16+
17+
public function handleDoStuff($id)
18+
{
19+
$this->action_handeled = TRUE;
20+
}
21+
22+
23+
public function link($destination, $args = array())
24+
{
25+
return $destination . '?' . http_build_query($args);
26+
}
27+
28+
29+
protected function createRequest($component, $destination, array $args, $mode)
30+
{
31+
return ucFirst($component->getName()) . $this->link($destination, $args);
32+
}
33+
34+
protected function createComponentGrid($name)
35+
{
36+
return new DataGrid($this, $name);
37+
}
38+
39+
}

0 commit comments

Comments
 (0)