TYPO3 CMS  TYPO3_7-6
TextfieldViewHelperTest.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\TextfieldViewHelper::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('input');
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->at(0))->method('addAttribute')->with('type', 'text');
53  $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'NameOfTextfield');
54  $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextfield');
55  $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('value', 'Current value');
56  $mockTagBuilder->expects($this->once())->method('render');
57  $this->viewHelper->_set('tag', $mockTagBuilder);
58 
59  $arguments = [
60  'name' => 'NameOfTextfield',
61  'value' => 'Current value'
62  ];
63  $this->viewHelper->setArguments($arguments);
64 
65  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
66  $this->viewHelper->initialize();
67  $this->viewHelper->render();
68  }
69 
74  {
75  $this->viewHelper->expects($this->once())->method('setErrorClassAttribute');
76  $this->viewHelper->render();
77  }
78 
82  public function renderAddsPlaceholder()
83  {
84  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
85  $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('placeholder', 'SomePlaceholder');
86  $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'text');
87  $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'NameOfTextfield');
88  $mockTagBuilder->expects($this->once())->method('render');
89  $this->viewHelper->_set('tag', $mockTagBuilder);
90 
91  $arguments = [
92  'name' => 'NameOfTextfield',
93  'placeholder' => 'SomePlaceholder'
94  ];
95  $this->viewHelper->setArguments($arguments);
96 
97  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
98  $this->viewHelper->initialize();
99  $this->viewHelper->render();
100  }
101 
106  {
107  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
108  $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('type', 'text');
109  $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'NameOfTextfield');
110  $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('NameOfTextfield');
111  $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('value', 'Current value');
112  $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('required', 'required');
113  $mockTagBuilder->expects($this->once())->method('render');
114  $this->viewHelper->_set('tag', $mockTagBuilder);
115 
116  $arguments = [
117  'name' => 'NameOfTextfield',
118  'value' => 'Current value'
119  ];
120  $this->viewHelper->setArguments($arguments);
121 
122  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
123  $this->viewHelper->initialize();
124  $this->viewHelper->render(true);
125  }
126 }
getAccessibleMock( $originalClassName, $methods=[], array $arguments=[], $mockClassName='', $callOriginalConstructor=true, $callOriginalClone=true, $callAutoload=true)
injectDependenciesIntoViewHelper(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper $viewHelper)