PageRenderTime 58ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/testapp/tests-jelix/jelix/forms/jforms_htmllightbuilderTest.php

https://github.com/gmarrot/jelix
PHP | 1461 lines | 1212 code | 238 blank | 11 comment | 1 complexity | c2fd090ac116231aeff80144c28f6122 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. * @package testapp
  4. * @subpackage unittest module
  5. * @author Laurent Jouanneau
  6. * @contributor Dominique Papin, Julien Issler
  7. * @copyright 2007-2008 Laurent Jouanneau
  8. * @copyright 2008 Dominique Papin
  9. * @copyright 2008-2009 Julien Issler
  10. * @link http://www.jelix.org
  11. * @licence GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  12. */
  13. require_once(JELIX_LIB_PATH.'forms/jFormsBase.class.php');
  14. require_once(JELIX_LIB_PATH.'forms/legacy/jFormsBuilderBase.class.php');
  15. include_once(JELIX_LIB_PATH.'forms/legacy/jFormsBuilderHtml.class.php');
  16. require_once(JELIX_LIB_PATH.'forms/jFormsDataContainer.class.php');
  17. require_once(JELIX_LIB_PATH.'plugins/jforms/htmllight/htmllight.jformsbuilder.php');
  18. class testHtmlLightForm extends jFormsBase {
  19. }
  20. class testJFormsHtmlLightBuilder extends htmllightJformsBuilder {
  21. function getJsContent() { $js= $this->jsContent; $this->jsContent = '';return $js;}
  22. function clearJs() { $this->jsContent = ''; }
  23. }
  24. class jforms_HtmlLightBuilderTest extends jUnitTestCaseDb {
  25. protected static $form;
  26. protected static $container;
  27. protected static $builder;
  28. protected static $formname = 'jforms_formtest1';
  29. function setUp() {
  30. self::initClassicRequest(TESTAPP_URL.'index.php');
  31. jApp::pushCurrentModule('jelix_tests');
  32. if (!self::$builder) {
  33. self::$container = new jFormsDataContainer('formtestlight','');
  34. self::$form = new testHtmlLightForm('formtestlight', self::$container, true );
  35. self::$form->securityLevel = 0;
  36. self::$builder = new testJFormsHtmlLightBuilder(self::$form);
  37. }
  38. }
  39. function tearDown(){
  40. jApp::popCurrentModule();
  41. }
  42. function testOutputHeader(){
  43. self::$builder->setAction('jelix_tests~urlsig:url1',array());
  44. ob_start();
  45. self::$builder->setOptions(array('method'=>'post'));
  46. self::$builder->outputHeader();
  47. $out = ob_get_clean();
  48. $result ='<form action="'.jApp::config()->urlengine['basePath'].'index.php/jelix_tests/urlsig/url1" method="post" id="'.self::$builder->getName().'"><script type="text/javascript">
  49. //<![CDATA[
  50. jForms.tForm = new jFormsForm(\'jforms_formtestlight\');
  51. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorHtml());
  52. jForms.declareForm(jForms.tForm);
  53. //]]>
  54. </script>';
  55. $this->assertEquals($result, $out);
  56. $this->assertEquals('', self::$builder->getJsContent());
  57. self::$builder->setAction('jelix_tests~urlsig:url1',array('foo'=>'b>ar'));
  58. ob_start();
  59. self::$builder->setOptions(array('method'=>'get'));
  60. self::$builder->outputHeader();
  61. $out = ob_get_clean();
  62. $result ='<form action="'.jApp::config()->urlengine['basePath'].'index.php/jelix_tests/urlsig/url1" method="get" id="'.self::$builder->getName().'"><script type="text/javascript">
  63. //<![CDATA[
  64. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  65. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorHtml());
  66. jForms.declareForm(jForms.tForm);
  67. //]]>
  68. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  69. </div>';
  70. $this->assertEquals($result, $out);
  71. self::$formname = self::$builder->getName();
  72. $this->assertEquals('', self::$builder->getJsContent());
  73. }
  74. function testOutputFooter(){
  75. ob_start();
  76. self::$builder->outputFooter();
  77. $out = ob_get_clean();
  78. $this->assertEquals('<script type="text/javascript">
  79. //<![CDATA[
  80. (function(){var c, c2;
  81. })();
  82. //]]>
  83. </script></form>', $out);
  84. }
  85. function testOutputInput(){
  86. $ctrl= new jFormsControlinput('input1');
  87. $ctrl->datatype= new jDatatypeString();
  88. $ctrl->label='Votre nom';
  89. self::$form->addControl($ctrl);
  90. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  91. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_input1" id="'.self::$formname.'_input1_label">Votre nom</label>'."\n", $out);
  92. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  93. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="" type="text"/>'."\n", $out);
  94. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  95. c.errInvalid=\'"Votre nom" field is invalid\';
  96. jForms.tForm.addControl(c);
  97. ', self::$builder->getJsContent());
  98. self::$form->setData('input1','toto');
  99. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  100. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="toto" type="text"/>'."\n", $out);
  101. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  102. c.errInvalid=\'"Votre nom" field is invalid\';
  103. jForms.tForm.addControl(c);
  104. ', self::$builder->getJsContent());
  105. $ctrl->defaultValue='laurent';
  106. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  107. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="toto" type="text"/>'."\n", $out);
  108. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  109. c.errInvalid=\'"Votre nom" field is invalid\';
  110. jForms.tForm.addControl(c);
  111. ', self::$builder->getJsContent());
  112. self::$form->removeControl($ctrl->ref);
  113. self::$form->addControl($ctrl);
  114. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  115. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="laurent" type="text"/>'."\n", $out);
  116. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  117. c.errInvalid=\'"Votre nom" field is invalid\';
  118. jForms.tForm.addControl(c);
  119. ', self::$builder->getJsContent());
  120. $ctrl->required=true;
  121. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  122. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input jforms-required" value="laurent" type="text"/>'."\n", $out);
  123. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  124. c.required = true;
  125. c.errRequired=\'"Votre nom" field is required\';
  126. c.errInvalid=\'"Votre nom" field is invalid\';
  127. jForms.tForm.addControl(c);
  128. ', self::$builder->getJsContent());
  129. $ctrl->setReadOnly(true);
  130. $ctrl->required=false;
  131. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  132. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" readonly="readonly" class="jforms-ctrl-input jforms-readonly" value="laurent" type="text"/>'."\n", $out);
  133. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  134. c.readOnly = true;
  135. c.errInvalid=\'"Votre nom" field is invalid\';
  136. jForms.tForm.addControl(c);
  137. ', self::$builder->getJsContent());
  138. $ctrl->setReadOnly(false);
  139. $ctrl->help='some help';
  140. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  141. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="laurent" type="text"/>'."\n".'<span class="jforms-help" id="jforms_formtestlight1_input1-help">&nbsp;<span>some help</span></span>', $out);
  142. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  143. c.errInvalid=\'"Votre nom" field is invalid\';
  144. jForms.tForm.addControl(c);
  145. ', self::$builder->getJsContent());
  146. $ctrl->help="some \nhelp with ' and\nline break.";
  147. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  148. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" value="laurent" type="text"/>'."\n".'<span class="jforms-help" id="jforms_formtestlight1_input1-help">'."&nbsp;<span>some \nhelp with ' and\nline break.</span>".'</span>', $out);
  149. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  150. c.errInvalid=\'"Votre nom" field is invalid\';
  151. jForms.tForm.addControl(c);
  152. ', self::$builder->getJsContent());
  153. $ctrl->hint='ceci est un tooltip';
  154. $ctrl->help='some help';
  155. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  156. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_input1" id="'.self::$formname.'_input1_label" title="ceci est un tooltip">Votre nom</label>'."\n", $out);
  157. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  158. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" title="ceci est un tooltip" class="jforms-ctrl-input" value="laurent" type="text"/>'."\n".'<span class="jforms-help" id="jforms_formtestlight1_input1-help">&nbsp;<span>some help</span></span>', $out);
  159. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  160. c.errInvalid=\'"Votre nom" field is invalid\';
  161. jForms.tForm.addControl(c);
  162. ', self::$builder->getJsContent());
  163. $ctrl->help='';
  164. $ctrl->hint='';
  165. $ctrl->datatype->addFacet('maxLength',5);
  166. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  167. $this->assertEquals('<input name="input1" id="'.self::$formname.'_input1" class="jforms-ctrl-input" maxlength="5" value="laurent" type="text"/>'."\n", $out);
  168. $this->assertEquals('c = new jFormsControlString(\'input1\', \'Votre nom\');
  169. c.maxLength = \'5\';
  170. c.errInvalid=\'"Votre nom" field is invalid\';
  171. jForms.tForm.addControl(c);
  172. ', self::$builder->getJsContent());
  173. }
  174. function testOutputCheckbox(){
  175. $ctrl= new jFormsControlCheckbox('chk1');
  176. $ctrl->datatype= new jDatatypeString();
  177. $ctrl->label='Une option';
  178. self::$form->addControl($ctrl);
  179. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  180. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_chk1" id="'.self::$formname.'_chk1_label">Une option</label>'."\n", $out);
  181. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  182. $this->assertEquals('<input name="chk1" id="'.self::$formname.'_chk1" class="jforms-ctrl-checkbox" value="1" type="checkbox"/>'."\n", $out);
  183. $this->assertEquals('c = new jFormsControlBoolean(\'chk1\', \'Une option\');
  184. c.errInvalid=\'"Une option" field is invalid\';
  185. jForms.tForm.addControl(c);
  186. ', self::$builder->getJsContent());
  187. self::$form->setData('chk1','1');
  188. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  189. $this->assertEquals('<input name="chk1" id="'.self::$formname.'_chk1" class="jforms-ctrl-checkbox" checked="checked" value="1" type="checkbox"/>'."\n", $out);
  190. $this->assertEquals('c = new jFormsControlBoolean(\'chk1\', \'Une option\');
  191. c.errInvalid=\'"Une option" field is invalid\';
  192. jForms.tForm.addControl(c);
  193. ', self::$builder->getJsContent());
  194. $ctrl= new jFormsControlCheckbox('chk2');
  195. $ctrl->datatype= new jDatatypeString();
  196. $ctrl->label='Une option';
  197. self::$form->addControl($ctrl);
  198. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  199. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_chk2" id="'.self::$formname.'_chk2_label">Une option</label>'."\n", $out);
  200. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  201. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" class="jforms-ctrl-checkbox" value="1" type="checkbox"/>'."\n", $out);
  202. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  203. c.errInvalid=\'"Une option" field is invalid\';
  204. jForms.tForm.addControl(c);
  205. ', self::$builder->getJsContent());
  206. $ctrl->defaultValue='1';
  207. self::$form->removeControl($ctrl->ref);
  208. self::$form->addControl($ctrl);
  209. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  210. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" class="jforms-ctrl-checkbox" checked="checked" value="1" type="checkbox"/>'."\n", $out);
  211. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  212. c.errInvalid=\'"Une option" field is invalid\';
  213. jForms.tForm.addControl(c);
  214. ', self::$builder->getJsContent());
  215. self::$form->setData('chk2', '0');
  216. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  217. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" class="jforms-ctrl-checkbox" value="1" type="checkbox"/>'."\n", $out);
  218. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  219. c.errInvalid=\'"Une option" field is invalid\';
  220. jForms.tForm.addControl(c);
  221. ', self::$builder->getJsContent());
  222. $ctrl->setReadOnly(true);
  223. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  224. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" readonly="readonly" class="jforms-ctrl-checkbox jforms-readonly" value="1" type="checkbox"/>'."\n", $out);
  225. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  226. c.readOnly = true;
  227. c.errInvalid=\'"Une option" field is invalid\';
  228. jForms.tForm.addControl(c);
  229. ', self::$builder->getJsContent());
  230. self::$form->setData('chk2', '1');
  231. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  232. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" readonly="readonly" class="jforms-ctrl-checkbox jforms-readonly" checked="checked" value="1" type="checkbox"/>'."\n", $out);
  233. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  234. c.readOnly = true;
  235. c.errInvalid=\'"Une option" field is invalid\';
  236. jForms.tForm.addControl(c);
  237. ', self::$builder->getJsContent());
  238. $ctrl->hint='ceci est un tooltip';
  239. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  240. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_chk2" id="'.self::$formname.'_chk2_label" title="ceci est un tooltip">Une option</label>'."\n", $out);
  241. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  242. $this->assertEquals('<input name="chk2" id="'.self::$formname.'_chk2" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-checkbox jforms-readonly" checked="checked" value="1" type="checkbox"/>'."\n", $out);
  243. $this->assertEquals('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  244. c.readOnly = true;
  245. c.errInvalid=\'"Une option" field is invalid\';
  246. jForms.tForm.addControl(c);
  247. ', self::$builder->getJsContent());
  248. }
  249. function testOutputCheckboxes(){
  250. $ctrl= new jFormsControlcheckboxes('choixsimple');
  251. $ctrl->datatype= new jDatatypeString();
  252. $ctrl->label='Vos choix';
  253. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  254. self::$form->addControl($ctrl);
  255. $records = array(
  256. array('id'=>'10', 'name'=>'foo', 'price'=>'12'),
  257. array('id'=>'11', 'name'=>'bar', 'price'=>'54'),
  258. array('id'=>'23', 'name'=>'baz', 'price'=>'97'),
  259. );
  260. $this->insertRecordsIntoTable('product_test', array('id','name','price'), $records, true);
  261. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  262. $this->assertEquals('<span class="jforms-label" id="'.self::$formname.'_choixsimple_label">Vos choix</span>'."\n", $out);
  263. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  264. $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_0" class="jforms-ctrl-checkboxes" value="10"/><label for="'.self::$formname.'_choixsimple_0">foo</label></span>'."\n";
  265. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_1" class="jforms-ctrl-checkboxes" value="11"/><label for="'.self::$formname.'_choixsimple_1">bar</label></span>'."\n";
  266. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_2" class="jforms-ctrl-checkboxes" value="23"/><label for="'.self::$formname.'_choixsimple_2">baz</label></span>'."\n\n";
  267. $this->assertEquals($result, $out);
  268. $this->assertEquals('c = new jFormsControlString(\'choixsimple[]\', \'Vos choix\');
  269. c.errInvalid=\'"Vos choix" field is invalid\';
  270. jForms.tForm.addControl(c);
  271. ', self::$builder->getJsContent());
  272. self::$form->setData('choixsimple',11);
  273. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  274. $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_0" class="jforms-ctrl-checkboxes" value="10"/><label for="'.self::$formname.'_choixsimple_0">foo</label></span>'."\n";
  275. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_1" class="jforms-ctrl-checkboxes" value="11" checked="checked"/><label for="'.self::$formname.'_choixsimple_1">bar</label></span>'."\n";
  276. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$formname.'_choixsimple_2" class="jforms-ctrl-checkboxes" value="23"/><label for="'.self::$formname.'_choixsimple_2">baz</label></span>'."\n\n";
  277. $this->assertEquals($result, $out);
  278. $this->assertEquals('c = new jFormsControlString(\'choixsimple[]\', \'Vos choix\');
  279. c.errInvalid=\'"Vos choix" field is invalid\';
  280. jForms.tForm.addControl(c);
  281. ', self::$builder->getJsContent());
  282. $ctrl= new jFormsControlcheckboxes('choixmultiple');
  283. $ctrl->datatype= new jDatatypeString();
  284. $ctrl->label='Vos choix';
  285. $ctrl->datasource= new jFormsStaticDatasource();
  286. $ctrl->datasource->data = array(
  287. '10'=>'foo',
  288. '11'=>'bar',
  289. '23'=>'baz',
  290. );
  291. self::$form->addControl($ctrl);
  292. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  293. $this->assertEquals('<span class="jforms-label" id="'.self::$formname.'_choixmultiple_label">Vos choix</span>'."\n", $out);
  294. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  295. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_0" class="jforms-ctrl-checkboxes" value="10"/><label for="'.self::$formname.'_choixmultiple_0">foo</label></span>'."\n";
  296. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_1" class="jforms-ctrl-checkboxes" value="11"/><label for="'.self::$formname.'_choixmultiple_1">bar</label></span>'."\n";
  297. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_2" class="jforms-ctrl-checkboxes" value="23"/><label for="'.self::$formname.'_choixmultiple_2">baz</label></span>'."\n\n";
  298. $this->assertEquals($result, $out);
  299. $this->assertEquals('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  300. c.errInvalid=\'"Vos choix" field is invalid\';
  301. jForms.tForm.addControl(c);
  302. ', self::$builder->getJsContent());
  303. self::$form->setData('choixmultiple',11);
  304. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  305. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_0" class="jforms-ctrl-checkboxes" value="10"/><label for="'.self::$formname.'_choixmultiple_0">foo</label></span>'."\n";
  306. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_1" class="jforms-ctrl-checkboxes" value="11" checked="checked"/><label for="'.self::$formname.'_choixmultiple_1">bar</label></span>'."\n";
  307. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_2" class="jforms-ctrl-checkboxes" value="23"/><label for="'.self::$formname.'_choixmultiple_2">baz</label></span>'."\n\n";
  308. $this->assertEquals($result, $out);
  309. $this->assertEquals('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  310. c.errInvalid=\'"Vos choix" field is invalid\';
  311. jForms.tForm.addControl(c);
  312. ', self::$builder->getJsContent());
  313. self::$form->setData('choixmultiple',array(10,23));
  314. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  315. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_0" class="jforms-ctrl-checkboxes" value="10" checked="checked"/><label for="'.self::$formname.'_choixmultiple_0">foo</label></span>'."\n";
  316. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_1" class="jforms-ctrl-checkboxes" value="11"/><label for="'.self::$formname.'_choixmultiple_1">bar</label></span>'."\n";
  317. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_2" class="jforms-ctrl-checkboxes" value="23" checked="checked"/><label for="'.self::$formname.'_choixmultiple_2">baz</label></span>'."\n\n";
  318. $this->assertEquals($result, $out);
  319. $this->assertEquals('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  320. c.errInvalid=\'"Vos choix" field is invalid\';
  321. jForms.tForm.addControl(c);
  322. ', self::$builder->getJsContent());
  323. $ctrl->setReadOnly(true);
  324. $ctrl->hint='ceci est un tooltip';
  325. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  326. $this->assertEquals('<span class="jforms-label" id="'.self::$formname.'_choixmultiple_label" title="ceci est un tooltip">Vos choix</span>'."\n", $out);
  327. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  328. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_0" readonly="readonly" class="jforms-ctrl-checkboxes jforms-readonly" value="10" checked="checked"/><label for="'.self::$formname.'_choixmultiple_0">foo</label></span>'."\n";
  329. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_1" readonly="readonly" class="jforms-ctrl-checkboxes jforms-readonly" value="11"/><label for="'.self::$formname.'_choixmultiple_1">bar</label></span>'."\n";
  330. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$formname.'_choixmultiple_2" readonly="readonly" class="jforms-ctrl-checkboxes jforms-readonly" value="23" checked="checked"/><label for="'.self::$formname.'_choixmultiple_2">baz</label></span>'."\n\n";
  331. $this->assertEquals($result, $out);
  332. $this->assertEquals('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  333. c.readOnly = true;
  334. c.errInvalid=\'"Vos choix" field is invalid\';
  335. jForms.tForm.addControl(c);
  336. ', self::$builder->getJsContent());
  337. }
  338. function testOutputRadiobuttons(){
  339. $ctrl= new jFormsControlradiobuttons('rbchoixsimple');
  340. $ctrl->datatype= new jDatatypeString();
  341. $ctrl->label='Votre choix';
  342. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  343. self::$form->addControl($ctrl);
  344. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  345. $this->assertEquals('<span class="jforms-label" id="'.self::$formname.'_rbchoixsimple_label">Votre choix</span>'."\n", $out);
  346. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  347. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="10"/><label for="'.self::$formname.'_rbchoixsimple_0">foo</label></span>'."\n";
  348. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="11"/><label for="'.self::$formname.'_rbchoixsimple_1">bar</label></span>'."\n";
  349. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_2" class="jforms-ctrl-radiobuttons" value="23"/><label for="'.self::$formname.'_rbchoixsimple_2">baz</label></span>'."\n\n";
  350. $this->assertEquals($result, $out);
  351. $this->assertEquals('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  352. c.errInvalid=\'"Votre choix" field is invalid\';
  353. jForms.tForm.addControl(c);
  354. ', self::$builder->getJsContent());
  355. self::$form->setData('rbchoixsimple',11);
  356. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  357. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="10"/><label for="'.self::$formname.'_rbchoixsimple_0">foo</label></span>'."\n";
  358. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="11" checked="checked"/><label for="'.self::$formname.'_rbchoixsimple_1">bar</label></span>'."\n";
  359. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_2" class="jforms-ctrl-radiobuttons" value="23"/><label for="'.self::$formname.'_rbchoixsimple_2">baz</label></span>'."\n\n";
  360. $this->assertEquals($result, $out);
  361. $this->assertEquals('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  362. c.errInvalid=\'"Votre choix" field is invalid\';
  363. jForms.tForm.addControl(c);
  364. ', self::$builder->getJsContent());
  365. $ctrl->datasource= new jFormsStaticDatasource();
  366. $ctrl->datasource->data = array(
  367. '10'=>'foo',
  368. '11'=>'bar',
  369. '23'=>'baz',
  370. );
  371. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  372. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="10"/><label for="'.self::$formname.'_rbchoixsimple_0">foo</label></span>'."\n";
  373. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="11" checked="checked"/><label for="'.self::$formname.'_rbchoixsimple_1">bar</label></span>'."\n";
  374. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_2" class="jforms-ctrl-radiobuttons" value="23"/><label for="'.self::$formname.'_rbchoixsimple_2">baz</label></span>'."\n\n";
  375. $this->assertEquals($result, $out);
  376. $this->assertEquals('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  377. c.errInvalid=\'"Votre choix" field is invalid\';
  378. jForms.tForm.addControl(c);
  379. ', self::$builder->getJsContent());
  380. self::$form->setData('rbchoixsimple',23);
  381. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  382. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="10"/><label for="'.self::$formname.'_rbchoixsimple_0">foo</label></span>'."\n";
  383. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="11"/><label for="'.self::$formname.'_rbchoixsimple_1">bar</label></span>'."\n";
  384. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_2" class="jforms-ctrl-radiobuttons" value="23" checked="checked"/><label for="'.self::$formname.'_rbchoixsimple_2">baz</label></span>'."\n\n";
  385. $this->assertEquals($result, $out);
  386. $this->assertEquals('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  387. c.errInvalid=\'"Votre choix" field is invalid\';
  388. jForms.tForm.addControl(c);
  389. ', self::$builder->getJsContent());
  390. $ctrl->setReadOnly(true);
  391. $ctrl->hint='ceci est un tooltip';
  392. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  393. $this->assertEquals('<span class="jforms-label" id="'.self::$formname.'_rbchoixsimple_label" title="ceci est un tooltip">Votre choix</span>'."\n", $out);
  394. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  395. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" readonly="readonly" class="jforms-ctrl-radiobuttons jforms-readonly" value="10"/><label for="'.self::$formname.'_rbchoixsimple_0">foo</label></span>'."\n";
  396. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" readonly="readonly" class="jforms-ctrl-radiobuttons jforms-readonly" value="11"/><label for="'.self::$formname.'_rbchoixsimple_1">bar</label></span>'."\n";
  397. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_2" readonly="readonly" class="jforms-ctrl-radiobuttons jforms-readonly" value="23" checked="checked"/><label for="'.self::$formname.'_rbchoixsimple_2">baz</label></span>'."\n\n";
  398. $this->assertEquals($result, $out);
  399. $this->assertEquals('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  400. c.readOnly = true;
  401. c.errInvalid=\'"Votre choix" field is invalid\';
  402. jForms.tForm.addControl(c);
  403. ', self::$builder->getJsContent());
  404. self::$builder->clearJs();
  405. $ctrl->datasource = new jFormsStaticDatasource();
  406. $ctrl->datasource->data = array('1'=>'Yes','0'=>'No');
  407. self::$form->setReadOnly('rbchoixsimple',false);
  408. self::$form->setData('rbchoixsimple',null);
  409. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  410. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="1"/><label for="'.self::$formname.'_rbchoixsimple_0">Yes</label></span>'."\n";
  411. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="0"/><label for="'.self::$formname.'_rbchoixsimple_1">No</label></span>'."\n\n";
  412. $this->assertEquals($result, $out);
  413. self::$form->setData('rbchoixsimple',0);
  414. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  415. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_0" class="jforms-ctrl-radiobuttons" value="1"/><label for="'.self::$formname.'_rbchoixsimple_0">Yes</label></span>'."\n";
  416. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$formname.'_rbchoixsimple_1" class="jforms-ctrl-radiobuttons" value="0" checked="checked"/><label for="'.self::$formname.'_rbchoixsimple_1">No</label></span>'."\n\n";
  417. $this->assertEquals($result, $out);
  418. self::$builder->clearJs();
  419. }
  420. function testOutputMenulist(){
  421. $ctrl= new jFormsControlmenulist('menulist1');
  422. $ctrl->datatype= new jDatatypeString();
  423. $ctrl->label='Votre choix';
  424. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  425. self::$form->addControl($ctrl);
  426. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  427. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_menulist1" id="'.self::$formname.'_menulist1_label">Votre choix</label>'."\n", $out);
  428. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  429. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  430. $result.='<option value="" selected="selected"></option>'."\n";
  431. $result.='<option value="10">foo</option>'."\n";
  432. $result.='<option value="11">bar</option>'."\n";
  433. $result.='<option value="23">baz</option>'."\n";
  434. $result.='</select>'."\n";
  435. $this->assertEquals($result, $out);
  436. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  437. c.errInvalid=\'"Votre choix" field is invalid\';
  438. jForms.tForm.addControl(c);
  439. ', self::$builder->getJsContent());
  440. self::$form->setData('menulist1',11);
  441. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  442. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  443. $result.='<option value=""></option>'."\n";
  444. $result.='<option value="10">foo</option>'."\n";
  445. $result.='<option value="11" selected="selected">bar</option>'."\n";
  446. $result.='<option value="23">baz</option>'."\n";
  447. $result.='</select>'."\n";
  448. $this->assertEquals($result, $out);
  449. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  450. c.errInvalid=\'"Votre choix" field is invalid\';
  451. jForms.tForm.addControl(c);
  452. ', self::$builder->getJsContent());
  453. $ctrl->datasource= new jFormsStaticDatasource();
  454. $ctrl->datasource->data = array(
  455. '10'=>'foo',
  456. '11'=>'bar',
  457. '23'=>'baz',
  458. );
  459. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  460. $this->assertEquals($result, $out);
  461. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  462. c.errInvalid=\'"Votre choix" field is invalid\';
  463. jForms.tForm.addControl(c);
  464. ', self::$builder->getJsContent());
  465. $ctrl->setReadOnly(true);
  466. $ctrl->hint='ceci est un tooltip';
  467. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  468. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_menulist1" id="'.self::$formname.'_menulist1_label" title="ceci est un tooltip">Votre choix</label>'."\n", $out);
  469. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  470. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" title="ceci est un tooltip" class="jforms-ctrl-menulist jforms-readonly" disabled="disabled" size="1">'."\n";
  471. $result.='<option value=""></option>'."\n";
  472. $result.='<option value="10">foo</option>'."\n";
  473. $result.='<option value="11" selected="selected">bar</option>'."\n";
  474. $result.='<option value="23">baz</option>'."\n";
  475. $result.='</select>'."\n";
  476. $this->assertEquals($result, $out);
  477. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  478. c.readOnly = true;
  479. c.errInvalid=\'"Votre choix" field is invalid\';
  480. jForms.tForm.addControl(c);
  481. ', self::$builder->getJsContent());
  482. $ctrl->required = true;
  483. self::$form->setData('menulist1',"23");
  484. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  485. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" title="ceci est un tooltip" class="jforms-ctrl-menulist jforms-readonly" disabled="disabled" size="1">'."\n";
  486. $result.='<option value="10">foo</option>'."\n";
  487. $result.='<option value="11">bar</option>'."\n";
  488. $result.='<option value="23" selected="selected">baz</option>'."\n";
  489. $result.='</select>'."\n";
  490. $this->assertEquals($result, $out);
  491. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  492. c.readOnly = true;
  493. c.required = true;
  494. c.errRequired=\'"Votre choix" field is required\';
  495. c.errInvalid=\'"Votre choix" field is invalid\';
  496. jForms.tForm.addControl(c);
  497. ', self::$builder->getJsContent());
  498. $ctrl->required = false;
  499. self::$form->setData('menulist1',"");
  500. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  501. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" title="ceci est un tooltip" class="jforms-ctrl-menulist jforms-readonly" disabled="disabled" size="1">'."\n";
  502. $result.='<option value="" selected="selected"></option>'."\n";
  503. $result.='<option value="10">foo</option>'."\n";
  504. $result.='<option value="11">bar</option>'."\n";
  505. $result.='<option value="23">baz</option>'."\n";
  506. $result.='</select>'."\n";
  507. $this->assertEquals($result, $out);
  508. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  509. c.readOnly = true;
  510. c.errInvalid=\'"Votre choix" field is invalid\';
  511. jForms.tForm.addControl(c);
  512. ', self::$builder->getJsContent());
  513. $ctrl->setReadOnly(false);
  514. $ctrl->hint='';
  515. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','15');
  516. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  517. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  518. $result.='<option value="" selected="selected"></option>'."\n";
  519. $result.='<option value="10">foo</option>'."\n";
  520. $result.='<option value="11">bar</option>'."\n";
  521. $result.='</select>'."\n";
  522. $this->assertEquals($result, $out);
  523. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  524. c.errInvalid=\'"Votre choix" field is invalid\';
  525. jForms.tForm.addControl(c);
  526. ', self::$builder->getJsContent());
  527. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','11');
  528. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  529. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  530. $result.='<option value="" selected="selected"></option>'."\n";
  531. $result.='<option value="10">foo</option>'."\n";
  532. $result.='</select>'."\n";
  533. $this->assertEquals($result, $out);
  534. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  535. c.errInvalid=\'"Votre choix" field is invalid\';
  536. jForms.tForm.addControl(c);
  537. ', self::$builder->getJsContent());
  538. self::$form->setData('menulist1',"10");
  539. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  540. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  541. $result.='<option value=""></option>'."\n";
  542. $result.='<option value="10" selected="selected">foo</option>'."\n";
  543. $result.='</select>'."\n";
  544. $this->assertEquals($result, $out);
  545. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  546. c.errInvalid=\'"Votre choix" field is invalid\';
  547. jForms.tForm.addControl(c);
  548. ', self::$builder->getJsContent());
  549. self::$form->setData('menulist1',"");
  550. self::$form->addControl(new jFormsControlHidden('hidden1'));
  551. self::$form->setData('hidden1',"25");
  552. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','',null, 'hidden1');
  553. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  554. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  555. $result.='<option value="" selected="selected"></option>'."\n";
  556. $result.='<option value="10">foo</option>'."\n";
  557. $result.='<option value="11">bar</option>'."\n";
  558. $result.='<option value="23">baz</option>'."\n";
  559. $result.='</select>'."\n";
  560. $this->assertEquals($result, $out);
  561. $this->assertEquals('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  562. c.errInvalid=\'"Votre choix" field is invalid\';
  563. jForms.tForm.addControl(c);
  564. ', self::$builder->getJsContent());
  565. self::$form->setData('hidden1',"15");
  566. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  567. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  568. $result.='<option value="" selected="selected"></option>'."\n";
  569. $result.='<option value="10">foo</option>'."\n";
  570. $result.='<option value="11">bar</option>'."\n";
  571. $result.='</select>'."\n";
  572. $this->assertEquals($result, $out);
  573. self::$form->setData('menulist1',"10");
  574. self::$form->setData('hidden1',"11");
  575. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  576. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  577. $result.='<option value=""></option>'."\n";
  578. $result.='<option value="10" selected="selected">foo</option>'."\n";
  579. $result.='</select>'."\n";
  580. $this->assertEquals($result, $out);
  581. self::$form->setData('menulist1',"");
  582. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null);
  583. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  584. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  585. $result.='<option value="" selected="selected"></option>'."\n";
  586. $result.='<option value="10">foo12</option>'."\n";
  587. $result.='<option value="11">bar54</option>'."\n";
  588. $result.='<option value="23">baz97</option>'."\n";
  589. $result.='</select>'."\n";
  590. $this->assertEquals($result, $out);
  591. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null,' - ');
  592. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  593. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  594. $result.='<option value="" selected="selected"></option>'."\n";
  595. $result.='<option value="10">foo - 12</option>'."\n";
  596. $result.='<option value="11">bar - 54</option>'."\n";
  597. $result.='<option value="23">baz - 97</option>'."\n";
  598. $result.='</select>'."\n";
  599. $this->assertEquals($result, $out);
  600. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','9,25',null,' - ');
  601. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  602. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  603. $result.='<option value="" selected="selected"></option>'."\n";
  604. $result.='<option value="10">foo - 12</option>'."\n";
  605. $result.='<option value="11">bar - 54</option>'."\n";
  606. $result.='<option value="23">baz - 97</option>'."\n";
  607. $result.='</select>'."\n";
  608. $this->assertEquals($result, $out);
  609. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','10,25',null,' - ');
  610. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  611. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  612. $result.='<option value="" selected="selected"></option>'."\n";
  613. $result.='<option value="11">bar - 54</option>'."\n";
  614. $result.='<option value="23">baz - 97</option>'."\n";
  615. $result.='</select>'."\n";
  616. $this->assertEquals($result, $out);
  617. self::$form->addControl(new jFormsControlHidden('hidden2'));
  618. self::$form->setData('hidden1',"9");
  619. self::$form->setData('hidden2',"25");
  620. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  621. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  622. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  623. $result.='<option value="" selected="selected"></option>'."\n";
  624. $result.='<option value="10">foo - 12</option>'."\n";
  625. $result.='<option value="11">bar - 54</option>'."\n";
  626. $result.='<option value="23">baz - 97</option>'."\n";
  627. $result.='</select>'."\n";
  628. $this->assertEquals($result, $out);
  629. self::$form->setData('hidden1',"10");
  630. self::$form->setData('hidden2',"25");
  631. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  632. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  633. $result='<select name="menulist1" id="'.self::$formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  634. $result.='<option value="" selected="selected"></option>'."\n";
  635. $result.='<option value="11">bar - 54</option>'."\n";
  636. $result.='<option value="23">baz - 97</option>'."\n";
  637. $result.='</select>'."\n";
  638. $this->assertEquals($result, $out);
  639. self::$form->removeControl('hidden2');
  640. self::$form->setData('hidden1',"11");
  641. self::$builder->clearJs();
  642. }
  643. function testOutputListbox(){
  644. $ctrl= new jFormsControllistbox('listbox1');
  645. $ctrl->datatype= new jDatatypeString();
  646. $ctrl->label='Votre choix';
  647. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  648. self::$form->addControl($ctrl);
  649. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  650. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_listbox1" id="'.self::$formname.'_listbox1_label">Votre choix</label>'."\n", $out);
  651. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  652. $result='<select name="listbox1" id="'.self::$formname.'_listbox1" class="jforms-ctrl-listbox" size="4">'."\n";
  653. $result.='<option value="10">foo</option>'."\n";
  654. $result.='<option value="11">bar</option>'."\n";
  655. $result.='<option value="23">baz</option>'."\n";
  656. $result.='</select>'."\n";
  657. $this->assertEquals($result, $out);
  658. $this->assertEquals('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  659. c.errInvalid=\'"Votre choix" field is invalid\';
  660. jForms.tForm.addControl(c);
  661. ', self::$builder->getJsContent());
  662. self::$form->setData('listbox1',"23");
  663. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  664. $result='<select name="listbox1" id="'.self::$formname.'_listbox1" class="jforms-ctrl-listbox" size="4">'."\n";
  665. $result.='<option value="10">foo</option>'."\n";
  666. $result.='<option value="11">bar</option>'."\n";
  667. $result.='<option value="23" selected="selected">baz</option>'."\n";
  668. $result.='</select>'."\n";
  669. $this->assertEquals($result, $out);
  670. $this->assertEquals('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  671. c.errInvalid=\'"Votre choix" field is invalid\';
  672. jForms.tForm.addControl(c);
  673. ', self::$builder->getJsContent());
  674. $ctrl->datasource= new jFormsStaticDatasource();
  675. $ctrl->datasource->data = array(
  676. '10'=>'foo',
  677. '11'=>'bar',
  678. '23'=>'baz',
  679. );
  680. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  681. $this->assertEquals($result, $out);
  682. $this->assertEquals('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  683. c.errInvalid=\'"Votre choix" field is invalid\';
  684. jForms.tForm.addControl(c);
  685. ', self::$builder->getJsContent());
  686. $ctrl->setReadOnly(true);
  687. ob_start();self::$builder->outputControlLabel($ctrl);$out = ob_get_clean();
  688. $this->assertEquals('<label class="jforms-label" for="'.self::$formname.'_listbox1" id="'.self::$formname.'_listbox1_label">Votre choix</label>'."\n", $out);
  689. ob_start();self::$builder->outputControl($ctrl);$out = ob_get_clean();
  690. $result='<select name="listbox1" id="'.self::$formname.'_listbox1" class="jforms-ctrl-listbox jforms-readonly" disabled="disabled" size="4">'."\n";
  691. $result.='<option value="10">foo</option>'."\n";
  692. $result.='<option value="11">bar</option>'."\n";

Large files files are truncated, but you can click here to view the full file