forked from netgen/NetgenAdminUIBundle
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Install dependency injection test extension * Create unit tests for Layouts classes * Create unit tests for Templating classes * Create dependency injection unit tests * Create unit test for MenuPlugin * Support PHP > 5.4 * Add support for PHP >= 5.4 * Add support for PHPUnit 4.8 for PHP5.4 and older * Add support for PHP 5.4
- Loading branch information
1 parent
a7e0ce3
commit c5b7591
Showing
9 changed files
with
668 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
tests/DependencyInjection/CompilerPass/MenuPluginRegistryPassTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
<?php | ||
|
||
namespace Netgen\Bundle\AdminUIBundle\Tests\DependencyInjection\CompilerPass; | ||
|
||
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; | ||
use Netgen\Bundle\AdminUIBundle\DependencyInjection\CompilerPass\MenuPluginRegistryPass; | ||
use Symfony\Component\DependencyInjection\ContainerBuilder; | ||
use Symfony\Component\DependencyInjection\Definition; | ||
use Symfony\Component\DependencyInjection\Reference; | ||
|
||
class MenuPluginRegistryPassTest extends AbstractCompilerPassTestCase | ||
{ | ||
public function testWithoutMenuPluginRegistry() | ||
{ | ||
$this->assertNull($this->compile()); | ||
} | ||
|
||
public function testCompile() | ||
{ | ||
$definition = new Definition(); | ||
$definition->addTag('netgen_admin_ui.menu_plugin', array('priority' => 2)); | ||
|
||
$this->setDefinition('netgen_admin_ui.menu_plugin.registry', $definition); | ||
|
||
$this->compile(); | ||
|
||
$arguments = array( | ||
new Reference('netgen_admin_ui.menu_plugin.registry'), | ||
); | ||
|
||
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall('netgen_admin_ui.menu_plugin.registry', 'addMenuPlugin', $arguments); | ||
} | ||
|
||
protected function registerCompilerPass(ContainerBuilder $container) | ||
{ | ||
$container->addCompilerPass(new MenuPluginRegistryPass()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<?php | ||
|
||
namespace Netgen\Bundle\AdminUIBundle\Tests\DependencyInjection; | ||
|
||
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractExtensionTestCase; | ||
use Netgen\Bundle\AdminUIBundle\DependencyInjection\NetgenAdminUIExtension; | ||
|
||
class NetgenAdminUIExtensionTest extends AbstractExtensionTestCase | ||
{ | ||
public function testWithNoEzCoreExtraBundle() | ||
{ | ||
$this->setExpectedException('RuntimeException'); | ||
|
||
$this->container->setParameter('kernel.bundles', []); | ||
$this->load(); | ||
} | ||
|
||
public function testWithNoInformationCollectionBundle() | ||
{ | ||
$this->container->setParameter('kernel.bundles', array( | ||
'EzCoreExtraBundle' => 'EzCoreExtraBundle', | ||
'NetgenBlockManagerBundle' => 'NetgenBlockManagerBundle', | ||
)); | ||
|
||
$this->load(); | ||
|
||
$this->assertContainerBuilderHasParameter('netgen_admin_ui.logo_type', 'default'); | ||
} | ||
|
||
public function testWithAdminUILogo() | ||
{ | ||
$this->container->setParameter('kernel.bundles', array( | ||
'EzCoreExtraBundle' => 'EzCoreExtraBundle', | ||
'NetgenBlockManagerBundle' => 'NetgenBlockManagerBundle', | ||
'NetgenInformationCollectionBundle' => 'NetgenInformationCollectionBundle', | ||
)); | ||
|
||
$this->container->setParameter('netgen_admin_ui.logo_type', 'default'); | ||
|
||
$this->getMockBuilder('Netgen\Bundle\MoreBundle\NetgenMoreBundle') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$this->load(); | ||
|
||
$this->assertContainerBuilderHasParameter('netgen_admin_ui.logo_type', 'ngadminui'); | ||
} | ||
|
||
protected function getContainerExtensions() | ||
{ | ||
return [ | ||
new NetgenAdminUIExtension(), | ||
]; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
<?php | ||
|
||
namespace Netgen\Bundle\AdminUIBundle\Tests\Layouts\EventListener; | ||
|
||
use Netgen\BlockManager\Event\BlockManagerEvents; | ||
use Netgen\BlockManager\Event\CollectViewParametersEvent; | ||
use Netgen\BlockManager\HttpCache\NullClient; | ||
use Netgen\BlockManager\View\View\FormView; | ||
use Netgen\BlockManager\View\View\LayoutView; | ||
use Netgen\Bundle\AdminUIBundle\Layouts\EventListener\CacheEnabledListener; | ||
use PHPUnit\Framework\TestCase; | ||
|
||
class CacheEnabledListenerTest extends TestCase | ||
{ | ||
/** | ||
* @var \Netgen\Bundle\AdminUIBundle\Layouts\EventListener\CacheEnabledListener | ||
*/ | ||
protected $listener; | ||
|
||
public function setUp() | ||
{ | ||
if ( | ||
!class_exists('\Netgen\BlockManager\Version') | ||
|| !class_exists('Netgen\BlockManager\Event\CollectViewParametersEvent') | ||
|| !class_exists('Netgen\BlockManager\Event\BlockManagerEvents') | ||
|| !class_exists('Netgen\BlockManager\View\View\FormView') | ||
|| !class_exists('Netgen\BlockManager\View\View\LayoutView') | ||
|| !class_exists('Netgen\BlockManager\HttpCache\NullClient') | ||
) { | ||
$this->markTestSkipped(); | ||
} | ||
|
||
$httpCacheClient = $this->getMockBuilder('Netgen\BlockManager\HttpCache\ClientInterface') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$this->listener = new CacheEnabledListener($httpCacheClient); | ||
} | ||
|
||
public function testGetSubscribedEvents() | ||
{ | ||
$this->assertEquals(array(BlockManagerEvents::BUILD_VIEW => 'onBuildView'), CacheEnabledListener::getSubscribedEvents()); | ||
} | ||
|
||
public function testOnBuildViewWithWrongView() | ||
{ | ||
$view = new FormView(); | ||
$event = new CollectViewParametersEvent($view); | ||
|
||
$this->assertNull($this->listener->onBuildView($event)); | ||
} | ||
|
||
public function testOnBuildViewWithWrongViewContext() | ||
{ | ||
$view = new LayoutView(); | ||
$view->setContext('unsupported'); | ||
$event = new CollectViewParametersEvent($view); | ||
|
||
$this->assertNull($this->listener->onBuildView($event)); | ||
} | ||
|
||
public function testOnBuildViewEnabled() | ||
{ | ||
$view = new LayoutView(); | ||
$view->setContext('ngadminui'); | ||
$event = new CollectViewParametersEvent($view); | ||
|
||
$this->assertNull($this->listener->onBuildView($event)); | ||
|
||
$parameters = array( | ||
'http_cache_enabled' => true, | ||
); | ||
|
||
$this->assertEquals($parameters, $event->getParameters()); | ||
} | ||
|
||
public function testOnBuildViewDisabled() | ||
{ | ||
$listener = new CacheEnabledListener(new NullClient()); | ||
|
||
$view = new LayoutView(); | ||
$view->setContext('ngadminui'); | ||
$event = new CollectViewParametersEvent($view); | ||
|
||
$this->assertNull($listener->onBuildView($event)); | ||
|
||
$parameters = array( | ||
'http_cache_enabled' => false, | ||
); | ||
|
||
$this->assertEquals($parameters, $event->getParameters()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
<?php | ||
|
||
namespace Netgen\Bundle\AdminUIBundle\Tests\Layouts; | ||
|
||
use eZ\Publish\API\Repository\Values\Content\ContentInfo; | ||
use eZ\Publish\Core\Repository\Values\Content\Location; | ||
use Netgen\BlockManager\Core\Values\Layout\Layout; | ||
use Netgen\Bundle\AdminUIBundle\Layouts\RelatedLayoutsLoader; | ||
use PHPUnit\Framework\TestCase; | ||
|
||
class RelatedLayoutsLoaderTest extends TestCase | ||
{ | ||
/** | ||
* @var \Netgen\Bundle\AdminUIBundle\Layouts\RelatedLayoutsLoader | ||
*/ | ||
protected $loader; | ||
|
||
/** | ||
* @var \PHPUnit_Framework_MockObject_MockObject | ||
*/ | ||
protected $layoutService; | ||
|
||
/** | ||
* @var \PHPUnit_Framework_MockObject_MockObject | ||
*/ | ||
protected $databaseConnection; | ||
|
||
public function setUp() | ||
{ | ||
if ( | ||
!interface_exists('\Netgen\BlockManager\API\Service\LayoutService') | ||
|| !interface_exists('\Netgen\BlockManager\API\Values\Layout\Layout') | ||
|| !interface_exists('\Netgen\BlockManager\API\Values\Value') | ||
|| !class_exists('\Netgen\BlockManager\Version') | ||
) { | ||
$this->markTestSkipped(); | ||
} | ||
|
||
$this->layoutService = $this->getMockBuilder('Netgen\BlockManager\API\Service\LayoutService') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$this->databaseConnection = $this->getMockBuilder('Doctrine\DBAL\Connection') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$this->loader = new RelatedLayoutsLoader($this->layoutService, $this->databaseConnection); | ||
} | ||
|
||
public function testLoadRelatedLayouts() | ||
{ | ||
$contentInfo = new ContentInfo(); | ||
|
||
$location = new Location( | ||
array( | ||
'contentInfo' => $contentInfo, | ||
) | ||
); | ||
|
||
$queryBuilder = $this->getMockBuilder('Doctrine\DBAL\Query\QueryBuilder') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$expressionBuilder = $this->getMockBuilder('Doctrine\DBAL\Query\Expression\ExpressionBuilder') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$statement = $this->getMockBuilder('Doctrine\DBAL\Driver\Statement') | ||
->disableOriginalConstructor() | ||
->getMock(); | ||
|
||
$this->databaseConnection | ||
->expects($this->once()) | ||
->method('createQueryBuilder') | ||
->willReturn($queryBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->once()) | ||
->method('select') | ||
->willReturn($queryBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->once()) | ||
->method('from') | ||
->willReturn($queryBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->exactly(2)) | ||
->method('innerJoin') | ||
->willReturn($queryBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->exactly(15)) | ||
->method('expr') | ||
->willReturn($expressionBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->once()) | ||
->method('where') | ||
->willReturn($queryBuilder); | ||
|
||
$queryBuilder | ||
->expects($this->exactly(5)) | ||
->method('setParameter') | ||
->willReturn($queryBuilder); | ||
|
||
$expressionBuilder | ||
->expects($this->exactly(5)) | ||
->method('andX'); | ||
|
||
$expressionBuilder | ||
->expects($this->once()) | ||
->method('orX'); | ||
|
||
$expressionBuilder | ||
->expects($this->exactly(9)) | ||
->method('eq'); | ||
|
||
$queryBuilder | ||
->expects($this->once()) | ||
->method('execute') | ||
->willReturn($statement); | ||
|
||
$layoutRows = array( | ||
array( | ||
'layout_id' => 5, | ||
), | ||
array( | ||
'layout_id' => 6, | ||
), | ||
array( | ||
'layout_id' => 7, | ||
) | ||
); | ||
|
||
$layout1 = new Layout(array('name' => 'Frontpage')); | ||
$layout2 = new Layout(array('name' => 'Article')); | ||
$layout3 = new Layout(array('name' => 'Article')); | ||
|
||
$statement | ||
->expects($this->once()) | ||
->method('fetchAll') | ||
->willReturn($layoutRows); | ||
|
||
$this->layoutService | ||
->expects($this->exactly(3)) | ||
->method('loadLayout') | ||
->withConsecutive( | ||
array(5), | ||
array(6), | ||
array(7) | ||
) | ||
->willReturnOnConsecutiveCalls($layout1, $layout2, $layout3); | ||
|
||
$result = array($layout2, $layout3, $layout1); | ||
|
||
$this->assertEquals($result, $this->loader->loadRelatedLayouts($location)); | ||
} | ||
} |
Oops, something went wrong.