Skip to content

Commit

Permalink
[TASK] Massive cleanup and improvement to tests in multiple namespaces
Browse files Browse the repository at this point in the history
  • Loading branch information
NamelessCoder committed Sep 29, 2013
1 parent c4e9b09 commit 9916af1
Show file tree
Hide file tree
Showing 44 changed files with 444 additions and 2,956 deletions.
7 changes: 5 additions & 2 deletions Tests/Unit/ViewHelpers/AbstractViewHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ protected function getViewHelperClassName() {
* @return Tx_Fluid_Core_Parser_SyntaxTree_NodeInterface
*/
protected function createNode($type, $value) {
if ('Boolean' === $type) {
$value = $this->createNode('Text', strval($value));
}
/** @var Tx_Fluid_Core_Parser_SyntaxTree_NodeInterface $node */
$className = 'Tx_Fluid_Core_Parser_SyntaxTree_' . $type . 'Node';
$node = new $className($value);
Expand Down Expand Up @@ -99,8 +102,8 @@ protected function buildViewHelperInstance($arguments = array(), $variables = ar
$container = $this->objectManager->get('Tx_Fluid_Core_ViewHelper_TemplateVariableContainer');
/** @var Tx_Fluid_Core_ViewHelper_ViewHelperVariableContainer $viewHelperContainer */
$viewHelperContainer = $this->objectManager->get('Tx_Fluid_Core_ViewHelper_ViewHelperVariableContainer');
foreach ($variables as $name => $value) {
$container->add($name, $value);
if (0 < count($variables)) {
Tx_Extbase_Reflection_ObjectAccess::setProperty($container, 'variables', $variables, TRUE);
}
$node = new Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode($instance, $arguments);
/** @var Tx_Extbase_MVC_Web_Routing_UriBuilder $uriBuilder */
Expand Down
89 changes: 5 additions & 84 deletions Tests/Unit/ViewHelpers/Asset/PrefetchViewHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,95 +28,16 @@
* @author Cedric Ziel <[email protected]>
* @package Vhs
*/
class Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelperTest extends Tx_Extbase_Tests_Unit_BaseTestCase {

/**
* @var $objectManager Tx_Extbase_Object_ObjectManagerInterface
*/
protected $objectManager;

/**
* @param $objectManager Tx_Extbase_Object_ObjectManagerInterface
* @return void
*/
protected function injectObjectManager(Tx_Extbase_Object_ObjectManagerInterface $objectManager) {
$this->objectManager = $objectManager;
}

/**
* @return Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelper
* @support
*/
protected function getPreparedInstance() {
$viewHelperClassName = 'Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelper';
$arguments = array();
$nodeClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode' : '\\TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode');
$renderingContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Rendering_RenderingContext' : '\\TYPO3\\CMS\\Fluid\\Core\\Rendering\\RenderingContext');
$controllerContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Controller_ControllerContext' : '\\TYPO3\\CMS\\Extbase\\MVC\\Controller\\ControllerContext');
$requestClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Web_Request' : '\\TYPO3\\CMS\\Extbase\\MVC\\Web\\Request');

/** @var Tx_Extbase_MVC_Web_Request $request */
$request = $this->objectManager->get($requestClassName);
/** @var $viewHelperInstance Tx_Fluid_Core_ViewHelper_AbstractViewHelper */
$viewHelperInstance = $this->objectManager->get($viewHelperClassName);
/** @var Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode $node */
$node = $this->objectManager->get($nodeClassName, $viewHelperInstance, $arguments);
/** @var Tx_Extbase_MVC_Controller_ControllerContext $controllerContext */
$controllerContext = $this->objectManager->get($controllerContextClassName);
$controllerContext->setRequest($request);
/** @var Tx_Fluid_Core_Rendering_RenderingContext $renderingContext */
$renderingContext = $this->objectManager->get($renderingContextClassName);
$renderingContext->setControllerContext($controllerContext);

$viewHelperInstance->setRenderingContext($renderingContext);
$viewHelperInstance->setViewHelperNode($node);
return $viewHelperInstance;
}

/**
* @test
*/
public function canCreateViewHelperClassInstance() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelper', $instance);
}

/**
* @test
*/
public function canInitializeViewHelper() {
$instance = $this->getPreparedInstance();
$instance->initialize();
}

/**
* @test
*/
public function canPrepareViewHelperArguments() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelper', $instance);
$arguments = $instance->prepareArguments();
$constraint = new PHPUnit_Framework_Constraint_IsType('array');
$this->assertThat($arguments, $constraint);
}

/**
* @test
*/
public function canSetViewHelperNode() {
$instance = $this->getPreparedInstance();
$arguments = $instance->prepareArguments();
$node = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($instance, $arguments);
$instance->setViewHelperNode($node);
}
class Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelperTest extends Tx_Vhs_ViewHelpers_AbstractViewHelperTest {

/**
* @test
*/
public function canRenderWithoutProvidedArguments() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_Asset_PrefetchViewHelper', $instance);
public function buildReturnsMetaTag() {
$instance = $this->buildViewHelperInstance(array('domains' => 'test.com,test2.com', 'force' => TRUE));
$instance->render();
$result = $instance->build();
$this->assertStringStartsWith('<meta', $result);
}

}
102 changes: 26 additions & 76 deletions Tests/Unit/ViewHelpers/If/Iterator/ContainsViewHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,95 +28,45 @@
* @author Claus Due <[email protected]>
* @package Vhs
*/
class Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelperTest extends Tx_Extbase_Tests_Unit_BaseTestCase {

/**
* @var $objectManager Tx_Extbase_Object_ObjectManagerInterface
*/
protected $objectManager;

/**
* @param $objectManager Tx_Extbase_Object_ObjectManagerInterface
* @return void
*/
protected function injectObjectManager(Tx_Extbase_Object_ObjectManagerInterface $objectManager) {
$this->objectManager = $objectManager;
}

/**
* @return Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelper
* @support
*/
protected function getPreparedInstance() {
$viewHelperClassName = 'Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelper';
$arguments = array();
$nodeClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode' : '\\TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode');
$renderingContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Rendering_RenderingContext' : '\\TYPO3\\CMS\\Fluid\\Core\\Rendering\\RenderingContext');
$controllerContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Controller_ControllerContext' : '\\TYPO3\\CMS\\Extbase\\MVC\\Controller\\ControllerContext');
$requestClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Web_Request' : '\\TYPO3\\CMS\\Extbase\\MVC\\Web\\Request');

/** @var Tx_Extbase_MVC_Web_Request $request */
$request = $this->objectManager->get($requestClassName);
/** @var $viewHelperInstance Tx_Fluid_Core_ViewHelper_AbstractViewHelper */
$viewHelperInstance = $this->objectManager->get($viewHelperClassName);
/** @var Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode $node */
$node = $this->objectManager->get($nodeClassName, $viewHelperInstance, $arguments);
/** @var Tx_Extbase_MVC_Controller_ControllerContext $controllerContext */
$controllerContext = $this->objectManager->get($controllerContextClassName);
$controllerContext->setRequest($request);
/** @var Tx_Fluid_Core_Rendering_RenderingContext $renderingContext */
$renderingContext = $this->objectManager->get($renderingContextClassName);
$renderingContext->setControllerContext($controllerContext);

$viewHelperInstance->setRenderingContext($renderingContext);
$viewHelperInstance->setViewHelperNode($node);
return $viewHelperInstance;
}

/**
* @test
*/
public function canCreateViewHelperClassInstance() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelper', $instance);
}
class Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelperTest extends Tx_Vhs_ViewHelpers_AbstractViewHelperTest {

/**
* @test
*/
public function canInitializeViewHelper() {
$instance = $this->getPreparedInstance();
$instance->initialize();
public function supportsArray() {
$needle = 'test';
$with = array($needle);
$without = array();
$this->renderTestWithHaystackAndNeedle($with, $without, $needle);
}

/**
* @test
*/
public function canPrepareViewHelperArguments() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelper', $instance);
$arguments = $instance->prepareArguments();
$constraint = new PHPUnit_Framework_Constraint_IsType('array');
$this->assertThat($arguments, $constraint);
public function supportsObjectStorage() {
$needle = new Tx_Extbase_Domain_Model_FrontendUser();
Tx_Extbase_Reflection_ObjectAccess::setProperty($needle, 'uid', 1);
$with = new Tx_Extbase_Persistence_ObjectStorage();
$without = new Tx_Extbase_Persistence_ObjectStorage();
$with->attach($needle);
$this->renderTestWithHaystackAndNeedle($with, $without, $needle);
}

/**
* @test
*/
public function canSetViewHelperNode() {
$instance = $this->getPreparedInstance();
$arguments = $instance->prepareArguments();
$node = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($instance, $arguments);
$instance->setViewHelperNode($node);
}

/**
* @test
* @param mixed $haystackWithNeedle
* @param mixed $haystackWithoutNeedle
* @param mixed $needle
*/
public function canRenderWithoutProvidedArguments() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_If_Iterator_ContainsViewHelper', $instance);
$instance->render();
protected function renderTestWithHaystackAndNeedle($haystackWithNeedle, $haystackWithoutNeedle, $needle) {
$arguments = array(
'haystack' => $haystackWithNeedle,
'needle' => $needle,
'then' => 'then',
'else' => 'else'
);
$this->assertEquals($arguments['then'], $this->executeViewHelper($arguments));
$arguments['haystack'] = $haystackWithoutNeedle;
$this->assertEquals($arguments['else'], $this->executeViewHelper($arguments));
}

}
76 changes: 5 additions & 71 deletions Tests/Unit/ViewHelpers/If/String/ContainsViewHelperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,86 +28,20 @@
* @author Claus Due <[email protected]>
* @package Vhs
*/
class Tx_Vhs_ViewHelpers_If_String_ContainsViewHelperTest extends Tx_Extbase_Tests_Unit_BaseTestCase {

/**
* @var $objectManager Tx_Extbase_Object_ObjectManagerInterface
*/
protected $objectManager;

/**
* @param $objectManager Tx_Extbase_Object_ObjectManagerInterface
* @return void
*/
protected function injectObjectManager(Tx_Extbase_Object_ObjectManagerInterface $objectManager) {
$this->objectManager = $objectManager;
}

/**
* @return Tx_Vhs_ViewHelpers_If_String_ContainsViewHelper
* @support
*/
protected function getPreparedInstance() {
$viewHelperClassName = 'Tx_Vhs_ViewHelpers_If_String_ContainsViewHelper';
$arguments = array();
$nodeClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode' : '\\TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode');
$renderingContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Fluid_Core_Rendering_RenderingContext' : '\\TYPO3\\CMS\\Fluid\\Core\\Rendering\\RenderingContext');
$controllerContextClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Controller_ControllerContext' : '\\TYPO3\\CMS\\Extbase\\MVC\\Controller\\ControllerContext');
$requestClassName = (FALSE !== strpos($viewHelperClassName, '_') ? 'Tx_Extbase_MVC_Web_Request' : '\\TYPO3\\CMS\\Extbase\\MVC\\Web\\Request');

/** @var Tx_Extbase_MVC_Web_Request $request */
$request = $this->objectManager->get($requestClassName);
/** @var $viewHelperInstance Tx_Fluid_Core_ViewHelper_AbstractViewHelper */
$viewHelperInstance = $this->objectManager->get($viewHelperClassName);
/** @var Tx_Fluid_Core_Parser_SyntaxTree_ViewHelperNode $node */
$node = $this->objectManager->get($nodeClassName, $viewHelperInstance, $arguments);
/** @var Tx_Extbase_MVC_Controller_ControllerContext $controllerContext */
$controllerContext = $this->objectManager->get($controllerContextClassName);
$controllerContext->setRequest($request);
/** @var Tx_Fluid_Core_Rendering_RenderingContext $renderingContext */
$renderingContext = $this->objectManager->get($renderingContextClassName);
$renderingContext->setControllerContext($controllerContext);

$viewHelperInstance->setRenderingContext($renderingContext);
$viewHelperInstance->setViewHelperNode($node);
return $viewHelperInstance;
}

/**
* @test
*/
public function canCreateViewHelperClassInstance() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_If_String_ContainsViewHelper', $instance);
}

/**
* @test
*/
public function canInitializeViewHelper() {
$instance = $this->getPreparedInstance();
$instance->initialize();
}
class Tx_Vhs_ViewHelpers_If_String_ContainsViewHelperTest extends Tx_Vhs_ViewHelpers_AbstractViewHelperTest {

/**
* @test
*/
public function canPrepareViewHelperArguments() {
$instance = $this->getPreparedInstance();
$this->assertInstanceOf('Tx_Vhs_ViewHelpers_If_String_ContainsViewHelper', $instance);
$arguments = $instance->prepareArguments();
$constraint = new PHPUnit_Framework_Constraint_IsType('array');
$this->assertThat($arguments, $constraint);
public function rendersThenChildIfConditionMatched() {
$this->assertEquals('then', $this->executeViewHelper(array('then' => 'then', 'else' => 'else', 'haystack' => 'foobar', 'needle' => 'bar')));
}

/**
* @test
*/
public function canSetViewHelperNode() {
$instance = $this->getPreparedInstance();
$arguments = $instance->prepareArguments();
$node = new \TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\ViewHelperNode($instance, $arguments);
$instance->setViewHelperNode($node);
public function rendersElseChildIfConditionNotMatched() {
$this->assertEquals('else', $this->executeViewHelper(array('then' => 'then', 'else' => 'else', 'haystack' => 'foobar', 'needle' => 'baz')));
}

}
Loading

0 comments on commit 9916af1

Please sign in to comment.