TYPO3 CMS  TYPO3_6-2
All Classes Namespaces Files Functions Variables Pages
AbstractConditionViewHelperTest.php
Go to the documentation of this file.
1 <?php
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * The TYPO3 project - inspiring people to share! *
12  * */
13 
18 
22  protected $viewHelper;
23 
27  protected $mockArguments;
28 
29  public function setUp() {
30  parent::setUp();
31  $this->viewHelper = $this->getAccessibleMock('TYPO3\\CMS\\Fluid\\Core\\ViewHelper\\AbstractConditionViewHelper', array('getRenderingContext', 'renderChildren', 'hasArgument'));
32  $this->viewHelper->expects($this->any())->method('getRenderingContext')->will($this->returnValue($this->renderingContext));
33  $this->injectDependenciesIntoViewHelper($this->viewHelper);
34  }
35 
40  $this->viewHelper->expects($this->any())->method('renderChildren')->will($this->returnValue('foo'));
41 
42  $actualResult = $this->viewHelper->_call('renderThenChild');
43  $this->assertEquals('foo', $actualResult);
44  }
45 
50  $mockThenViewHelperNode = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode', array('getViewHelperClassName', 'evaluate'), array(), '', FALSE);
51  $mockThenViewHelperNode->expects($this->at(0))->method('getViewHelperClassName')->will($this->returnValue('TYPO3\\CMS\\Fluid\\ViewHelpers\\ThenViewHelper'));
52  $mockThenViewHelperNode->expects($this->at(1))->method('evaluate')->with($this->renderingContext)->will($this->returnValue('ThenViewHelperResults'));
53 
54  $this->viewHelper->setChildNodes(array($mockThenViewHelperNode));
55  $actualResult = $this->viewHelper->_call('renderThenChild');
56  $this->assertEquals('ThenViewHelperResults', $actualResult);
57  }
58 
63  $actualResult = $this->viewHelper->_call('renderElseChild');
64  $this->assertEquals('', $actualResult);
65  }
66 
71  $mockElseViewHelperNode = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode', array('getViewHelperClassName', 'evaluate', 'setRenderingContext'), array(), '', FALSE);
72  $mockElseViewHelperNode->expects($this->at(0))->method('getViewHelperClassName')->will($this->returnValue('TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper'));
73  $mockElseViewHelperNode->expects($this->at(1))->method('evaluate')->with($this->renderingContext)->will($this->returnValue('ElseViewHelperResults'));
74 
75  $this->viewHelper->setChildNodes(array($mockElseViewHelperNode));
76  $actualResult = $this->viewHelper->_call('renderElseChild');
77  $this->assertEquals('ElseViewHelperResults', $actualResult);
78  }
79 
84  $this->viewHelper->expects($this->atLeastOnce())->method('hasArgument')->with('then')->will($this->returnValue(TRUE));
85  $this->arguments['then'] = 'ThenArgument';
86  $this->injectDependenciesIntoViewHelper($this->viewHelper);
87 
88  $actualResult = $this->viewHelper->_call('renderThenChild');
89  $this->assertEquals('ThenArgument', $actualResult);
90  }
91 
96  $mockElseViewHelperNode = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode', array('getViewHelperClassName', 'evaluate'), array(), '', FALSE);
97  $mockElseViewHelperNode->expects($this->any())->method('getViewHelperClassName')->will($this->returnValue('TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper'));
98  $this->viewHelper->setChildNodes(array($mockElseViewHelperNode));
99  $this->viewHelper->expects($this->never())->method('renderChildren')->will($this->returnValue('Child nodes'));
100 
101  $actualResult = $this->viewHelper->_call('renderThenChild');
102  $this->assertEquals('', $actualResult);
103  }
104 
109  $mockThenViewHelperNode = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode', array('getViewHelperClassName', 'evaluate', 'setRenderingContext'), array(), '', FALSE);
110  $mockThenViewHelperNode->expects($this->never())->method('evaluate');
111 
112  $this->viewHelper->setChildNodes(array($mockThenViewHelperNode));
113 
114  $this->viewHelper->expects($this->atLeastOnce())->method('hasArgument')->with('then')->will($this->returnValue(TRUE));
115  $this->arguments['then'] = 'ThenArgument';
116 
117  $this->injectDependenciesIntoViewHelper($this->viewHelper);
118 
119  $actualResult = $this->viewHelper->_call('renderThenChild');
120  $this->assertEquals('ThenArgument', $actualResult);
121  }
122 
127  $this->viewHelper->expects($this->atLeastOnce())->method('hasArgument')->with('else')->will($this->returnValue(TRUE));
128  $this->arguments['else'] = 'ElseArgument';
129  $this->injectDependenciesIntoViewHelper($this->viewHelper);
130 
131  $actualResult = $this->viewHelper->_call('renderElseChild');
132  $this->assertEquals('ElseArgument', $actualResult);
133  }
134 
139  $mockElseViewHelperNode = $this->getMock('TYPO3\\CMS\\Fluid\\Core\\Parser\\SyntaxTree\\ViewHelperNode', array('getViewHelperClassName', 'evaluate', 'setRenderingContext'), array(), '', FALSE);
140  $mockElseViewHelperNode->expects($this->any())->method('getViewHelperClassName')->will($this->returnValue('TYPO3\\CMS\\Fluid\\ViewHelpers\\ElseViewHelper'));
141  $mockElseViewHelperNode->expects($this->never())->method('evaluate');
142 
143  $this->viewHelper->setChildNodes(array($mockElseViewHelperNode));
144 
145  $this->viewHelper->expects($this->atLeastOnce())->method('hasArgument')->with('else')->will($this->returnValue(TRUE));
146  $this->arguments['else'] = 'ElseArgument';
147  $this->injectDependenciesIntoViewHelper($this->viewHelper);
148 
149  $actualResult = $this->viewHelper->_call('renderElseChild');
150  $this->assertEquals('ElseArgument', $actualResult);
151  }
152 }
injectDependenciesIntoViewHelper(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper $viewHelper)
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)