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

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

https://bitbucket.org/jelix/jelix-1.1.x
PHP | 1439 lines | 1400 code | 22 blank | 17 comment | 22 complexity | e37d1c0344cebe186420a7eb2d7a261c MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1

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

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