[BUGFIX] DebuggerUtility does not rewind instances of Iterator
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Tests / Unit / Utility / DebuggerUtilityTest.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Tests\Unit\Utility;
3
4 /***************************************************************
5 * Copyright notice
6 *
7 * (c) 2010-2012 Extbase Team (http://forge.typo3.org/projects/typo3v4-mvc)
8 * Extbase is a backport of TYPO3 Flow. All credits go to the TYPO3 Flow team.
9 * All rights reserved
10 *
11 * This script is part of the TYPO3 project. The TYPO3 project is
12 * free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * The GNU General Public License can be found at
18 * http://www.gnu.org/copyleft/gpl.html.
19 * A copy is found in the textfile GPL.txt and important notices to the license
20 * from the author is found in LICENSE.txt distributed with these scripts.
21 *
22 *
23 * This script is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
27 *
28 * This copyright notice MUST APPEAR in all copies of the script!
29 ***************************************************************/
30 /**
31 * Testcase for the \TYPO3\CMS\Extbase\Utility\DebuggerUtility class.
32 *
33 * @author Alexander Schnitzler <alex.schnitzler@typovision.de>
34 */
35 class DebuggerUtilityTest extends \TYPO3\CMS\Extbase\Tests\Unit\BaseTestCase {
36
37 /**
38 * @var \TYPO3\CMS\Extbase\Utility\DebuggerUtility
39 */
40 protected $debugger;
41
42 public function setUp() {
43 $this->debugger = $this->getAccessibleMock('TYPO3\\CMS\\Extbase\\Utility\\DebuggerUtility', array('dummy'));
44 }
45
46 /**
47 * @test
48 * @author Alexander Schnitzler <alex.schnitzler@typovision.de>
49 */
50 public function debuggerRewindsInstancesOfIterator() {
51 /** @var $objectStorage \TYPO3\CMS\Extbase\Persistence\ObjectStorage */
52 $objectStorage = $this->getMock('TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage', array('dummy'));
53 for ($i = 0; $i < 5; $i++) {
54 $obj = new \StdClass();
55 $obj->property = $i;
56 $objectStorage->attach($obj);
57 }
58 $this->debugger->var_dump($objectStorage, NULL, 8, FALSE, TRUE);
59 $this->assertTrue($objectStorage->valid());
60 }
61
62 /**
63 * @test
64 * @author Anja Leichsenring <anja.leichsenring@typo3.org>
65 */
66 public function debuggerDoesNotRewindInstanceOfArrayAccess() {
67
68 $parameters = array();
69 for ($i = 0; $i < 5; $i++) {
70 $argument = new \TYPO3\CMS\Extbase\Mvc\Controller\Argument('argument_' . $i, 'integer');
71 $parameters[$i] = $argument;
72 }
73
74 /** @var $arguments \TYPO3\CMS\Fluid\Core\ViewHelper\Arguments */
75 $arguments = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\ViewHelper\\Arguments', array('dummy'), array('arguments' => $parameters));
76
77 $arguments->expects($this->never())->method('rewind');
78 $this->debugger->var_dump($arguments, NULL, 8, FALSE, TRUE);
79 }
80 }
81
82 ?>