|
TYPO3 API
SVNRelease
|
00001 <?php 00002 00003 /* * 00004 * This script belongs to the FLOW3 package "Fluid". * 00005 * * 00006 * It is free software; you can redistribute it and/or modify it under * 00007 * the terms of the GNU Lesser General Public License as published by the * 00008 * Free Software Foundation, either version 3 of the License, or (at your * 00009 * option) any later version. * 00010 * * 00011 * This script is distributed in the hope that it will be useful, but * 00012 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- * 00013 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser * 00014 * General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU Lesser General Public * 00017 * License along with the script. * 00018 * If not, see http://www.gnu.org/licenses/lgpl.html * 00019 * * 00020 * The TYPO3 project - inspiring people to share! * 00021 * */ 00022 00023 require_once(dirname(__FILE__) . '/../ViewHelperBaseTestcase.php'); 00024 00025 /** 00026 * Test for the "Radio" Form view helper 00027 * 00028 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later 00029 */ 00030 class Tx_Fluid_Tests_Unit_ViewHelpers_Form_RadioViewHelperTest extends Tx_Fluid_ViewHelpers_ViewHelperBaseTestcase { 00031 00032 /** 00033 * var Tx_Fluid_ViewHelpers_Form_RadioViewHelper 00034 */ 00035 protected $viewHelper; 00036 00037 public function setUp() { 00038 parent::setUp(); 00039 $this->viewHelper = $this->getAccessibleMock('Tx_Fluid_ViewHelpers_Form_RadioViewHelper', array('setErrorClassAttribute', 'getName', 'getValue', 'isObjectAccessorMode', 'getPropertyValue', 'registerFieldNameForFormTokenGeneration')); 00040 $this->injectDependenciesIntoViewHelper($this->viewHelper); 00041 $this->viewHelper->initializeArguments(); 00042 } 00043 00044 /** 00045 * @test 00046 * @author Bastian Waidelich <bastian@typo3.org> 00047 */ 00048 public function renderCorrectlySetsTagNameAndDefaultAttributes() { 00049 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00050 $mockTagBuilder->expects($this->once())->method('setTagName')->with('input'); 00051 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00052 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00053 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('foo'); 00054 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00055 00056 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00057 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00058 $this->viewHelper->_set('tag', $mockTagBuilder); 00059 00060 $this->viewHelper->initialize(); 00061 $this->viewHelper->render(); 00062 } 00063 00064 /** 00065 * @test 00066 * @author Bastian Waidelich <bastian@typo3.org> 00067 */ 00068 public function renderSetsCheckedAttributeIfSpecified() { 00069 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00070 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00071 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00072 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('foo'); 00073 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00074 $mockTagBuilder->expects($this->at(4))->method('addAttribute')->with('checked', 'checked'); 00075 00076 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00077 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00078 $this->viewHelper->_set('tag', $mockTagBuilder); 00079 00080 $this->viewHelper->initialize(); 00081 $this->viewHelper->render(TRUE); 00082 } 00083 00084 /** 00085 * @test 00086 * @author Bastian Waidelich <bastian@typo3.org> 00087 */ 00088 public function renderIgnoresBoundPropertyIfCheckedIsSet() { 00089 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00090 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00091 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00092 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00093 00094 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00095 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00096 $this->viewHelper->expects($this->never())->method('isObjectAccessorMode')->will($this->returnValue(TRUE)); 00097 $this->viewHelper->expects($this->never())->method('getPropertyValue')->will($this->returnValue(TRUE)); 00098 $this->viewHelper->_set('tag', $mockTagBuilder); 00099 00100 $this->viewHelper->initialize(); 00101 $this->viewHelper->render(TRUE); 00102 $this->viewHelper->render(FALSE); 00103 } 00104 00105 /** 00106 * @test 00107 * @author Bastian Waidelich <bastian@typo3.org> 00108 */ 00109 public function renderCorrectlySetsCheckedAttributeIfCheckboxIsBoundToAPropertyOfTypeBoolean() { 00110 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00111 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00112 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00113 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('foo'); 00114 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00115 $mockTagBuilder->expects($this->at(4))->method('addAttribute')->with('checked', 'checked'); 00116 00117 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00118 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00119 $this->viewHelper->expects($this->any())->method('isObjectAccessorMode')->will($this->returnValue(TRUE)); 00120 $this->viewHelper->expects($this->any())->method('getPropertyValue')->will($this->returnValue(TRUE)); 00121 $this->viewHelper->_set('tag', $mockTagBuilder); 00122 00123 $this->viewHelper->initialize(); 00124 $this->viewHelper->render(); 00125 } 00126 00127 /** 00128 * @test 00129 * @author Bastian Waidelich <bastian@typo3.org> 00130 */ 00131 public function renderDoesNotAppendSquareBracketsToNameAttributeIfBoundToAPropertyOfTypeArray() { 00132 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00133 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00134 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00135 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('foo'); 00136 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00137 00138 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00139 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00140 $this->viewHelper->expects($this->any())->method('isObjectAccessorMode')->will($this->returnValue(TRUE)); 00141 $this->viewHelper->expects($this->any())->method('getPropertyValue')->will($this->returnValue(array())); 00142 $this->viewHelper->_set('tag', $mockTagBuilder); 00143 00144 $this->viewHelper->initialize(); 00145 $this->viewHelper->render(); 00146 } 00147 00148 /** 00149 * @test 00150 * @author Bastian Waidelich <bastian@typo3.org> 00151 */ 00152 public function renderCorrectlySetsCheckedAttributeIfCheckboxIsBoundToAPropertyOfTypeString() { 00153 $mockTagBuilder = $this->getMock('Tx_Fluid_Core_ViewHelper_TagBuilder', array('setTagName', 'addAttribute')); 00154 $mockTagBuilder->expects($this->at(1))->method('addAttribute')->with('type', 'radio'); 00155 $mockTagBuilder->expects($this->at(2))->method('addAttribute')->with('name', 'foo'); 00156 $this->viewHelper->expects($this->once())->method('registerFieldNameForFormTokenGeneration')->with('foo'); 00157 $mockTagBuilder->expects($this->at(3))->method('addAttribute')->with('value', 'bar'); 00158 $mockTagBuilder->expects($this->at(4))->method('addAttribute')->with('checked', 'checked'); 00159 00160 $this->viewHelper->expects($this->any())->method('getName')->will($this->returnValue('foo')); 00161 $this->viewHelper->expects($this->any())->method('getValue')->will($this->returnValue('bar')); 00162 $this->viewHelper->expects($this->any())->method('isObjectAccessorMode')->will($this->returnValue(TRUE)); 00163 $this->viewHelper->expects($this->any())->method('getPropertyValue')->will($this->returnValue('bar')); 00164 $this->viewHelper->_set('tag', $mockTagBuilder); 00165 00166 $this->viewHelper->initialize(); 00167 $this->viewHelper->render(); 00168 } 00169 00170 /** 00171 * @test 00172 * @author Bastian Waidelich <bastian@typo3.org> 00173 */ 00174 public function renderCallsSetErrorClassAttribute() { 00175 $this->viewHelper->expects($this->once())->method('setErrorClassAttribute'); 00176 $this->viewHelper->render(); 00177 } 00178 } 00179 00180 ?>
1.8.0