TYPO3 CMS  TYPO3_7-6
TextareaViewHelperTest.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 
24  protected function setUp()
25  {
26  parent::setUp();
27  $this->viewHelper = $this->getAccessibleMock(\TYPO3\CMS\Fluid\ViewHelpers\Form\TextareaViewHelper::class, ['setErrorClassAttribute', 'registerFieldNameForFormTokenGeneration']);
28  $this->arguments['name'] = '';
29  $this->injectDependenciesIntoViewHelper($this->viewHelper);
30  $this->viewHelper->initializeArguments();
31  }
32 
36  public function renderCorrectlySetsTagName()
37  {
38  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['setTagName'], [], '', false);
39  $mockTagBuilder->expects($this->once())->method('setTagName')->with('textarea');
40  $this->viewHelper->_set('tag', $mockTagBuilder);
41 
42  $this->viewHelper->initialize();
43  $this->viewHelper->render();
44  }
45 
50  {
51  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
52  $mockTagBuilder->expects($this->once())->method('addAttribute')->with('name', 'NameOfTextarea');
53  $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextarea');
54  $mockTagBuilder->expects($this->once())->method('setContent')->with('Current value');
55  $mockTagBuilder->expects($this->once())->method('render');
56  $this->viewHelper->_set('tag', $mockTagBuilder);
57 
58  $arguments = [
59  'name' => 'NameOfTextarea',
60  'value' => 'Current value'
61  ];
62  $this->viewHelper->setArguments($arguments);
63 
64  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
65  $this->viewHelper->initialize();
66  $this->viewHelper->render();
67  }
68 
73  {
74  $this->viewHelper->expects($this->once())->method('setErrorClassAttribute');
75  $this->viewHelper->render();
76  }
77 
81  public function renderEscapesTextareaContent()
82  {
83  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
84  $mockTagBuilder->expects($this->once())->method('addAttribute')->with('name', 'NameOfTextarea');
85  $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextarea');
86  $mockTagBuilder->expects($this->once())->method('setContent')->with('some &lt;tag&gt; &amp; &quot;quotes&quot;');
87  $mockTagBuilder->expects($this->once())->method('render');
88  $this->viewHelper->_set('tag', $mockTagBuilder);
89 
90  $arguments = [
91  'name' => 'NameOfTextarea',
92  'value' => 'some <tag> & "quotes"'
93  ];
94  $this->viewHelper->setArguments($arguments);
95 
96  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
97  $this->viewHelper->initialize();
98  $this->viewHelper->render();
99  }
100 
104  public function renderAddsPlaceholder()
105  {
106  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
107  $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('placeholder', 'SomePlaceholder');
108  $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'NameOfTextarea');
109  $mockTagBuilder->expects($this->once())->method('render');
110  $this->viewHelper->_set('tag', $mockTagBuilder);
111 
112  $arguments = [
113  'name' => 'NameOfTextarea',
114  'placeholder' => 'SomePlaceholder'
115  ];
116  $this->viewHelper->setArguments($arguments);
117 
118  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
119  $this->viewHelper->initialize();
120  $this->viewHelper->render();
121  }
122 }
getAccessibleMock( $originalClassName, $methods=[], array $arguments=[], $mockClassName='', $callOriginalConstructor=true, $callOriginalClone=true, $callAutoload=true)
injectDependenciesIntoViewHelper(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper $viewHelper)