PageRenderTime 52ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/testapp/modules/jelix_tests/tests/jforms.htmllightbuilder.html_cli.php

https://bitbucket.org/jelix/jelix-trunk/
PHP | 1070 lines | 889 code | 170 blank | 11 comment | 0 complexity | ad05ae26a3103a783d6bd721af2747bc MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, BSD-3-Clause, JSON, GPL-3.0, LGPL-3.0

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

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