forked from sonata-project/SonataAdminBundle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCoreControllerTest.php
85 lines (64 loc) · 2.68 KB
/
CoreControllerTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/*
* This file is part of the Sonata package.
*
* (c) Thomas Rabaix <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Sonata\AdminBundle\Tests\Controller;
use Sonata\AdminBundle\Controller\CoreController;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Response;
use Sonata\AdminBundle\Admin\Pool;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\HttpFoundation\Request;
class CoreControllerTest extends \PHPUnit_Framework_TestCase
{
public function testdashboardActionStandardRequest()
{
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
$pool = new Pool($container, 'title', 'logo.png');
$pool->setTemplates(array(
'ajax' => 'ajax.html',
));
$templating = $this->getMock('Symfony\Bundle\FrameworkBundle\Templating\EngineInterface');
$request = new Request();
$values = array(
'sonata.admin.pool' => $pool,
'templating' => $templating,
'request' => $request
);
$container->expects($this->any())->method('get')->will($this->returnCallback(function($id) use ($values) {
return $values[$id];
}));
$controller = new CoreController();
$controller->setContainer($container);
$response = $controller->dashboardAction();
$this->isInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
}
public function testdashboardActionAjaxLayout()
{
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
$pool = new Pool($container, 'title', 'logo.png');
$pool->setTemplates(array(
'ajax' => 'ajax.html',
));
$templating = $this->getMock('Symfony\Bundle\FrameworkBundle\Templating\EngineInterface');
$request = new Request();
$request->headers->set('X-Requested-With', 'XMLHttpRequest');
$values = array(
'sonata.admin.pool' => $pool,
'templating' => $templating,
'request' => $request
);
$container->expects($this->any())->method('get')->will($this->returnCallback(function($id) use ($values) {
return $values[$id];
}));
$controller = new CoreController();
$controller->setContainer($container);
$response = $controller->dashboardAction();
$this->isInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
}
}