From 9b45e7f26cca9051688fc5efb79d810e23530436 Mon Sep 17 00:00:00 2001
From: Markus Klein <klein.t3@reelworx.at>
Date: Thu, 27 Nov 2014 15:13:18 +0100
Subject: [PATCH] [CLEANUP] StandaloneViewTest needs some love

Resolves: #63372
Releases: master, 6.2
Change-Id: I4863239d536623284ef2bc9774f6c3f4ccc18be7
Reviewed-on: http://review.typo3.org/34698
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Stefan Froemken <froemken@gmail.com>
Tested-by: Stefan Froemken <froemken@gmail.com>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
---
 .../Tests/Unit/View/StandaloneViewTest.php    | 77 ++++++++++---------
 1 file changed, 40 insertions(+), 37 deletions(-)

diff --git a/typo3/sysext/fluid/Tests/Unit/View/StandaloneViewTest.php b/typo3/sysext/fluid/Tests/Unit/View/StandaloneViewTest.php
index 7eb9a240c2a8..6241ea8e22b2 100644
--- a/typo3/sysext/fluid/Tests/Unit/View/StandaloneViewTest.php
+++ b/typo3/sysext/fluid/Tests/Unit/View/StandaloneViewTest.php
@@ -21,10 +21,14 @@ namespace TYPO3\CMS\Fluid\Tests\Unit\View;
  * The TYPO3 project - inspiring people to share!                         *
  *                                                                        */
 
+use TYPO3\CMS\Core\Tests\UnitTestCase;
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+use TYPO3\CMS\Fluid\View\StandaloneView;
+
 /**
  * Test case
  */
-class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
+class StandaloneViewTest extends UnitTestCase {
 
 	/**
 	 * @var array A backup of registered singleton instances
@@ -32,62 +36,62 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	protected $singletonInstances = array();
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\View\StandaloneView|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface
+	 * @var StandaloneView|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $view;
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface
+	 * @var \TYPO3\CMS\Fluid\Core\Rendering\RenderingContextInterface|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockRenderingContext;
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperVariableContainer
+	 * @var \TYPO3\CMS\Fluid\Core\ViewHelper\ViewHelperVariableContainer|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockViewHelperVariableContainer;
 
 	/**
-	 * @var \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext
+	 * @var \TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockControllerContext;
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\Core\Parser\TemplateParser
+	 * @var \TYPO3\CMS\Fluid\Core\Parser\TemplateParser|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockTemplateParser;
 
 	/**
-	 * @var \TYPO3\CMS\Extbase\Object\ObjectManager
+	 * @var \TYPO3\CMS\Extbase\Object\ObjectManager|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockObjectManager;
 
 	/**
-	 * @var \TYPO3\CMS\Extbase\Mvc\Web\Request
+	 * @var \TYPO3\CMS\Extbase\Mvc\Web\Request|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockRequest;
 
 	/**
-	 * @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
+	 * @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockUriBuilder;
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\Core\Parser\ParsedTemplateInterface
+	 * @var \TYPO3\CMS\Fluid\Core\Parser\ParsedTemplateInterface|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockParsedTemplate;
 
 	/**
-	 * @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
+	 * @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockConfigurationManager;
 
 	/**
-	 * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
+	 * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockContentObject;
 
 	/**
-	 * @var \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler
+	 * @var \TYPO3\CMS\Fluid\Core\Compiler\TemplateCompiler|\PHPUnit_Framework_MockObject_MockObject
 	 */
 	protected $mockTemplateCompiler;
 
@@ -97,8 +101,8 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	 * @return void
 	 */
 	public function setUp() {
-		$this->singletonInstances = \TYPO3\CMS\Core\Utility\GeneralUtility::getSingletonInstances();
-		$this->view = $this->getAccessibleMock('TYPO3\\CMS\\Fluid\\View\\StandaloneView', array('testFileExistence'), array(), '', FALSE);
+		$this->singletonInstances = GeneralUtility::getSingletonInstances();
+		$this->view = $this->getAccessibleMock('TYPO3\\CMS\\Fluid\\View\\StandaloneView', array('testFileExistence', 'buildParserConfiguration'), array(), '', FALSE);
 		$this->mockTemplateParser = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\TemplateParser');
 		$this->mockParsedTemplate = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\ParsedTemplateInterface');
 		$this->mockTemplateParser->expects($this->any())->method('parse')->will($this->returnValue($this->mockParsedTemplate));
@@ -119,21 +123,21 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 		$this->view->setRenderingContext($this->mockRenderingContext);
 		$this->mockTemplateCompiler = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Compiler\\TemplateCompiler');
 		$this->view->_set('templateCompiler', $this->mockTemplateCompiler);
-		\TYPO3\CMS\Core\Utility\GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager', $this->mockObjectManager);
-		\TYPO3\CMS\Core\Utility\GeneralUtility::addInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer', $this->mockContentObject);
+		GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager', $this->mockObjectManager);
+		GeneralUtility::addInstance('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer', $this->mockContentObject);
 
 		$mockCacheManager = $this->getMock('TYPO3\\CMS\\Core\\Cache\\CacheManager', array(), array(), '', FALSE);
 		$mockCache = $this->getMock('TYPO3\\CMS\\Core\\Cache\\Frontend\\PhpFrontend', array(), array(), '', FALSE);
 		$mockCacheManager->expects($this->any())->method('getCache')->will($this->returnValue($mockCache));
-		\TYPO3\CMS\Core\Utility\GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager', $mockCacheManager);
+		GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager', $mockCacheManager);
 	}
 
 	/**
 	 * @return void
 	 */
 	public function tearDown() {
-		\TYPO3\CMS\Core\Utility\GeneralUtility::purgeInstances();
-		\TYPO3\CMS\Core\Utility\GeneralUtility::resetSingletonInstances($this->singletonInstances);
+		GeneralUtility::purgeInstances();
+		GeneralUtility::resetSingletonInstances($this->singletonInstances);
 		parent::tearDown();
 	}
 
@@ -158,6 +162,7 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 			case 'TYPO3\\CMS\\Fluid\\Core\\Compiler\\TemplateCompiler':
 				return $this->mockTemplateCompiler;
 		}
