Add SearchDashboardTest

This commit is contained in:
Alexander Fuhr 2014-09-04 18:30:22 +02:00
parent 4513ab2aed
commit e4d1143870
2 changed files with 76 additions and 2 deletions

View File

@ -32,7 +32,7 @@ class SearchDashboard extends Dashboard
* @param $searchQuery
* @return Dashboard|SearchDashboard
*/
public static function load($searchQuery)
public static function load($searchQuery = '')
{
/** @var $dashboard SearchDashboard */
$dashboard = new static('searchDashboard');
@ -48,7 +48,7 @@ class SearchDashboard extends Dashboard
*/
public function render()
{
if (!$this->getPane(self::SEARCH_PANE)->hasComponents()) {
if (! $this->getPane(self::SEARCH_PANE)->hasComponents()) {
throw new ActionError('Site not found', 404);
}
return parent::render();

View File

@ -0,0 +1,74 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
namespace Tests\Icinga\Web;
use Mockery;
use Icinga\Application\Icinga;
use Icinga\Web\Widget\SearchDashboard;
use Icinga\Test\BaseTestCase;
class SearchDashboardTest extends BaseTestCase
{
public function tearDown()
{
parent::tearDown();
Mockery::close(); // Necessary because some tests run in a separate process
}
protected function setupIcingaMock(\Zend_Controller_Request_Abstract $request)
{
$moduleMock = Mockery::mock('Icinga\Application\Modules\Module');
$searchUrl = (object) array(
'title' => 'Hosts',
'url' => 'monitoring/list/hosts?sort=host_severity&limit=10'
);
$moduleMock->shouldReceive('getSearchUrls')->andReturn(array(
$searchUrl
));
$moduleManagerMock = Mockery::mock('Icinga\Application\Modules\Manager');
$moduleManagerMock->shouldReceive('getLoadedModules')->andReturn(array(
'test-module' => $moduleMock
));
$bootstrapMock = Mockery::mock('Icinga\Application\ApplicationBootstrap')->shouldDeferMissing();
$bootstrapMock->shouldReceive('getFrontController->getRequest')->andReturnUsing(
function () use ($request) { return $request; }
)->shouldReceive('getApplicationDir')->andReturn(self::$appDir);
$bootstrapMock->shouldReceive('getModuleManager')->andReturn($moduleManagerMock);
Icinga::setApp($bootstrapMock, true);
}
/**
* @expectedException Zend_Controller_Action_Exception
*/
public function testFoo()
{
$dashboard = SearchDashboard::load('pending');
$dashboard->getPane('search')->removeComponents();
$dashboard->render();
}
public function testWhetherLoadLoadsSearchDashletsFromModules()
{
$dashboard = SearchDashboard::load('pending');
$result = $dashboard->getPane('search')->hasComponent('Hosts: pending');
$this->assertTrue($result, 'Dashboard::load() could not load search dashlets from modules');
}
public function testWhetherLoadProvidesHint()
{
$dashboard = SearchDashboard::load('');
$result = $dashboard->getPane('search')->hasComponent('Ready to search');
$this->assertTrue($result, 'Dashboard::load() could not get hint for search');
}
}