TYPO3 CMS  TYPO3_7-6
UploadViewHelperTest.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\UploadViewHelper::class, ['setErrorClassAttribute', 'registerFieldNameForFormTokenGeneration']);
28  $this->arguments['name'] = '';
29  $this->injectDependenciesIntoViewHelper($this->viewHelper);
30  $this->viewHelper->initializeArguments();
31  }
32 
36  public function renderCorrectlySetsTagName()
37  {
38  $this->tagBuilder->expects($this->once())->method('setTagName')->with('input');
39 
40  $this->viewHelper->initialize();
41  $this->viewHelper->render();
42  }
43 
48  {
49  $mockTagBuilder = $this->getMock(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class, ['addAttribute', 'setContent', 'render'], [], '', false);
50  $mockTagBuilder->expects($this->at(0))->method('addAttribute')->with('type', 'file');
51  $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('name', 'someName');
52  $this->viewHelper->expects($this->at(0))->method('registerFieldNameForFormTokenGeneration')->with('someName[name]');
53  $this->viewHelper->expects($this->at(1))->method('registerFieldNameForFormTokenGeneration')->with('someName[type]');
54  $this->viewHelper->expects($this->at(2))->method('registerFieldNameForFormTokenGeneration')->with('someName[tmp_name]');
55  $this->viewHelper->expects($this->at(3))->method('registerFieldNameForFormTokenGeneration')->with('someName[error]');
56  $this->viewHelper->expects($this->at(4))->method('registerFieldNameForFormTokenGeneration')->with('someName[size]');
57  $mockTagBuilder->expects($this->once())->method('render');
58  $this->viewHelper->_set('tag', $mockTagBuilder);
59  $arguments = [
60  'name' => 'someName'
61  ];
62  $this->viewHelper->setArguments($arguments);
63  $this->viewHelper->setViewHelperNode(new \TYPO3\CMS\Fluid\Tests\Unit\ViewHelpers\Form\Fixtures\EmptySyntaxTreeNode());
64  $this->viewHelper->initialize();
65  $this->viewHelper->render();
66  }
67 
72  {
73  $this->viewHelper->expects($this->once())->method('setErrorClassAttribute');
74  $this->viewHelper->render();
75  }
76 
80  public function renderSetsAttributeNameAsArrayIfMultipleIsGiven()
81  {
83  $tagBuilder = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder::class);
84  $tagBuilder->addAttribute('multiple', 'multiple');
85  $this->viewHelper->_set('tag', $tagBuilder);
86  $arguments = [
87  'name' => 'someName',
88  'multiple' => 'multiple'
89  ];
90  $this->viewHelper->setArguments($arguments);
91  $this->viewHelper->initialize();
92  $result = $this->viewHelper->render();
93  $this->assertEquals('<input multiple="multiple" type="file" name="someName[]" />', $result);
94  }
95 }
getAccessibleMock( $originalClassName, $methods=[], array $arguments=[], $mockClassName='', $callOriginalConstructor=true, $callOriginalClone=true, $callAutoload=true)
injectDependenciesIntoViewHelper(\TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper $viewHelper)