[!!!][BUGFIX] Correct "required"-parameter in TextfieldViewHelper
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid / Tests / Unit / ViewHelpers / Form / TextfieldViewHelperTest.php
1 <?php
2 namespace TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form;
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
14 /**
15 * Test for the "Textfield" Form view helper
16 */
17 class TextfieldViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\FormFieldViewHelperBaseTestcase {
18
19 /**
20 * @var \TYPO3\CMS\Fluid\ViewHelpers\Form\TextfieldViewHelper
21 */
22 protected $viewHelper;
23
24 protected function setUp() {
25 parent::setUp();
26 $this->viewHelper = $this->getAccessibleMock(\TYPO3\CMS\Fluid\ViewHelpers\Form\TextfieldViewHelper::class, array('setErrorClassAttribute', 'registerFieldNameForFormTokenGeneration'));
27 $this->arguments['name'] = '';
28 $this->injectDependenciesIntoViewHelper($this->viewHelper);
29 $this->viewHelper->initializeArguments();
30 }
31
32 /**
33 * @test
34 */
35 public function renderCorrectlySetsTagName() {
36 $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, array('setTagName'), array(), '', FALSE);
37 $mockTagBuilder->expects($this->once())->method('setTagName')->with('input');
38 $this->viewHelper->_set('tag', $mockTagBuilder);
39
40 $this->viewHelper->initialize();
41 $this->viewHelper->render();
42 }
43
44 /**
45 * @test
46 */
47 public function renderCorrectlySetsTypeNameAndValueAttributes() {
48 $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, array('addAttribute', 'setContent', 'render'), array(), '', FALSE);
49 $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('type', 'text');
50 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'NameOfTextfield');
51 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextfield');
52 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('value', 'Current value');
53 $mockTagBuilder->expects($this->once())->method('render');
54 $this->viewHelper->_set('tag', $mockTagBuilder);
55
56 $arguments = array(
57 'name' => 'NameOfTextfield',
58 'value' => 'Current value'
59 );
60 $this->viewHelper->setArguments($arguments);
61
62 $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
63 $this->viewHelper->initialize();
64 $this->viewHelper->render();
65 }
66
67 /**
68 * @test
69 */
70 public function renderCallsSetErrorClassAttribute() {
71 $this->viewHelper->expects($this->once())->method('setErrorClassAttribute');
72 $this->viewHelper->render();
73 }
74
75
76 /**
77 * @test
78 */
79 public function renderAddsPlaceholder() {
80 $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, array('addAttribute', 'setContent', 'render'), array(), '', FALSE);
81 $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('placeholder', 'SomePlaceholder');
82 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'text');
83 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'NameOfTextfield');
84 $mockTagBuilder->expects($this->once())->method('render');
85 $this->viewHelper->_set('tag', $mockTagBuilder);
86
87 $arguments = array(
88 'name' => 'NameOfTextfield',
89 'placeholder' => 'SomePlaceholder'
90 );
91 $this->viewHelper->setArguments($arguments);
92
93 $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
94 $this->viewHelper->initialize();
95 $this->viewHelper->render();
96 }
97
98 /**
99 * @test
100 */
101 public function renderCorrectlySetsRequiredAttribute() {
102 $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, array('addAttribute', 'setContent', 'render'), array(), '', FALSE);
103 $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('type', 'text');
104 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'NameOfTextfield');
105 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextfield');
106 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('value', 'Current value');
107 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('required', 'required');
108 $mockTagBuilder->expects($this->once())->method('render');
109 $this->viewHelper->_set('tag', $mockTagBuilder);
110
111 $arguments = array(
112 'name' => 'NameOfTextfield',
113 'value' => 'Current value'
114 );
115 $this->viewHelper->setArguments($arguments);
116
117 $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
118 $this->viewHelper->initialize();
119 $this->viewHelper->render(TRUE);
120 }
121 }