PageRenderTime 62ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://bitbucket.org/jelix/jelix-1.2.x
PHP | 1429 lines | 1182 code | 236 blank | 11 comment | 0 complexity | 184954c603ea16cb76aa3b29ff9c43d9 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, JSON, GPL-3.0, GPL-2.0
  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="10">foo</option>'."\n";
  474. $result.='<option value="11">bar</option>'."\n";
  475. $result.='<option value="23" selected="selected">baz</option>'."\n";
  476. $result.='</select>'."\n";
  477. $this->assertEqualOrDiff($result, $out);
  478. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  479. c.required = true;
  480. c.errRequired=\'"Votre choix" field is required\';
  481. c.errInvalid=\'"Votre choix" field is invalid\';
  482. jForms.tForm.addControl(c);
  483. ', $this->builder->getJsContent());
  484. $ctrl->required = false;
  485. $this->form->setData('menulist1',"");
  486. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  487. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" title="ceci est un tooltip" class="jforms-ctrl-menulist jforms-readonly" size="1">'."\n";
  488. $result.='<option value="" selected="selected"></option>'."\n";
  489. $result.='<option value="10">foo</option>'."\n";
  490. $result.='<option value="11">bar</option>'."\n";
  491. $result.='<option value="23">baz</option>'."\n";
  492. $result.='</select>'."\n";
  493. $this->assertEqualOrDiff($result, $out);
  494. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  495. c.errInvalid=\'"Votre choix" field is invalid\';
  496. jForms.tForm.addControl(c);
  497. ', $this->builder->getJsContent());
  498. $ctrl->setReadOnly(false);
  499. $ctrl->hint='';
  500. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','15');
  501. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  502. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  503. $result.='<option value="" selected="selected"></option>'."\n";
  504. $result.='<option value="10">foo</option>'."\n";
  505. $result.='<option value="11">bar</option>'."\n";
  506. $result.='</select>'."\n";
  507. $this->assertEqualOrDiff($result, $out);
  508. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  509. c.errInvalid=\'"Votre choix" field is invalid\';
  510. jForms.tForm.addControl(c);
  511. ', $this->builder->getJsContent());
  512. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','11');
  513. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  514. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  515. $result.='<option value="" selected="selected"></option>'."\n";
  516. $result.='<option value="10">foo</option>'."\n";
  517. $result.='</select>'."\n";
  518. $this->assertEqualOrDiff($result, $out);
  519. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  520. c.errInvalid=\'"Votre choix" field is invalid\';
  521. jForms.tForm.addControl(c);
  522. ', $this->builder->getJsContent());
  523. $this->form->setData('menulist1',"10");
  524. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  525. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  526. $result.='<option value=""></option>'."\n";
  527. $result.='<option value="10" selected="selected">foo</option>'."\n";
  528. $result.='</select>'."\n";
  529. $this->assertEqualOrDiff($result, $out);
  530. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  531. c.errInvalid=\'"Votre choix" field is invalid\';
  532. jForms.tForm.addControl(c);
  533. ', $this->builder->getJsContent());
  534. $this->form->setData('menulist1',"");
  535. $this->form->addControl(new jFormsControlHidden('hidden1'));
  536. $this->form->setData('hidden1',"25");
  537. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','',null, 'hidden1');
  538. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  539. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  540. $result.='<option value="" selected="selected"></option>'."\n";
  541. $result.='<option value="10">foo</option>'."\n";
  542. $result.='<option value="11">bar</option>'."\n";
  543. $result.='<option value="23">baz</option>'."\n";
  544. $result.='</select>'."\n";
  545. $this->assertEqualOrDiff($result, $out);
  546. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  547. c.errInvalid=\'"Votre choix" field is invalid\';
  548. jForms.tForm.addControl(c);
  549. ', $this->builder->getJsContent());
  550. $this->form->setData('hidden1',"15");
  551. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  552. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  553. $result.='<option value="" selected="selected"></option>'."\n";
  554. $result.='<option value="10">foo</option>'."\n";
  555. $result.='<option value="11">bar</option>'."\n";
  556. $result.='</select>'."\n";
  557. $this->assertEqualOrDiff($result, $out);
  558. $this->form->setData('menulist1',"10");
  559. $this->form->setData('hidden1',"11");
  560. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  561. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  562. $result.='<option value=""></option>'."\n";
  563. $result.='<option value="10" selected="selected">foo</option>'."\n";
  564. $result.='</select>'."\n";
  565. $this->assertEqualOrDiff($result, $out);
  566. $this->form->setData('menulist1',"");
  567. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null);
  568. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  569. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  570. $result.='<option value="" selected="selected"></option>'."\n";
  571. $result.='<option value="10">foo12</option>'."\n";
  572. $result.='<option value="11">bar54</option>'."\n";
  573. $result.='<option value="23">baz97</option>'."\n";
  574. $result.='</select>'."\n";
  575. $this->assertEqualOrDiff($result, $out);
  576. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null,' - ');
  577. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  578. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  579. $result.='<option value="" selected="selected"></option>'."\n";
  580. $result.='<option value="10">foo - 12</option>'."\n";
  581. $result.='<option value="11">bar - 54</option>'."\n";
  582. $result.='<option value="23">baz - 97</option>'."\n";
  583. $result.='</select>'."\n";
  584. $this->assertEqualOrDiff($result, $out);
  585. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','9,25',null,' - ');
  586. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  587. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  588. $result.='<option value="" selected="selected"></option>'."\n";
  589. $result.='<option value="10">foo - 12</option>'."\n";
  590. $result.='<option value="11">bar - 54</option>'."\n";
  591. $result.='<option value="23">baz - 97</option>'."\n";
  592. $result.='</select>'."\n";
  593. $this->assertEqualOrDiff($result, $out);
  594. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','10,25',null,' - ');
  595. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  596. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  597. $result.='<option value="" selected="selected"></option>'."\n";
  598. $result.='<option value="11">bar - 54</option>'."\n";
  599. $result.='<option value="23">baz - 97</option>'."\n";
  600. $result.='</select>'."\n";
  601. $this->assertEqualOrDiff($result, $out);
  602. $this->form->addControl(new jFormsControlHidden('hidden2'));
  603. $this->form->setData('hidden1',"9");
  604. $this->form->setData('hidden2',"25");
  605. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  606. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  607. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  608. $result.='<option value="" selected="selected"></option>'."\n";
  609. $result.='<option value="10">foo - 12</option>'."\n";
  610. $result.='<option value="11">bar - 54</option>'."\n";
  611. $result.='<option value="23">baz - 97</option>'."\n";
  612. $result.='</select>'."\n";
  613. $this->assertEqualOrDiff($result, $out);
  614. $this->form->setData('hidden1',"10");
  615. $this->form->setData('hidden2',"25");
  616. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  617. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  618. $result='<select name="menulist1" id="'.$this->formname.'_menulist1" class="jforms-ctrl-menulist" size="1">'."\n";
  619. $result.='<option value="" selected="selected"></option>'."\n";
  620. $result.='<option value="11">bar - 54</option>'."\n";
  621. $result.='<option value="23">baz - 97</option>'."\n";
  622. $result.='</select>'."\n";
  623. $this->assertEqualOrDiff($result, $out);
  624. $this->form->removeControl('hidden2');
  625. $this->form->setData('hidden1',"11");
  626. $this->builder->clearJs();
  627. }
  628. function testOutputListbox(){
  629. $ctrl= new jFormsControllistbox('listbox1');
  630. $ctrl->datatype= new jDatatypeString();
  631. $ctrl->label='Votre choix';
  632. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  633. $this->form->addControl($ctrl);
  634. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  635. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_listbox1" id="'.$this->formname.'_listbox1_label">Votre choix</label>'."\n", $out);
  636. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  637. $result='<select name="listbox1" id="'.$this->formname.'_listbox1" class="jforms-ctrl-listbox" size="4">'."\n";
  638. $result.='<option value="10">foo</option>'."\n";
  639. $result.='<option value="11">bar</option>'."\n";
  640. $result.='<option value="23">baz</option>'."\n";
  641. $result.='</select>'."\n";
  642. $this->assertEqualOrDiff($result, $out);
  643. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  644. c.errInvalid=\'"Votre choix" field is invalid\';
  645. jForms.tForm.addControl(c);
  646. ', $this->builder->getJsContent());
  647. $this->form->setData('listbox1',"23");
  648. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  649. $result='<select name="listbox1" id="'.$this->formname.'_listbox1" class="jforms-ctrl-listbox" size="4">'."\n";
  650. $result.='<option value="10">foo</option>'."\n";
  651. $result.='<option value="11">bar</option>'."\n";
  652. $result.='<option value="23" selected="selected">baz</option>'."\n";
  653. $result.='</select>'."\n";
  654. $this->assertEqualOrDiff($result, $out);
  655. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  656. c.errInvalid=\'"Votre choix" field is invalid\';
  657. jForms.tForm.addControl(c);
  658. ', $this->builder->getJsContent());
  659. $ctrl->datasource= new jFormsStaticDatasource();
  660. $ctrl->datasource->data = array(
  661. '10'=>'foo',
  662. '11'=>'bar',
  663. '23'=>'baz',
  664. );
  665. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  666. $this->assertEqualOrDiff($result, $out);
  667. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  668. c.errInvalid=\'"Votre choix" field is invalid\';
  669. jForms.tForm.addControl(c);
  670. ', $this->builder->getJsContent());
  671. $ctrl->setReadOnly(true);
  672. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  673. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_listbox1" id="'.$this->formname.'_listbox1_label">Votre choix</label>'."\n", $out);
  674. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  675. $result='<select name="listbox1" id="'.$this->formname.'_listbox1" class="jforms-ctrl-listbox jforms-readonly" size="4">'."\n";
  676. $result.='<option value="10">foo</option>'."\n";
  677. $result.='<option value="11">bar</option>'."\n";
  678. $result.='<option value="23" selected="selected">baz</option>'."\n";
  679. $result.='</select>'."\n";
  680. $this->assertEqualOrDiff($result, $out);
  681. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  682. c.errInvalid=\'"Votre choix" field is invalid\';
  683. jForms.tForm.addControl(c);
  684. ', $this->builder->getJsContent());
  685. $ctrl= new jFormsControllistbox('lbchoixmultiple');
  686. $ctrl->datatype= new jDatatypeString();
  687. $ctrl->label='Votre choix';
  688. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  689. $ctrl->multiple=true;
  690. $ctrl->hint='ceci est un tooltip';
  691. $this->form->addControl($ctrl);
  692. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  693. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_lbchoixmultiple" id="'.$this->formname.'_lbchoixmultiple_label" title="ceci est un tooltip">Votre choix</label>'."\n", $out);
  694. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  695. $result='<select name="lbchoixmultiple[]" id="'.$this->formname.'_lbchoixmultiple" title="ceci est un tooltip" class="jforms-ctrl-listbox" size="4" multiple="multiple">'."\n";
  696. $result.='<option value="10">foo</option>'."\n";
  697. $result.='<option value="11">bar</option>'."\n";
  698. $result.='<option value="23">baz</option>'."\n";
  699. $result.='</select>'."\n";
  700. $this->assertEqualOrDiff($result, $out);
  701. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple[]\', \'Votre choix\');
  702. c.multiple = true;
  703. c.errInvalid=\'"Votre choix" field is invalid\';
  704. jForms.tForm.addControl(c);
  705. ', $this->builder->getJsContent());
  706. $this->form->setData('lbchoixmultiple',array(10,23));
  707. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  708. $result='<select name="lbchoixmultiple[]" id="'.$this->formname.'_lbchoixmultiple" title="ceci est un tooltip" class="jforms-ctrl-listbox" size="4" multiple="multiple">'."\n";
  709. $result.='<option value="10" selected="selected">foo</option>'."\n";
  710. $result.='<option value="11">bar</option>'."\n";
  711. $result.='<option value="23" selected="selected">baz</option>'."\n";
  712. $result.='</select>'."\n";
  713. $this->assertEqualOrDiff($result, $out);
  714. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple[]\', \'Votre choix\');
  715. c.multiple = true;
  716. c.errInvalid=\'"Votre choix" field is invalid\';
  717. jForms.tForm.addControl(c);
  718. ', $this->builder->getJsContent());
  719. $ctrl= new jFormsControllistbox('listbox2');
  720. $ctrl->datatype= new jDatatypeString();
  721. $ctrl->label='Votre choix';
  722. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  723. $ctrl->defaultValue=array ('10');
  724. $this->form->addControl($ctrl);
  725. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  726. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_listbox2" id="'.$this->formname.'_listbox2_label">Votre choix</label>'."\n", $out);
  727. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  728. $result='<select name="listbox2" id="'.$this->formname.'_listbox2" class="jforms-ctrl-listbox" size="4">'."\n";
  729. $result.='<option value="10" selected="selected">foo</option>'."\n";
  730. $result.='<option value="11">bar</option>'."\n";
  731. $result.='<option value="23">baz</option>'."\n";
  732. $result.='</select>'."\n";
  733. $this->assertEqualOrDiff($result, $out);
  734. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox2\', \'Votre choix\');
  735. c.errInvalid=\'"Votre choix" field is invalid\';
  736. jForms.tForm.addControl(c);
  737. ', $this->builder->getJsContent());
  738. $ctrl= new jFormsControllistbox('lbchoixmultiple2');
  739. $ctrl->datatype= new jDatatypeString();
  740. $ctrl->label='Votre choix';
  741. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  742. $ctrl->multiple=true;
  743. $ctrl->size=8;
  744. $ctrl->defaultValue=array ('11','23');
  745. $this->form->addControl($ctrl);
  746. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  747. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_lbchoixmultiple2" id="'.$this->formname.'_lbchoixmultiple2_label">Votre choix</label>'."\n", $out);
  748. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  749. $result='<select name="lbchoixmultiple2[]" id="'.$this->formname.'_lbchoixmultiple2" class="jforms-ctrl-listbox" size="8" multiple="multiple">'."\n";
  750. $result.='<option value="10">foo</option>'."\n";
  751. $result.='<option value="11" selected="selected">bar</option>'."\n";
  752. $result.='<option value="23" selected="selected">baz</option>'."\n";
  753. $result.='</select>'."\n";
  754. $this->assertEqualOrDiff($result, $out);
  755. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple2[]\', \'Votre choix\');
  756. c.multiple = true;
  757. c.errInvalid=\'"Votre choix" field is invalid\';
  758. jForms.tForm.addControl(c);
  759. ', $this->builder->getJsContent());
  760. }
  761. function testOutputListboxClassDatasource(){
  762. $ctrl= new jFormsControllistbox('listboxclass');
  763. $ctrl->datatype= new jDatatypeString();
  764. $ctrl->label='Votre choix';
  765. jClasses::inc('mydatasource');
  766. $ctrl->datasource = new mydatasource(0);
  767. $this->form->addControl($ctrl);
  768. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  769. $result='<select name="listboxclass" id="'.$this->formname.'_listboxclass" class="jforms-ctrl-listbox" size="4">'."\n";
  770. $result.='<option value="aaa">label for aaa</option>'."\n";
  771. $result.='<option value="bbb">label for bbb</option>'."\n";
  772. $result.='<option value="ccc">label for ccc</option>'."\n";
  773. $result.='<option value="ddd">label for ddd</option>'."\n";
  774. $result.='</select>'."\n";
  775. $this->assertEqualOrDiff($result, $out);
  776. $this->assertEqualOrDiff('c = new jFormsControlString(\'listboxclass\', \'Votre choix\');
  777. c.errInvalid=\'"Votre choix" field is invalid\';
  778. jForms.tForm.addControl(c);
  779. ', $this->builder->getJsContent());
  780. }
  781. function testOutputTextarea(){
  782. $ctrl= new jFormsControltextarea('textarea1');
  783. $ctrl->datatype= new jDatatypeString();
  784. $ctrl->label='Votre nom';
  785. $this->form->addControl($ctrl);
  786. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  787. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_textarea1" id="'.$this->formname.'_textarea1_label">Votre nom</label>'."\n", $out);
  788. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  789. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" class="jforms-ctrl-textarea" rows="5" cols="40"></textarea>'."\n", $out);
  790. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  791. c.errInvalid=\'"Votre nom" field is invalid\';
  792. jForms.tForm.addControl(c);
  793. ', $this->builder->getJsContent());
  794. $this->form->setData('textarea1','laurent');
  795. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  796. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" class="jforms-ctrl-textarea" rows="5" cols="40">laurent</textarea>'."\n", $out);
  797. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  798. c.errInvalid=\'"Votre nom" field is invalid\';
  799. jForms.tForm.addControl(c);
  800. ', $this->builder->getJsContent());
  801. $ctrl->setReadOnly(true);
  802. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  803. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" readonly="readonly" class="jforms-ctrl-textarea jforms-readonly" rows="5" cols="40">laurent</textarea>'."\n", $out);
  804. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  805. c.errInvalid=\'"Votre nom" field is invalid\';
  806. jForms.tForm.addControl(c);
  807. ', $this->builder->getJsContent());
  808. $ctrl->hint='ceci est un tooltip';
  809. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  810. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_textarea1" id="'.$this->formname.'_textarea1_label" title="ceci est un tooltip">Votre nom</label>'."\n", $out);
  811. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  812. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-textarea jforms-readonly" rows="5" cols="40">laurent</textarea>'."\n", $out);
  813. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  814. c.errInvalid=\'"Votre nom" field is invalid\';
  815. jForms.tForm.addControl(c);
  816. ', $this->builder->getJsContent());
  817. $ctrl->rows=20;
  818. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  819. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-textarea jforms-readonly" rows="20" cols="40">laurent</textarea>'."\n", $out);
  820. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  821. c.errInvalid=\'"Votre nom" field is invalid\';
  822. jForms.tForm.addControl(c);
  823. ', $this->builder->getJsContent());
  824. $ctrl->cols=60;
  825. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  826. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.$this->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-textarea jforms-readonly" rows="20" cols="60">laurent</textarea>'."\n", $out);
  827. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  828. c.errInvalid=\'"Votre nom" field is invalid\';
  829. jForms.tForm.addControl(c);
  830. ', $this->builder->getJsContent());
  831. }
  832. function testOutputSecret(){
  833. $ctrl= new jFormsControlSecret('passwd');
  834. $ctrl->datatype= new jDatatypeString();
  835. $ctrl->label='mot de passe';
  836. $this->form->addControl($ctrl);
  837. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  838. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_passwd" id="'.$this->formname.'_passwd_label">mot de passe</label>'."\n", $out);
  839. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  840. $this->assertEqualOrDiff('<input name="passwd" id="'.$this->formname.'_passwd" class="jforms-ctrl-secret" type="password" value=""/>'."\n", $out);
  841. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  842. c.errInvalid=\'"mot de passe" field is invalid\';
  843. jForms.tForm.addControl(c);
  844. ', $this->builder->getJsContent());
  845. $this->form->setData('passwd','laurent');
  846. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  847. $this->assertEqualOrDiff('<input name="passwd" id="'.$this->formname.'_passwd" class="jforms-ctrl-secret" type="password" value="laurent"/>'."\n", $out);
  848. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  849. c.errInvalid=\'"mot de passe" field is invalid\';
  850. jForms.tForm.addControl(c);
  851. ', $this->builder->getJsContent());
  852. $ctrl->setReadOnly(true);
  853. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  854. $this->assertEqualOrDiff('<input name="passwd" id="'.$this->formname.'_passwd" readonly="readonly" class="jforms-ctrl-secret jforms-readonly" type="password" value="laurent"/>'."\n", $out);
  855. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  856. c.errInvalid=\'"mot de passe" field is invalid\';
  857. jForms.tForm.addControl(c);
  858. ', $this->builder->getJsContent());
  859. $ctrl->hint='ceci est un tooltip';
  860. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  861. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_passwd" id="'.$this->formname.'_passwd_label" title="ceci est un tooltip">mot de passe</label>'."\n", $out);
  862. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  863. $this->assertEqualOrDiff('<input name="passwd" id="'.$this->formname.'_passwd" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-secret jforms-readonly" type="password" value="laurent"/>'."\n", $out);
  864. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  865. c.errInvalid=\'"mot de passe" field is invalid\';
  866. jForms.tForm.addControl(c);
  867. ', $this->builder->getJsContent());
  868. $ctrl->datatype->addFacet('minLength',5);
  869. $ctrl->datatype->addFacet('maxLength',10);
  870. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  871. $this->assertEqualOrDiff('<input name="passwd" id="'.$this->formname.'_passwd" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-secret jforms-readonly" maxlength="10" type="password" value="laurent"/>'."\n", $out);
  872. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  873. c.maxLength = \'10\';
  874. c.minLength = \'5\';
  875. c.errInvalid=\'"mot de passe" field is invalid\';
  876. jForms.tForm.addControl(c);
  877. ', $this->builder->getJsContent());
  878. }
  879. function testOutputSecretConfirm(){
  880. $ctrl= new jFormsControlSecretConfirm('passwd_confirm');
  881. $ctrl->label='confirmation mot de passe';
  882. $this->form->addControl($ctrl);
  883. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  884. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_passwd_confirm" id="'.$this->formname.'_passwd_confirm_label">confirmation mot de passe</label>'."\n", $out);
  885. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  886. $this->assertEqualOrDiff('<input name="passwd_confirm" id="'.$this->formname.'_passwd_confirm" class="jforms-ctrl-secretconfirm" type="password" value=""/>'."\n", $out);
  887. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  888. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  889. jForms.tForm.addControl(c);
  890. ', $this->builder->getJsContent());
  891. $ctrl->required = true;
  892. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  893. $this->assertEqualOrDiff('<input name="passwd_confirm" id="'.$this->formname.'_passwd_confirm" class="jforms-ctrl-secretconfirm jforms-required" type="password" value=""/>'."\n", $out);
  894. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  895. c.required = true;
  896. c.errRequired=\'"confirmation mot de passe" field is required\';
  897. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  898. jForms.tForm.addControl(c);
  899. ', $this->builder->getJsContent());
  900. $ctrl->required = false;
  901. $ctrl->setReadOnly(true);
  902. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  903. $this->assertEqualOrDiff('<input name="passwd_confirm" id="'.$this->formname.'_passwd_confirm" readonly="readonly" class="jforms-ctrl-secretconfirm jforms-readonly" type="password" value=""/>'."\n", $out);
  904. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  905. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  906. jForms.tForm.addControl(c);
  907. ', $this->builder->getJsContent());
  908. $ctrl->hint='ceci est un tooltip';
  909. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  910. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_passwd_confirm" id="'.$this->formname.'_passwd_confirm_label" title="ceci est un tooltip">confirmation mot de passe</label>'."\n", $out);
  911. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  912. $this->assertEqualOrDiff('<input name="passwd_confirm" id="'.$this->formname.'_passwd_confirm" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-secretconfirm jforms-readonly" type="password" value=""/>'."\n", $out);
  913. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  914. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  915. jForms.tForm.addControl(c);
  916. ', $this->builder->getJsContent());
  917. }
  918. function testOutputOutput(){
  919. $ctrl= new jFormsControlOutput('output1');
  920. $ctrl->datatype= new jDatatypeString();
  921. $ctrl->label='Votre nom';
  922. $this->form->addControl($ctrl);
  923. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  924. $this->assertEqualOrDiff('<span class="jforms-label" id="'.$this->formname.'_output1_label">Votre nom</span>'."\n", $out);
  925. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  926. $this->assertEqualOrDiff('<input name="output1" id="'.$this->formname.'_output1" type="hidden" value=""/><span class="jforms-value"></span>'."\n", $out);
  927. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  928. $this->form->setData('output1','laurent');
  929. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  930. $this->assertEqualOrDiff('<input name="output1" id="'.$this->formname.'_output1" type="hidden" value="laurent"/><span class="jforms-value">laurent</span>'."\n", $out);
  931. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  932. $ctrl->setReadOnly(true);
  933. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  934. $this->assertEqualOrDiff('<input name="output1" id="'.$this->formname.'_output1" type="hidden" value="laurent"/><span class="jforms-value">laurent</span>'."\n", $out);
  935. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  936. $ctrl->hint='ceci est un tooltip';
  937. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  938. $this->assertEqualOrDiff('<span class="jforms-label" id="'.$this->formname.'_output1_label" title="ceci est un tooltip">Votre nom</span>'."\n", $out);
  939. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  940. $this->assertEqualOrDiff('<input name="output1" id="'.$this->formname.'_output1" type="hidden" value="laurent"/><span class="jforms-value" title="ceci est un tooltip">laurent</span>'."\n", $out);
  941. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  942. }
  943. function testOutputUpload(){
  944. $ctrl= new jFormsControlUpload('upload1');
  945. $ctrl->datatype= new jDatatypeString();
  946. $ctrl->label='Votre nom';
  947. $this->form->addControl($ctrl);
  948. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  949. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_upload1" id="'.$this->formname.'_upload1_label">Votre nom</label>'."\n", $out);
  950. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  951. $this->assertEqualOrDiff('<input name="upload1" id="'.$this->formname.'_upload1" class="jforms-ctrl-upload" type="file" value=""/>'."\n", $out);
  952. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  953. c.errInvalid=\'"Votre nom" field is invalid\';
  954. jForms.tForm.addControl(c);
  955. ', $this->builder->getJsContent());
  956. $ctrl->setReadOnly(true);
  957. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  958. $this->assertEqualOrDiff('<input name="upload1" id="'.$this->formname.'_upload1" readonly="readonly" class="jforms-ctrl-upload jforms-readonly" type="file" value=""/>'."\n", $out);
  959. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  960. c.errInvalid=\'"Votre nom" field is invalid\';
  961. jForms.tForm.addControl(c);
  962. ', $this->builder->getJsContent());
  963. $ctrl->hint='ceci est un tooltip';
  964. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  965. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_upload1" id="'.$this->formname.'_upload1_label" title="ceci est un tooltip">Votre nom</label>'."\n", $out);
  966. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  967. $this->assertEqualOrDiff('<input name="upload1" id="'.$this->formname.'_upload1" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-upload jforms-readonly" type="file" value=""/>'."\n", $out);
  968. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  969. c.errInvalid=\'"Votre nom" field is invalid\';
  970. jForms.tForm.addControl(c);
  971. ', $this->builder->getJsContent());
  972. ob_start();
  973. $this->builder->outputHeader(array('method'=>'post'));
  974. $out = ob_get_clean();
  975. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.$this->formname.'" enctype="multipart/form-data"><script type="text/javascript">
  976. //<![CDATA[
  977. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  978. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorHtml());
  979. jForms.declareForm(jForms.tForm);
  980. //]]>
  981. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  982. <input type="hidden" name="module" value="jelix_tests"/>
  983. <input type="hidden" name="action" value="urlsig:url1"/>
  984. <input type="hidden" name="hidden1" id="'.$this->formname.'_hidden1" value="11"/>
  985. </div>';
  986. $this->assertEqualOrDiff($result, $out);
  987. $this->form->removeControl('upload1');
  988. }
  989. function testOutputSubmit(){
  990. $ctrl= new jFormsControlSubmit('submit1');
  991. $ctrl->datatype= new jDatatypeString();
  992. $ctrl->label='Ok';
  993. $this->form->addControl($ctrl);
  994. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  995. $this->assertEqualOrDiff('', $out);
  996. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  997. $this->assertEqualOrDiff('<input name="submit1" id="'.$this->formname.'_submit1" class="jforms-submit" type="submit" value="Ok"/>'."\n", $out);
  998. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  999. $ctrl->setReadOnly(true);
  1000. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1001. $this->assertEqualOrDiff('<input name="submit1" id="'.$this->formname.'_submit1" class="jforms-submit" type="submit" value="Ok"/>'."\n", $out);
  1002. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1003. $ctrl->hint='ceci est un tooltip';
  1004. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1005. $this->assertEqualOrDiff('<input name="submit1" id="'.$this->formname.'_submit1" title="ceci est un tooltip" class="jforms-submit" type="submit" value="Ok"/>'."\n", $out);
  1006. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1007. $ctrl->standalone=false;
  1008. $ctrl->datasource= new jFormsStaticDatasource();
  1009. $ctrl->datasource->data = array('svg'=>'Sauvegarde','prev'=>'Preview');
  1010. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1011. $output = ' <input name="submit1" id="'.$this->formname.'_submit1_svg" title="ceci est un tooltip" class="jforms-submit" type="submit" value="Sauvegarde"/>';
  1012. $output .= ' <input name="submit1" id="'.$this->formname.'_submit1_prev" title="ceci est un tooltip" class="jforms-submit" type="submit" value="Preview"/>'."\n";
  1013. $this->assertEqualOrDiff($output, $out);
  1014. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1015. }
  1016. function testOutputReset(){
  1017. $ctrl= new jFormsControlReset('reset1');
  1018. $ctrl->datatype= new jDatatypeString();
  1019. $ctrl->label='Effacer';
  1020. $this->form->addControl($ctrl);
  1021. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1022. $this->assertEqualOrDiff('', $out);
  1023. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1024. $this->assertEqualOrDiff('<button name="reset1" id="'.$this->formname.'_reset1" class="jforms-reset" type="reset">Effacer</button>'."\n", $out);
  1025. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1026. $ctrl->setReadOnly(true);
  1027. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1028. $this->assertEqualOrDiff('<button name="reset1" id="'.$this->formname.'_reset1" class="jforms-reset" type="reset">Effacer</button>'."\n", $out);
  1029. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1030. $ctrl->hint='ceci est un tooltip';
  1031. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1032. $this->assertEqualOrDiff('<button name="reset1" id="'.$this->formname.'_reset1" title="ceci est un tooltip" class="jforms-reset" type="reset">Effacer</button>'."\n", $out);
  1033. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1034. }
  1035. function testOutputHidden(){
  1036. $ctrl= new jFormsControlHidden('hidden2');
  1037. $this->form->addControl($ctrl);
  1038. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1039. $this->assertEqualOrDiff('', $out);
  1040. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1041. $this->assertEqualOrDiff('', $out);
  1042. $this->assertEqualOrDiff('', $this->builder->getJsContent());
  1043. ob_start();
  1044. $this->builder->outputHeader(array('method'=>'post'));
  1045. $out = ob_get_clean();
  1046. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.$this->formname.'"><script type="text/javascript">
  1047. //<![CDATA[
  1048. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  1049. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorHtml());
  1050. jForms.declareForm(jForms.tForm);
  1051. //]]>
  1052. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  1053. <input type="hidden" name="module" value="jelix_tests"/>
  1054. <input type="hidden" name="action" value="urlsig:url1"/>
  1055. <input type="hidden" name="hidden1" id="'.$this->formname.'_hidden1" value="11"/>
  1056. <input type="hidden" name="hidden2" id="'.$this->formname.'_hidden2" value=""/>
  1057. </div>';
  1058. $this->assertEqualOrDiff($result, $out);
  1059. $ctrl->defaultValue='toto';
  1060. $this->form->removeControl($ctrl->ref);
  1061. $this->form->addControl($ctrl);
  1062. ob_start();
  1063. $this->builder->outputHeader(array('method'=>'post'));
  1064. $out = ob_get_clean();
  1065. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.$this->formname.'"><script type="text/javascript">
  1066. //<![CDATA[
  1067. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  1068. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorHtml());
  1069. jForms.declareForm(jForms.tForm);
  1070. //]]>
  1071. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  1072. <input type="hidden" name="module" value="jelix_tests"/>
  1073. <input type="hidden" name="action" value="urlsig:url1"/>
  1074. <input type="hidden" name="hidden1" id="'.$this->formname.'_hidden1" value="11"/>
  1075. <input type="hidden" name="hidden2" id="'.$this->formname.'_hidden2" value="toto"/>
  1076. </div>';
  1077. $this->assertEqualOrDiff($result, $out);
  1078. }
  1079. function testOutputCaptcha(){
  1080. $ctrl= new jFormsControlcaptcha('cap');
  1081. $ctrl->label='captcha for security';
  1082. $this->form->addControl($ctrl);
  1083. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1084. $this->assertEqualOrDiff('<label class="jforms-label jforms-required" for="'.$this->formname.'_cap" id="'.$this->formname.'_cap_label">captcha for security<span class="jforms-required-star">*</span></label>'."\n", $out);
  1085. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1086. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input name="cap" id="'.$this->formname.'_cap" class="jforms-ctrl-captcha jforms-required" type="text" value=""/>'."\n", $out);
  1087. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1088. c.required = true;
  1089. c.errRequired=\'"captcha for security" field is required\';
  1090. c.errInvalid=\'"captcha for security" field is invalid\';
  1091. jForms.tForm.addControl(c);
  1092. ', $this->builder->getJsContent());
  1093. $this->form->setData('cap','toto');
  1094. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1095. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input name="cap" id="'.$this->formname.'_cap" class="jforms-ctrl-captcha jforms-required" type="text" value=""/>'."\n", $out);
  1096. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1097. c.required = true;
  1098. c.errRequired=\'"captcha for security" field is required\';
  1099. c.errInvalid=\'"captcha for security" field is invalid\';
  1100. jForms.tForm.addControl(c);
  1101. ', $this->builder->getJsContent());
  1102. $ctrl->setReadOnly(true);
  1103. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1104. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input name="cap" id="'.$this->formname.'_cap" class="jforms-ctrl-captcha" type="text" value=""/>'."\n", $out);
  1105. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1106. c.required = true;
  1107. c.errRequired=\'"captcha for security" field is required\';
  1108. c.errInvalid=\'"captcha for security" field is invalid\';
  1109. jForms.tForm.addControl(c);
  1110. ', $this->builder->getJsContent());
  1111. $ctrl->setReadOnly(false);
  1112. $ctrl->help='some help';
  1113. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1114. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input name="cap" id="'.$this->formname.'_cap" class="jforms-ctrl-captcha jforms-required" type="text" value=""/>'."\n".'<span class="jforms-help" id="jforms_formtestlight1_cap-help">&nbsp;<span>some help</span></span>', $out);
  1115. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1116. c.required = true;
  1117. c.errRequired=\'"captcha for security" field is required\';
  1118. c.errInvalid=\'"captcha for security" field is invalid\';
  1119. jForms.tForm.addControl(c);
  1120. ', $this->builder->getJsContent());
  1121. $ctrl->hint='ceci est un tooltip';
  1122. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1123. $this->assertEqualOrDiff('<label class="jforms-label jforms-required" for="'.$this->formname.'_cap" id="'.$this->formname.'_cap_label" title="ceci est un tooltip">captcha for security<span class="jforms-required-star">*</span></label>'."\n", $out);
  1124. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1125. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input name="cap" id="'.$this->formname.'_cap" title="ceci est un tooltip" class="jforms-ctrl-captcha jforms-required" type="text" value=""/>'."\n".'<span class="jforms-help" id="jforms_formtestlight1_cap-help">&nbsp;<span>some help</span></span>', $out);
  1126. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1127. c.required = true;
  1128. c.errRequired=\'"captcha for security" field is required\';
  1129. c.errInvalid=\'"captcha for security" field is invalid\';
  1130. jForms.tForm.addControl(c);
  1131. ', $this->builder->getJsContent());
  1132. }
  1133. function testOutputHtmleditor(){
  1134. $ctrl= new jFormsControlhtmleditor('contenu');
  1135. $ctrl->label='Texte';
  1136. $this->form->addControl($ctrl);
  1137. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1138. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_contenu" id="'.$this->formname.'_contenu_label">Texte</label>'."\n", $out);
  1139. $this->form->setData('contenu','<p>Ceci est un contenu</p>');
  1140. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1141. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" class="jforms-ctrl-htmleditor" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1142. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1143. c.errInvalid=\'"Texte" field is invalid\';
  1144. jForms.tForm.addControl(c);
  1145. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1146. ', $this->builder->getJsContent());
  1147. $ctrl->setReadOnly(true);
  1148. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1149. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" readonly="readonly" class="jforms-ctrl-htmleditor jforms-readonly" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1150. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1151. c.errInvalid=\'"Texte" field is invalid\';
  1152. jForms.tForm.addControl(c);
  1153. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1154. ', $this->builder->getJsContent());
  1155. $ctrl->hint='ceci est un tooltip';
  1156. ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1157. $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_contenu" id="'.$this->formname.'_contenu_label" title="ceci est un tooltip">Texte</label>'."\n", $out);
  1158. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1159. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-htmleditor jforms-readonly" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1160. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1161. c.errInvalid=\'"Texte" field is invalid\';
  1162. jForms.tForm.addControl(c);
  1163. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1164. ', $this->builder->getJsContent());
  1165. $ctrl->rows=20;
  1166. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1167. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-htmleditor jforms-readonly" rows="20" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1168. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1169. c.errInvalid=\'"Texte" field is invalid\';
  1170. jForms.tForm.addControl(c);
  1171. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1172. ', $this->builder->getJsContent());
  1173. $ctrl->cols=60;
  1174. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1175. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-htmleditor jforms-readonly" rows="20" cols="60">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1176. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1177. c.errInvalid=\'"Texte" field is invalid\';
  1178. jForms.tForm.addControl(c);
  1179. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1180. ', $this->builder->getJsContent());
  1181. $ctrl->required=true;
  1182. ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean();
  1183. $this->assertEqualOrDiff('<textarea name="contenu" id="'.$this->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class="jforms-ctrl-htmleditor jforms-readonly" rows="20" cols="60">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>'."\n", $out);
  1184. $this->assertEqualOrDiff('c = new jFormsControlHtml(\'contenu\', \'Texte\');
  1185. c.required = true;
  1186. c.errRequired=\'"Texte" field is required\';
  1187. c.errInvalid=\'"Texte" field is invalid\';
  1188. jForms.tForm.addControl(c);
  1189. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1","default",jForms.config);
  1190. ', $this->builder->getJsContent());
  1191. }
  1192. }