+		throw new \InvalidArgumentException('objectManagerCallback cannot handle class "' . $className . '". Looks like incomplete mocking in the tests.', 1417105493);
 	}
 
 	/**
@@ -165,36 +170,34 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	 */
 	public function constructorSetsSpecifiedContentObject() {
 		$mockContentObject = $this->getMock('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer');
-		// FIXME should be compared with identicalTo() - but that does not seem to work
-		$this->mockConfigurationManager->expects($this->once())->method('setContentObject')->with($this->equalTo($this->mockContentObject));
-		new \TYPO3\CMS\Fluid\View\StandaloneView($mockContentObject);
+		$this->mockConfigurationManager->expects($this->once())->method('setContentObject')->with($this->identicalTo($mockContentObject));
+		new StandaloneView($mockContentObject);
 	}
 
 	/**
 	 * @test
 	 */
 	public function constructorCreatesContentObjectIfItIsNotSpecified() {
-		// FIXME should be compared with identicalTo() - but that does not seem to work
-		$this->mockConfigurationManager->expects($this->once())->method('setContentObject')->with($this->equalTo($this->mockContentObject));
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		$this->mockConfigurationManager->expects($this->once())->method('setContentObject')->with($this->identicalTo($this->mockContentObject));
+		new StandaloneView();
 	}
 
 	/**
 	 * @test
 	 */
 	public function constructorSetsRequestUri() {
-		$expectedRequestUri = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
+		$expectedRequestUri = GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
 		$this->mockRequest->expects($this->once())->method('setRequestURI')->with($expectedRequestUri);
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		new StandaloneView();
 	}
 
 	/**
 	 * @test
 	 */
 	public function constructorSetsBaseUri() {
-		$expectedBaseUri = \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
+		$expectedBaseUri = GeneralUtility::getIndpEnv('TYPO3_SITE_URL');
 		$this->mockRequest->expects($this->once())->method('setBaseURI')->with($expectedBaseUri);
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		new StandaloneView();
 	}
 
 	/**
@@ -202,7 +205,7 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	 */
 	public function constructorInjectsRequestToUriBuilder() {
 		$this->mockUriBuilder->expects($this->once())->method('setRequest')->with($this->mockRequest);
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		new StandaloneView();
 	}
 
 	/**
@@ -210,7 +213,7 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	 */
 	public function constructorInjectsRequestToControllerContext() {
 		$this->mockControllerContext->expects($this->once())->method('setRequest')->with($this->mockRequest);
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		new StandaloneView();
 	}
 
 	/**
@@ -218,7 +221,7 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	 */
 	public function constructorInjectsUriBuilderToControllerContext() {
 		$this->mockControllerContext->expects($this->once())->method('setUriBuilder')->with($this->mockUriBuilder);
-		new \TYPO3\CMS\Fluid\View\StandaloneView();
+		new StandaloneView();
 	}
 
 	/**
@@ -490,23 +493,23 @@ class StandaloneViewTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 	/**
 	 * @test
 	 */
-	public function setPartialsRootPathOverrulesSetTemplateRootPaths() {
+	public function setPartialRootPathsOverridesValueSetBySetPartialRootPath() {
 		$this->view->setPartialRootPath('/foo/bar');
 		$this->view->setPartialRootPaths(array('/overruled/path'));
 		$expected = array('/overruled/path');
 		$actual = $this->view->_call('getPartialRootPaths');
-		$this->assertEquals($expected, $actual, 'A set template root path was not returned correctly.');
+		$this->assertEquals($expected, $actual, 'A set partial root path was not returned correctly.');
 	}
 
 	/**
 	 * @test
 	 */
-	public function setLayoutsRootPathOverrulesSetTemplateRootPaths() {
+	public function setLayoutRootPathsOverridesValuesSetBySetLayoutRootPath() {
 		$this->view->setLayoutRootPath('/foo/bar');
 		$this->view->setLayoutRootPaths(array('/overruled/path'));
 		$expected = array('/overruled/path');
 		$actual = $this->view->_call('getLayoutRootPaths');
-		$this->assertEquals($expected, $actual, 'A set template root path was not returned correctly.');
+		$this->assertEquals($expected, $actual, 'A set layout root path was not returned correctly.');
 	}
 
 	/**
-- 
GitLab