[TASK] Make Condition ViewHelpers fully static compileable
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid / Tests / Unit / ViewHelpers / Be / IfHasRoleViewHelperTest.php
1 <?php
2 namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Be;
3
4 /* *
5 * This script is backported from the FLOW3 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 * *
12 * This script is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15 * General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License along with the script. *
19 * If not, see http://www.gnu.org/licenses/lgpl.html *
20 * *
21 * The TYPO3 project - inspiring people to share! *
22 * */
23
24 /**
25 * Testcase for be.security.ifHasRole view helper
26 */
27 class IfHasRoleViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\ViewHelperBaseTestcase {
28
29 /**
30 * @var \TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfAuthenticatedViewHelper
31 */
32 protected $viewHelper;
33
34 protected function setUp() {
35 parent::setUp();
36 $GLOBALS['BE_USER'] = new \stdClass();
37 $GLOBALS['BE_USER']->userGroups = array(
38 array(
39 'uid' => 1,
40 'title' => 'Editor'
41 ),
42 array(
43 'uid' => 2,
44 'title' => 'OtherRole'
45 )
46 );
47 $this->viewHelper = $this->getAccessibleMock(\TYPO3\CMS\Fluid\ViewHelpers\Be\Security\IfHasRoleViewHelper::class, array('renderThenChild', 'renderElseChild'));
48 $this->viewHelper->expects($this->any())->method('renderThenChild')->will($this->returnValue('then child'));
49 $this->viewHelper->expects($this->any())->method('renderElseChild')->will($this->returnValue('else child'));
50 $this->injectDependenciesIntoViewHelper($this->viewHelper);
51 $this->viewHelper->initializeArguments();
52 }
53
54 /**
55 * @test
56 */
57 public function viewHelperRendersThenChildIfBeUserWithSpecifiedRoleIsLoggedIn() {
58 $this->arguments['role'] = 'Editor';
59 $this->injectDependenciesIntoViewHelper($this->viewHelper);
60
61 $actualResult = $this->viewHelper->render('Editor');
62 $this->assertEquals('then child', $actualResult);
63 }
64
65 /**
66 * @test
67 */
68 public function viewHelperRendersThenChildIfBeUserWithSpecifiedRoleIdIsLoggedIn() {
69 $this->arguments['role'] = 1;
70 $this->injectDependenciesIntoViewHelper($this->viewHelper);
71
72 $actualResult = $this->viewHelper->render(1);
73 $this->assertEquals('then child', $actualResult);
74 }
75
76 /**
77 * @test
78 */
79 public function viewHelperRendersElseChildIfBeUserWithSpecifiedRoleIsNotLoggedIn() {
80 $this->arguments['role'] = 'editor';
81 $this->injectDependenciesIntoViewHelper($this->viewHelper);
82
83 $actualResult = $this->viewHelper->render('editor');
84 $this->assertEquals('else child', $actualResult);
85 }
86
87 /**
88 * @test
89 */
90 public function viewHelperRendersElseChildIfBeUserWithSpecifiedRoleIdIsNotLoggedIn() {
91 $this->arguments['role'] = 123;
92 $this->injectDependenciesIntoViewHelper($this->viewHelper);
93
94 $actualResult = $this->viewHelper->render(123);
95 $this->assertEquals('else child', $actualResult);
96 }
97
98 }