PageRenderTime 54ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://bitbucket.org/doubleface/jelix-jpu
PHP | 1438 lines | 1399 code | 22 blank | 17 comment | 22 complexity | 32e917eb85d5cd848fe443b54b82e5ef MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  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 static $mysharedfixture;
  25. function testStart() {
  26. self::$mysharedfixture = new stdClass;
  27. self::$mysharedfixture->container = new jFormsDataContainer('formtestlight','');
  28. self::$mysharedfixture->form = new testHtmlLightForm('formtestlight', self::$mysharedfixture->container, true );
  29. self::$mysharedfixture->form->securityLevel = 0;
  30. self::$mysharedfixture->builder = new testJFormsHtmlLightBuilder(self::$mysharedfixture->form);
  31. }
  32. function testOutputHeader(){
  33. self::$mysharedfixture->builder->setAction('jelix_tests~urlsig:url1',array());
  34. ob_start();
  35. self::$mysharedfixture->builder->outputHeader(array('method'=>'post'));
  36. $out = ob_get_clean();
  37. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.self::$mysharedfixture->builder->getName().'"><script type="text/javascript">
  38. //<![CDATA[
  39. jForms.tForm = new jFormsForm(\'jforms_formtestlight\');
  40. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorAlert());
  41. jForms.tForm.setHelpDecorator(new jFormsHelpDecoratorAlert());
  42. jForms.declareForm(jForms.tForm);
  43. //]]>
  44. </script><div class="jforms-hiddens"><input type="hidden" name="module" value="jelix_tests"/>
  45. <input type="hidden" name="action" value="urlsig:url1"/>
  46. </div>';
  47. $this->assertEqualOrDiff($result, $out);
  48. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  49. self::$mysharedfixture->builder->setAction('jelix_tests~urlsig:url1',array('foo'=>'b>ar'));
  50. ob_start();
  51. self::$mysharedfixture->builder->outputHeader(array('method'=>'get'));
  52. $out = ob_get_clean();
  53. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="get" id="'.self::$mysharedfixture->builder->getName().'"><script type="text/javascript">
  54. //<![CDATA[
  55. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  56. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorAlert());
  57. jForms.tForm.setHelpDecorator(new jFormsHelpDecoratorAlert());
  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. self::$mysharedfixture->formname = self::$mysharedfixture->builder->getName();
  66. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  67. }
  68. function testOutputFooter(){
  69. ob_start();
  70. self::$mysharedfixture->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. self::$mysharedfixture->form->addControl($ctrl);
  84. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  85. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_input1">Votre nom</label>', $out);
  86. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  87. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value=""/>', $out);
  88. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  89. c.errInvalid=\'"Votre nom" field is invalid\';
  90. jForms.tForm.addControl(c);
  91. ', self::$mysharedfixture->builder->getJsContent());
  92. self::$mysharedfixture->form->setData('input1','toto');
  93. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  94. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value="toto"/>', $out);
  95. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  96. c.errInvalid=\'"Votre nom" field is invalid\';
  97. jForms.tForm.addControl(c);
  98. ', self::$mysharedfixture->builder->getJsContent());
  99. $ctrl->defaultValue='laurent';
  100. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  101. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value="toto"/>', $out);
  102. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  103. c.errInvalid=\'"Votre nom" field is invalid\';
  104. jForms.tForm.addControl(c);
  105. ', self::$mysharedfixture->builder->getJsContent());
  106. self::$mysharedfixture->form->removeControl($ctrl->ref);
  107. self::$mysharedfixture->form->addControl($ctrl);
  108. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  109. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value="laurent"/>', $out);
  110. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  111. c.errInvalid=\'"Votre nom" field is invalid\';
  112. jForms.tForm.addControl(c);
  113. ', self::$mysharedfixture->builder->getJsContent());
  114. $ctrl->required=true;
  115. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  116. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" class=" jforms-required" value="laurent"/>', $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. ', self::$mysharedfixture->builder->getJsContent());
  123. $ctrl->setReadOnly(true);
  124. $ctrl->required=false;
  125. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  126. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" readonly="readonly" class=" jforms-readonly" value="laurent"/>', $out);
  127. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  128. c.errInvalid=\'"Votre nom" field is invalid\';
  129. jForms.tForm.addControl(c);
  130. ', self::$mysharedfixture->builder->getJsContent());
  131. $ctrl->setReadOnly(false);
  132. $ctrl->help='some help';
  133. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  134. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. self::$mysharedfixture->formname.'\',\'input1\')">?</a></span>', $out);
  135. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  136. c.help=\'some help\';
  137. c.errInvalid=\'"Votre nom" field is invalid\';
  138. jForms.tForm.addControl(c);
  139. ', self::$mysharedfixture->builder->getJsContent());
  140. $ctrl->help="some \nhelp with ' and\nline break.";
  141. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  142. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. self::$mysharedfixture->formname.'\',\'input1\')">?</a></span>', $out);
  143. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  144. c.help=\'some \nhelp with \\\' and\nline break.\';
  145. c.errInvalid=\'"Votre nom" field is invalid\';
  146. jForms.tForm.addControl(c);
  147. ', self::$mysharedfixture->builder->getJsContent());
  148. $ctrl->hint='ceci est un tooltip';
  149. $ctrl->help='some help';
  150. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  151. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_input1" title="ceci est un tooltip">Votre nom</label>', $out);
  152. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  153. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" title="ceci est un tooltip" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. self::$mysharedfixture->formname.'\',\'input1\')">?</a></span>', $out);
  154. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  155. c.help=\'some help\';
  156. c.errInvalid=\'"Votre nom" field is invalid\';
  157. jForms.tForm.addControl(c);
  158. ', self::$mysharedfixture->builder->getJsContent());
  159. $ctrl->help='';
  160. $ctrl->hint='';
  161. $ctrl->datatype->addFacet('maxLength',5);
  162. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  163. $this->assertEqualOrDiff('<input type="text" name="input1" id="'.self::$mysharedfixture->formname.'_input1" maxlength="5" value="laurent"/>', $out);
  164. $this->assertEqualOrDiff('c = new jFormsControlString(\'input1\', \'Votre nom\');
  165. c.maxLength = \'5\';
  166. c.errInvalid=\'"Votre nom" field is invalid\';
  167. jForms.tForm.addControl(c);
  168. ', self::$mysharedfixture->builder->getJsContent());
  169. }
  170. function testOutputCheckbox(){
  171. $ctrl= new jFormsControlCheckbox('chk1');
  172. $ctrl->datatype= new jDatatypeString();
  173. $ctrl->label='Une option';
  174. self::$mysharedfixture->form->addControl($ctrl);
  175. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  176. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_chk1">Une option</label>', $out);
  177. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  178. $this->assertEqualOrDiff('<input type="checkbox" name="chk1" id="'.self::$mysharedfixture->formname.'_chk1" value="1"/>', $out);
  179. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk1\', \'Une option\');
  180. c.errInvalid=\'"Une option" field is invalid\';
  181. jForms.tForm.addControl(c);
  182. ', self::$mysharedfixture->builder->getJsContent());
  183. self::$mysharedfixture->form->setData('chk1','1');
  184. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  185. $this->assertEqualOrDiff('<input type="checkbox" name="chk1" id="'.self::$mysharedfixture->formname.'_chk1" checked="checked" value="1"/>', $out);
  186. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk1\', \'Une option\');
  187. c.errInvalid=\'"Une option" field is invalid\';
  188. jForms.tForm.addControl(c);
  189. ', self::$mysharedfixture->builder->getJsContent());
  190. $ctrl= new jFormsControlCheckbox('chk2');
  191. $ctrl->datatype= new jDatatypeString();
  192. $ctrl->label='Une option';
  193. self::$mysharedfixture->form->addControl($ctrl);
  194. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  195. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_chk2">Une option</label>', $out);
  196. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  197. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" value="1"/>', $out);
  198. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  199. c.errInvalid=\'"Une option" field is invalid\';
  200. jForms.tForm.addControl(c);
  201. ', self::$mysharedfixture->builder->getJsContent());
  202. $ctrl->defaultValue='1';
  203. self::$mysharedfixture->form->removeControl($ctrl->ref);
  204. self::$mysharedfixture->form->addControl($ctrl);
  205. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  206. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" checked="checked" value="1"/>', $out);
  207. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  208. c.errInvalid=\'"Une option" field is invalid\';
  209. jForms.tForm.addControl(c);
  210. ', self::$mysharedfixture->builder->getJsContent());
  211. self::$mysharedfixture->form->setData('chk2', '0');
  212. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  213. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" value="1"/>', $out);
  214. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  215. c.errInvalid=\'"Une option" field is invalid\';
  216. jForms.tForm.addControl(c);
  217. ', self::$mysharedfixture->builder->getJsContent());
  218. $ctrl->setReadOnly(true);
  219. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  220. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" readonly="readonly" class=" jforms-readonly" value="1"/>', $out);
  221. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  222. c.errInvalid=\'"Une option" field is invalid\';
  223. jForms.tForm.addControl(c);
  224. ', self::$mysharedfixture->builder->getJsContent());
  225. self::$mysharedfixture->form->setData('chk2', '1');
  226. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  227. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" readonly="readonly" class=" jforms-readonly" checked="checked" value="1"/>', $out);
  228. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  229. c.errInvalid=\'"Une option" field is invalid\';
  230. jForms.tForm.addControl(c);
  231. ', self::$mysharedfixture->builder->getJsContent());
  232. $ctrl->hint='ceci est un tooltip';
  233. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  234. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_chk2" title="ceci est un tooltip">Une option</label>', $out);
  235. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  236. $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.self::$mysharedfixture->formname.'_chk2" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" checked="checked" value="1"/>', $out);
  237. $this->assertEqualOrDiff('c = new jFormsControlBoolean(\'chk2\', \'Une option\');
  238. c.errInvalid=\'"Une option" field is invalid\';
  239. jForms.tForm.addControl(c);
  240. ', self::$mysharedfixture->builder->getJsContent());
  241. }
  242. function testOutputCheckboxes(){
  243. $ctrl= new jFormsControlcheckboxes('choixsimple');
  244. $ctrl->datatype= new jDatatypeString();
  245. $ctrl->label='Vos choix';
  246. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  247. self::$mysharedfixture->form->addControl($ctrl);
  248. $records = array(
  249. array('id'=>'10', 'name'=>'foo', 'price'=>'12'),
  250. array('id'=>'11', 'name'=>'bar', 'price'=>'54'),
  251. array('id'=>'23', 'name'=>'baz', 'price'=>'97'),
  252. );
  253. $this->insertRecordsIntoTable('product_test', array('id','name','price'), $records, true);
  254. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  255. $this->assertEqualOrDiff('<span class="jforms-label">Vos choix</span>', $out);
  256. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  257. $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_0">foo</label></span>';
  258. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_1" value="11"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_1">bar</label></span>';
  259. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_2">baz</label></span>';
  260. $this->assertEqualOrDiff($result, $out);
  261. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixsimple[]\', \'Vos choix\');
  262. c.errInvalid=\'"Vos choix" field is invalid\';
  263. jForms.tForm.addControl(c);
  264. ', self::$mysharedfixture->builder->getJsContent());
  265. self::$mysharedfixture->form->setData('choixsimple',11);
  266. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  267. $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_0">foo</label></span>';
  268. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_1" value="11" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_1">bar</label></span>';
  269. $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.self::$mysharedfixture->formname.'_choixsimple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_choixsimple_2">baz</label></span>';
  270. $this->assertEqualOrDiff($result, $out);
  271. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixsimple[]\', \'Vos choix\');
  272. c.errInvalid=\'"Vos choix" field is invalid\';
  273. jForms.tForm.addControl(c);
  274. ', self::$mysharedfixture->builder->getJsContent());
  275. $ctrl= new jFormsControlcheckboxes('choixmultiple');
  276. $ctrl->datatype= new jDatatypeString();
  277. $ctrl->label='Vos choix';
  278. $ctrl->datasource= new jFormsStaticDatasource();
  279. $ctrl->datasource->data = array(
  280. '10'=>'foo',
  281. '11'=>'bar',
  282. '23'=>'baz',
  283. );
  284. self::$mysharedfixture->form->addControl($ctrl);
  285. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  286. $this->assertEqualOrDiff('<span class="jforms-label">Vos choix</span>', $out);
  287. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  288. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_0">foo</label></span>';
  289. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_1" value="11"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_1">bar</label></span>';
  290. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_2">baz</label></span>';
  291. $this->assertEqualOrDiff($result, $out);
  292. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  293. c.errInvalid=\'"Vos choix" field is invalid\';
  294. jForms.tForm.addControl(c);
  295. ', self::$mysharedfixture->builder->getJsContent());
  296. self::$mysharedfixture->form->setData('choixmultiple',11);
  297. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  298. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_0">foo</label></span>';
  299. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_1" value="11" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_1">bar</label></span>';
  300. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_2">baz</label></span>';
  301. $this->assertEqualOrDiff($result, $out);
  302. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  303. c.errInvalid=\'"Vos choix" field is invalid\';
  304. jForms.tForm.addControl(c);
  305. ', self::$mysharedfixture->builder->getJsContent());
  306. self::$mysharedfixture->form->setData('choixmultiple',array(10,23));
  307. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  308. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_0" value="10" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_0">foo</label></span>';
  309. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_1" value="11"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_1">bar</label></span>';
  310. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_2" value="23" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_2">baz</label></span>';
  311. $this->assertEqualOrDiff($result, $out);
  312. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  313. c.errInvalid=\'"Vos choix" field is invalid\';
  314. jForms.tForm.addControl(c);
  315. ', self::$mysharedfixture->builder->getJsContent());
  316. $ctrl->setReadOnly(true);
  317. $ctrl->hint='ceci est un tooltip';
  318. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  319. $this->assertEqualOrDiff('<span class="jforms-label" title="ceci est un tooltip">Vos choix</span>', $out);
  320. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  321. $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_0" value="10" checked="checked" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_0">foo</label></span>';
  322. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_1" value="11" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_1">bar</label></span>';
  323. $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.self::$mysharedfixture->formname.'_choixmultiple_2" value="23" checked="checked" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_choixmultiple_2">baz</label></span>';
  324. $this->assertEqualOrDiff($result, $out);
  325. $this->assertEqualOrDiff('c = new jFormsControlString(\'choixmultiple[]\', \'Vos choix\');
  326. c.errInvalid=\'"Vos choix" field is invalid\';
  327. jForms.tForm.addControl(c);
  328. ', self::$mysharedfixture->builder->getJsContent());
  329. }
  330. function testOutputRadiobuttons(){
  331. $ctrl= new jFormsControlradiobuttons('rbchoixsimple');
  332. $ctrl->datatype= new jDatatypeString();
  333. $ctrl->label='Votre choix';
  334. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  335. self::$mysharedfixture->form->addControl($ctrl);
  336. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  337. $this->assertEqualOrDiff('<span class="jforms-label">Votre choix</span>', $out);
  338. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  339. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">foo</label></span>';
  340. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="11"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">bar</label></span>';
  341. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_2">baz</label></span>';
  342. $this->assertEqualOrDiff($result, $out);
  343. $this->assertEqualOrDiff('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  344. c.errInvalid=\'"Votre choix" field is invalid\';
  345. jForms.tForm.addControl(c);
  346. ', self::$mysharedfixture->builder->getJsContent());
  347. self::$mysharedfixture->form->setData('rbchoixsimple',11);
  348. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  349. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">foo</label></span>';
  350. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="11" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">bar</label></span>';
  351. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_2">baz</label></span>';
  352. $this->assertEqualOrDiff($result, $out);
  353. $this->assertEqualOrDiff('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  354. c.errInvalid=\'"Votre choix" field is invalid\';
  355. jForms.tForm.addControl(c);
  356. ', self::$mysharedfixture->builder->getJsContent());
  357. $ctrl->datasource= new jFormsStaticDatasource();
  358. $ctrl->datasource->data = array(
  359. '10'=>'foo',
  360. '11'=>'bar',
  361. '23'=>'baz',
  362. );
  363. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  364. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">foo</label></span>';
  365. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="11" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">bar</label></span>';
  366. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_2" value="23"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_2">baz</label></span>';
  367. $this->assertEqualOrDiff($result, $out);
  368. $this->assertEqualOrDiff('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  369. c.errInvalid=\'"Votre choix" field is invalid\';
  370. jForms.tForm.addControl(c);
  371. ', self::$mysharedfixture->builder->getJsContent());
  372. self::$mysharedfixture->form->setData('rbchoixsimple',23);
  373. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  374. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="10"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">foo</label></span>';
  375. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="11"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">bar</label></span>';
  376. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_2" value="23" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_2">baz</label></span>';
  377. $this->assertEqualOrDiff($result, $out);
  378. $this->assertEqualOrDiff('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  379. c.errInvalid=\'"Votre choix" field is invalid\';
  380. jForms.tForm.addControl(c);
  381. ', self::$mysharedfixture->builder->getJsContent());
  382. $ctrl->setReadOnly(true);
  383. $ctrl->hint='ceci est un tooltip';
  384. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  385. $this->assertEqualOrDiff('<span class="jforms-label" title="ceci est un tooltip">Votre choix</span>', $out);
  386. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  387. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="10" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">foo</label></span>';
  388. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="11" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">bar</label></span>';
  389. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_2" value="23" checked="checked" readonly="readonly" class=" jforms-readonly"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_2">baz</label></span>';
  390. $this->assertEqualOrDiff($result, $out);
  391. $this->assertEqualOrDiff('c = new jFormsControlString(\'rbchoixsimple\', \'Votre choix\');
  392. c.errInvalid=\'"Votre choix" field is invalid\';
  393. jForms.tForm.addControl(c);
  394. ', self::$mysharedfixture->builder->getJsContent());
  395. self::$mysharedfixture->builder->clearJs();
  396. $ctrl->datasource = new jFormsStaticDatasource();
  397. $ctrl->datasource->data = array('1'=>'Yes','0'=>'No');
  398. self::$mysharedfixture->form->setReadOnly('rbchoixsimple',false);
  399. self::$mysharedfixture->form->setData('rbchoixsimple',null);
  400. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  401. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="1"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">Yes</label></span>';
  402. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="0"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">No</label></span>';
  403. $this->assertEqualOrDiff($result, $out);
  404. self::$mysharedfixture->form->setData('rbchoixsimple',0);
  405. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  406. $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_0" value="1"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_0">Yes</label></span>';
  407. $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.self::$mysharedfixture->formname.'_rbchoixsimple_1" value="0" checked="checked"/><label for="'.self::$mysharedfixture->formname.'_rbchoixsimple_1">No</label></span>';
  408. $this->assertEqualOrDiff($result, $out);
  409. self::$mysharedfixture->builder->clearJs();
  410. }
  411. function testOutputMenulist(){
  412. $ctrl= new jFormsControlmenulist('menulist1');
  413. $ctrl->datatype= new jDatatypeString();
  414. $ctrl->label='Votre choix';
  415. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  416. self::$mysharedfixture->form->addControl($ctrl);
  417. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  418. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_menulist1">Votre choix</label>', $out);
  419. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  420. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  421. $result.='<option value="" selected="selected"></option>';
  422. $result.='<option value="10">foo</option>';
  423. $result.='<option value="11">bar</option>';
  424. $result.='<option value="23">baz</option>';
  425. $result.='</select>';
  426. $this->assertEqualOrDiff($result, $out);
  427. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  428. c.errInvalid=\'"Votre choix" field is invalid\';
  429. jForms.tForm.addControl(c);
  430. ', self::$mysharedfixture->builder->getJsContent());
  431. self::$mysharedfixture->form->setData('menulist1',11);
  432. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  433. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  434. $result.='<option value=""></option>';
  435. $result.='<option value="10">foo</option>';
  436. $result.='<option value="11" selected="selected">bar</option>';
  437. $result.='<option value="23">baz</option>';
  438. $result.='</select>';
  439. $this->assertEqualOrDiff($result, $out);
  440. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  441. c.errInvalid=\'"Votre choix" field is invalid\';
  442. jForms.tForm.addControl(c);
  443. ', self::$mysharedfixture->builder->getJsContent());
  444. $ctrl->datasource= new jFormsStaticDatasource();
  445. $ctrl->datasource->data = array(
  446. '10'=>'foo',
  447. '11'=>'bar',
  448. '23'=>'baz',
  449. );
  450. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  451. $this->assertEqualOrDiff($result, $out);
  452. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  453. c.errInvalid=\'"Votre choix" field is invalid\';
  454. jForms.tForm.addControl(c);
  455. ', self::$mysharedfixture->builder->getJsContent());
  456. $ctrl->setReadOnly(true);
  457. $ctrl->hint='ceci est un tooltip';
  458. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  459. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_menulist1" title="ceci est un tooltip">Votre choix</label>', $out);
  460. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  461. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" title="ceci est un tooltip" class=" jforms-readonly" size="1">';
  462. $result.='<option value=""></option>';
  463. $result.='<option value="10">foo</option>';
  464. $result.='<option value="11" selected="selected">bar</option>';
  465. $result.='<option value="23">baz</option>';
  466. $result.='</select>';
  467. $this->assertEqualOrDiff($result, $out);
  468. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  469. c.errInvalid=\'"Votre choix" field is invalid\';
  470. jForms.tForm.addControl(c);
  471. ', self::$mysharedfixture->builder->getJsContent());
  472. $ctrl->required = true;
  473. self::$mysharedfixture->form->setData('menulist1',"23");
  474. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  475. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" title="ceci est un tooltip" class=" jforms-readonly" size="1">';
  476. $result.='<option value="10">foo</option>';
  477. $result.='<option value="11">bar</option>';
  478. $result.='<option value="23" selected="selected">baz</option>';
  479. $result.='</select>';
  480. $this->assertEqualOrDiff($result, $out);
  481. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  482. c.required = true;
  483. c.errRequired=\'"Votre choix" field is required\';
  484. c.errInvalid=\'"Votre choix" field is invalid\';
  485. jForms.tForm.addControl(c);
  486. ', self::$mysharedfixture->builder->getJsContent());
  487. $ctrl->required = false;
  488. self::$mysharedfixture->form->setData('menulist1',"");
  489. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  490. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" title="ceci est un tooltip" class=" jforms-readonly" size="1">';
  491. $result.='<option value="" selected="selected"></option>';
  492. $result.='<option value="10">foo</option>';
  493. $result.='<option value="11">bar</option>';
  494. $result.='<option value="23">baz</option>';
  495. $result.='</select>';
  496. $this->assertEqualOrDiff($result, $out);
  497. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  498. c.errInvalid=\'"Votre choix" field is invalid\';
  499. jForms.tForm.addControl(c);
  500. ', self::$mysharedfixture->builder->getJsContent());
  501. $ctrl->setReadOnly(false);
  502. $ctrl->hint='';
  503. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','15');
  504. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  505. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  506. $result.='<option value="" selected="selected"></option>';
  507. $result.='<option value="10">foo</option>';
  508. $result.='<option value="11">bar</option>';
  509. $result.='</select>';
  510. $this->assertEqualOrDiff($result, $out);
  511. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  512. c.errInvalid=\'"Votre choix" field is invalid\';
  513. jForms.tForm.addControl(c);
  514. ', self::$mysharedfixture->builder->getJsContent());
  515. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','','11');
  516. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  517. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  518. $result.='<option value="" selected="selected"></option>';
  519. $result.='<option value="10">foo</option>';
  520. $result.='</select>';
  521. $this->assertEqualOrDiff($result, $out);
  522. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  523. c.errInvalid=\'"Votre choix" field is invalid\';
  524. jForms.tForm.addControl(c);
  525. ', self::$mysharedfixture->builder->getJsContent());
  526. self::$mysharedfixture->form->setData('menulist1',"10");
  527. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  528. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  529. $result.='<option value=""></option>';
  530. $result.='<option value="10" selected="selected">foo</option>';
  531. $result.='</select>';
  532. $this->assertEqualOrDiff($result, $out);
  533. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  534. c.errInvalid=\'"Votre choix" field is invalid\';
  535. jForms.tForm.addControl(c);
  536. ', self::$mysharedfixture->builder->getJsContent());
  537. self::$mysharedfixture->form->setData('menulist1',"");
  538. self::$mysharedfixture->form->addControl(new jFormsControlHidden('hidden1'));
  539. self::$mysharedfixture->form->setData('hidden1',"25");
  540. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','',null, 'hidden1');
  541. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  542. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  543. $result.='<option value="" selected="selected"></option>';
  544. $result.='<option value="10">foo</option>';
  545. $result.='<option value="11">bar</option>';
  546. $result.='<option value="23">baz</option>';
  547. $result.='</select>';
  548. $this->assertEqualOrDiff($result, $out);
  549. $this->assertEqualOrDiff('c = new jFormsControlString(\'menulist1\', \'Votre choix\');
  550. c.errInvalid=\'"Votre choix" field is invalid\';
  551. jForms.tForm.addControl(c);
  552. ', self::$mysharedfixture->builder->getJsContent());
  553. self::$mysharedfixture->form->setData('hidden1',"15");
  554. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  555. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  556. $result.='<option value="" selected="selected"></option>';
  557. $result.='<option value="10">foo</option>';
  558. $result.='<option value="11">bar</option>';
  559. $result.='</select>';
  560. $this->assertEqualOrDiff($result, $out);
  561. self::$mysharedfixture->form->setData('menulist1',"10");
  562. self::$mysharedfixture->form->setData('hidden1',"11");
  563. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  564. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  565. $result.='<option value=""></option>';
  566. $result.='<option value="10" selected="selected">foo</option>';
  567. $result.='</select>';
  568. $this->assertEqualOrDiff($result, $out);
  569. self::$mysharedfixture->form->setData('menulist1',"");
  570. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null);
  571. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  572. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  573. $result.='<option value="" selected="selected"></option>';
  574. $result.='<option value="10">foo12</option>';
  575. $result.='<option value="11">bar54</option>';
  576. $result.='<option value="23">baz97</option>';
  577. $result.='</select>';
  578. $this->assertEqualOrDiff($result, $out);
  579. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name,price','id','','25',null,' - ');
  580. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  581. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  582. $result.='<option value="" selected="selected"></option>';
  583. $result.='<option value="10">foo - 12</option>';
  584. $result.='<option value="11">bar - 54</option>';
  585. $result.='<option value="23">baz - 97</option>';
  586. $result.='</select>';
  587. $this->assertEqualOrDiff($result, $out);
  588. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','9,25',null,' - ');
  589. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  590. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  591. $result.='<option value="" selected="selected"></option>';
  592. $result.='<option value="10">foo - 12</option>';
  593. $result.='<option value="11">bar - 54</option>';
  594. $result.='<option value="23">baz - 97</option>';
  595. $result.='</select>';
  596. $this->assertEqualOrDiff($result, $out);
  597. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','','10,25',null,' - ');
  598. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  599. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  600. $result.='<option value="" selected="selected"></option>';
  601. $result.='<option value="11">bar - 54</option>';
  602. $result.='<option value="23">baz - 97</option>';
  603. $result.='</select>';
  604. $this->assertEqualOrDiff($result, $out);
  605. self::$mysharedfixture->form->addControl(new jFormsControlHidden('hidden2'));
  606. self::$mysharedfixture->form->setData('hidden1',"9");
  607. self::$mysharedfixture->form->setData('hidden2',"25");
  608. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  609. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  610. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  611. $result.='<option value="" selected="selected"></option>';
  612. $result.='<option value="10">foo - 12</option>';
  613. $result.='<option value="11">bar - 54</option>';
  614. $result.='<option value="23">baz - 97</option>';
  615. $result.='</select>';
  616. $this->assertEqualOrDiff($result, $out);
  617. self::$mysharedfixture->form->setData('hidden1',"10");
  618. self::$mysharedfixture->form->setData('hidden2',"25");
  619. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findBetweenId','name,price','id','',null,'hidden1,hidden2',' - ');
  620. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  621. $result='<select name="menulist1" id="'.self::$mysharedfixture->formname.'_menulist1" size="1">';
  622. $result.='<option value="" selected="selected"></option>';
  623. $result.='<option value="11">bar - 54</option>';
  624. $result.='<option value="23">baz - 97</option>';
  625. $result.='</select>';
  626. $this->assertEqualOrDiff($result, $out);
  627. self::$mysharedfixture->form->removeControl('hidden2');
  628. self::$mysharedfixture->form->setData('hidden1',"11");
  629. self::$mysharedfixture->builder->clearJs();
  630. }
  631. function testOutputListbox(){
  632. $ctrl= new jFormsControllistbox('listbox1');
  633. $ctrl->datatype= new jDatatypeString();
  634. $ctrl->label='Votre choix';
  635. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  636. self::$mysharedfixture->form->addControl($ctrl);
  637. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  638. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_listbox1">Votre choix</label>', $out);
  639. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  640. $result='<select name="listbox1" id="'.self::$mysharedfixture->formname.'_listbox1" size="4">';
  641. $result.='<option value="10">foo</option>';
  642. $result.='<option value="11">bar</option>';
  643. $result.='<option value="23">baz</option>';
  644. $result.='</select>';
  645. $this->assertEqualOrDiff($result, $out);
  646. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  647. c.errInvalid=\'"Votre choix" field is invalid\';
  648. jForms.tForm.addControl(c);
  649. ', self::$mysharedfixture->builder->getJsContent());
  650. self::$mysharedfixture->form->setData('listbox1',"23");
  651. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  652. $result='<select name="listbox1" id="'.self::$mysharedfixture->formname.'_listbox1" size="4">';
  653. $result.='<option value="10">foo</option>';
  654. $result.='<option value="11">bar</option>';
  655. $result.='<option value="23" selected="selected">baz</option>';
  656. $result.='</select>';
  657. $this->assertEqualOrDiff($result, $out);
  658. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  659. c.errInvalid=\'"Votre choix" field is invalid\';
  660. jForms.tForm.addControl(c);
  661. ', self::$mysharedfixture->builder->getJsContent());
  662. $ctrl->datasource= new jFormsStaticDatasource();
  663. $ctrl->datasource->data = array(
  664. '10'=>'foo',
  665. '11'=>'bar',
  666. '23'=>'baz',
  667. );
  668. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  669. $this->assertEqualOrDiff($result, $out);
  670. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  671. c.errInvalid=\'"Votre choix" field is invalid\';
  672. jForms.tForm.addControl(c);
  673. ', self::$mysharedfixture->builder->getJsContent());
  674. $ctrl->setReadOnly(true);
  675. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  676. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_listbox1">Votre choix</label>', $out);
  677. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  678. $result='<select name="listbox1" id="'.self::$mysharedfixture->formname.'_listbox1" class=" jforms-readonly" size="4">';
  679. $result.='<option value="10">foo</option>';
  680. $result.='<option value="11">bar</option>';
  681. $result.='<option value="23" selected="selected">baz</option>';
  682. $result.='</select>';
  683. $this->assertEqualOrDiff($result, $out);
  684. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox1\', \'Votre choix\');
  685. c.errInvalid=\'"Votre choix" field is invalid\';
  686. jForms.tForm.addControl(c);
  687. ', self::$mysharedfixture->builder->getJsContent());
  688. $ctrl= new jFormsControllistbox('lbchoixmultiple');
  689. $ctrl->datatype= new jDatatypeString();
  690. $ctrl->label='Votre choix';
  691. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  692. $ctrl->multiple=true;
  693. $ctrl->hint='ceci est un tooltip';
  694. self::$mysharedfixture->form->addControl($ctrl);
  695. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  696. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_lbchoixmultiple" title="ceci est un tooltip">Votre choix</label>', $out);
  697. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  698. $result='<select name="lbchoixmultiple[]" id="'.self::$mysharedfixture->formname.'_lbchoixmultiple" title="ceci est un tooltip" size="4" multiple="multiple">';
  699. $result.='<option value="10">foo</option>';
  700. $result.='<option value="11">bar</option>';
  701. $result.='<option value="23">baz</option>';
  702. $result.='</select>';
  703. $this->assertEqualOrDiff($result, $out);
  704. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple[]\', \'Votre choix\');
  705. c.multiple = true;
  706. c.errInvalid=\'"Votre choix" field is invalid\';
  707. jForms.tForm.addControl(c);
  708. ', self::$mysharedfixture->builder->getJsContent());
  709. self::$mysharedfixture->form->setData('lbchoixmultiple',array(10,23));
  710. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  711. $result='<select name="lbchoixmultiple[]" id="'.self::$mysharedfixture->formname.'_lbchoixmultiple" title="ceci est un tooltip" size="4" multiple="multiple">';
  712. $result.='<option value="10" selected="selected">foo</option>';
  713. $result.='<option value="11">bar</option>';
  714. $result.='<option value="23" selected="selected">baz</option>';
  715. $result.='</select>';
  716. $this->assertEqualOrDiff($result, $out);
  717. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple[]\', \'Votre choix\');
  718. c.multiple = true;
  719. c.errInvalid=\'"Votre choix" field is invalid\';
  720. jForms.tForm.addControl(c);
  721. ', self::$mysharedfixture->builder->getJsContent());
  722. $ctrl= new jFormsControllistbox('listbox2');
  723. $ctrl->datatype= new jDatatypeString();
  724. $ctrl->label='Votre choix';
  725. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  726. $ctrl->defaultValue=array ('10');
  727. self::$mysharedfixture->form->addControl($ctrl);
  728. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  729. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_listbox2">Votre choix</label>', $out);
  730. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  731. $result='<select name="listbox2" id="'.self::$mysharedfixture->formname.'_listbox2" size="4">';
  732. $result.='<option value="10" selected="selected">foo</option>';
  733. $result.='<option value="11">bar</option>';
  734. $result.='<option value="23">baz</option>';
  735. $result.='</select>';
  736. $this->assertEqualOrDiff($result, $out);
  737. $this->assertEqualOrDiff('c = new jFormsControlString(\'listbox2\', \'Votre choix\');
  738. c.errInvalid=\'"Votre choix" field is invalid\';
  739. jForms.tForm.addControl(c);
  740. ', self::$mysharedfixture->builder->getJsContent());
  741. $ctrl= new jFormsControllistbox('lbchoixmultiple2');
  742. $ctrl->datatype= new jDatatypeString();
  743. $ctrl->label='Votre choix';
  744. $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id');
  745. $ctrl->multiple=true;
  746. $ctrl->size=8;
  747. $ctrl->defaultValue=array ('11','23');
  748. self::$mysharedfixture->form->addControl($ctrl);
  749. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  750. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_lbchoixmultiple2">Votre choix</label>', $out);
  751. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  752. $result='<select name="lbchoixmultiple2[]" id="'.self::$mysharedfixture->formname.'_lbchoixmultiple2" size="8" multiple="multiple">';
  753. $result.='<option value="10">foo</option>';
  754. $result.='<option value="11" selected="selected">bar</option>';
  755. $result.='<option value="23" selected="selected">baz</option>';
  756. $result.='</select>';
  757. $this->assertEqualOrDiff($result, $out);
  758. $this->assertEqualOrDiff('c = new jFormsControlString(\'lbchoixmultiple2[]\', \'Votre choix\');
  759. c.multiple = true;
  760. c.errInvalid=\'"Votre choix" field is invalid\';
  761. jForms.tForm.addControl(c);
  762. ', self::$mysharedfixture->builder->getJsContent());
  763. }
  764. function testOutputListboxClassDatasource(){
  765. $ctrl= new jFormsControllistbox('listboxclass');
  766. $ctrl->datatype= new jDatatypeString();
  767. $ctrl->label='Votre choix';
  768. jClasses::inc('mydatasource');
  769. $ctrl->datasource = new mydatasource(0);
  770. self::$mysharedfixture->form->addControl($ctrl);
  771. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  772. $result='<select name="listboxclass" id="'.self::$mysharedfixture->formname.'_listboxclass" size="4">';
  773. $result.='<option value="aaa">label for aaa</option>';
  774. $result.='<option value="bbb">label for bbb</option>';
  775. $result.='<option value="ccc">label for ccc</option>';
  776. $result.='<option value="ddd">label for ddd</option>';
  777. $result.='</select>';
  778. $this->assertEqualOrDiff($result, $out);
  779. $this->assertEqualOrDiff('c = new jFormsControlString(\'listboxclass\', \'Votre choix\');
  780. c.errInvalid=\'"Votre choix" field is invalid\';
  781. jForms.tForm.addControl(c);
  782. ', self::$mysharedfixture->builder->getJsContent());
  783. }
  784. function testOutputTextarea(){
  785. $ctrl= new jFormsControltextarea('textarea1');
  786. $ctrl->datatype= new jDatatypeString();
  787. $ctrl->label='Votre nom';
  788. self::$mysharedfixture->form->addControl($ctrl);
  789. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  790. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_textarea1">Votre nom</label>', $out);
  791. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  792. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" rows="5" cols="40"></textarea>', $out);
  793. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  794. c.errInvalid=\'"Votre nom" field is invalid\';
  795. jForms.tForm.addControl(c);
  796. ', self::$mysharedfixture->builder->getJsContent());
  797. self::$mysharedfixture->form->setData('textarea1','laurent');
  798. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  799. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" rows="5" cols="40">laurent</textarea>', $out);
  800. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  801. c.errInvalid=\'"Votre nom" field is invalid\';
  802. jForms.tForm.addControl(c);
  803. ', self::$mysharedfixture->builder->getJsContent());
  804. $ctrl->setReadOnly(true);
  805. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  806. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" readonly="readonly" class=" jforms-readonly" rows="5" cols="40">laurent</textarea>', $out);
  807. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  808. c.errInvalid=\'"Votre nom" field is invalid\';
  809. jForms.tForm.addControl(c);
  810. ', self::$mysharedfixture->builder->getJsContent());
  811. $ctrl->hint='ceci est un tooltip';
  812. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  813. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_textarea1" title="ceci est un tooltip">Votre nom</label>', $out);
  814. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  815. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="5" cols="40">laurent</textarea>', $out);
  816. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  817. c.errInvalid=\'"Votre nom" field is invalid\';
  818. jForms.tForm.addControl(c);
  819. ', self::$mysharedfixture->builder->getJsContent());
  820. $ctrl->rows=20;
  821. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  822. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="20" cols="40">laurent</textarea>', $out);
  823. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  824. c.errInvalid=\'"Votre nom" field is invalid\';
  825. jForms.tForm.addControl(c);
  826. ', self::$mysharedfixture->builder->getJsContent());
  827. $ctrl->cols=60;
  828. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  829. $this->assertEqualOrDiff('<textarea name="textarea1" id="'.self::$mysharedfixture->formname.'_textarea1" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="20" cols="60">laurent</textarea>', $out);
  830. $this->assertEqualOrDiff('c = new jFormsControlString(\'textarea1\', \'Votre nom\');
  831. c.errInvalid=\'"Votre nom" field is invalid\';
  832. jForms.tForm.addControl(c);
  833. ', self::$mysharedfixture->builder->getJsContent());
  834. }
  835. function testOutputSecret(){
  836. $ctrl= new jFormsControlSecret('passwd');
  837. $ctrl->datatype= new jDatatypeString();
  838. $ctrl->label='mot de passe';
  839. self::$mysharedfixture->form->addControl($ctrl);
  840. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  841. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_passwd">mot de passe</label>', $out);
  842. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  843. $this->assertEqualOrDiff('<input type="password" name="passwd" id="'.self::$mysharedfixture->formname.'_passwd" value=""/>', $out);
  844. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  845. c.errInvalid=\'"mot de passe" field is invalid\';
  846. jForms.tForm.addControl(c);
  847. ', self::$mysharedfixture->builder->getJsContent());
  848. self::$mysharedfixture->form->setData('passwd','laurent');
  849. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  850. $this->assertEqualOrDiff('<input type="password" name="passwd" id="'.self::$mysharedfixture->formname.'_passwd" value="laurent"/>', $out);
  851. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  852. c.errInvalid=\'"mot de passe" field is invalid\';
  853. jForms.tForm.addControl(c);
  854. ', self::$mysharedfixture->builder->getJsContent());
  855. $ctrl->setReadOnly(true);
  856. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  857. $this->assertEqualOrDiff('<input type="password" name="passwd" id="'.self::$mysharedfixture->formname.'_passwd" readonly="readonly" class=" jforms-readonly" value="laurent"/>', $out);
  858. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  859. c.errInvalid=\'"mot de passe" field is invalid\';
  860. jForms.tForm.addControl(c);
  861. ', self::$mysharedfixture->builder->getJsContent());
  862. $ctrl->hint='ceci est un tooltip';
  863. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  864. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_passwd" title="ceci est un tooltip">mot de passe</label>', $out);
  865. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  866. $this->assertEqualOrDiff('<input type="password" name="passwd" id="'.self::$mysharedfixture->formname.'_passwd" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" value="laurent"/>', $out);
  867. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  868. c.errInvalid=\'"mot de passe" field is invalid\';
  869. jForms.tForm.addControl(c);
  870. ', self::$mysharedfixture->builder->getJsContent());
  871. $ctrl->datatype->addFacet('minLength',5);
  872. $ctrl->datatype->addFacet('maxLength',10);
  873. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  874. $this->assertEqualOrDiff('<input type="password" name="passwd" id="'.self::$mysharedfixture->formname.'_passwd" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" maxlength="10" value="laurent"/>', $out);
  875. $this->assertEqualOrDiff('c = new jFormsControlSecret(\'passwd\', \'mot de passe\');
  876. c.maxLength = \'10\';
  877. c.minLength = \'5\';
  878. c.errInvalid=\'"mot de passe" field is invalid\';
  879. jForms.tForm.addControl(c);
  880. ', self::$mysharedfixture->builder->getJsContent());
  881. }
  882. function testOutputSecretConfirm(){
  883. $ctrl= new jFormsControlSecretConfirm('passwd_confirm');
  884. $ctrl->label='confirmation mot de passe';
  885. self::$mysharedfixture->form->addControl($ctrl);
  886. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  887. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_passwd_confirm">confirmation mot de passe</label>', $out);
  888. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  889. $this->assertEqualOrDiff('<input type="password" name="passwd_confirm" id="'.self::$mysharedfixture->formname.'_passwd_confirm" value=""/>', $out);
  890. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  891. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  892. jForms.tForm.addControl(c);
  893. ', self::$mysharedfixture->builder->getJsContent());
  894. $ctrl->required = true;
  895. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  896. $this->assertEqualOrDiff('<input type="password" name="passwd_confirm" id="'.self::$mysharedfixture->formname.'_passwd_confirm" class=" jforms-required" value=""/>', $out);
  897. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  898. c.required = true;
  899. c.errRequired=\'"confirmation mot de passe" field is required\';
  900. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  901. jForms.tForm.addControl(c);
  902. ', self::$mysharedfixture->builder->getJsContent());
  903. $ctrl->required = false;
  904. $ctrl->setReadOnly(true);
  905. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  906. $this->assertEqualOrDiff('<input type="password" name="passwd_confirm" id="'.self::$mysharedfixture->formname.'_passwd_confirm" readonly="readonly" class=" jforms-readonly" value=""/>', $out);
  907. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  908. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  909. jForms.tForm.addControl(c);
  910. ', self::$mysharedfixture->builder->getJsContent());
  911. $ctrl->hint='ceci est un tooltip';
  912. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  913. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_passwd_confirm" title="ceci est un tooltip">confirmation mot de passe</label>', $out);
  914. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  915. $this->assertEqualOrDiff('<input type="password" name="passwd_confirm" id="'.self::$mysharedfixture->formname.'_passwd_confirm" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" value=""/>', $out);
  916. $this->assertEqualOrDiff('c = new jFormsControlConfirm(\'passwd_confirm\', \'confirmation mot de passe\');
  917. c.errInvalid=\'"confirmation mot de passe" field is invalid\';
  918. jForms.tForm.addControl(c);
  919. ', self::$mysharedfixture->builder->getJsContent());
  920. }
  921. function testOutputOutput(){
  922. $ctrl= new jFormsControlOutput('output1');
  923. $ctrl->datatype= new jDatatypeString();
  924. $ctrl->label='Votre nom';
  925. self::$mysharedfixture->form->addControl($ctrl);
  926. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  927. $this->assertEqualOrDiff('<span class="jforms-label">Votre nom</span>', $out);
  928. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  929. $this->assertEqualOrDiff('<input type="hidden" name="output1" id="'.self::$mysharedfixture->formname.'_output1" value=""/><span class="jforms-value"></span>', $out);
  930. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  931. self::$mysharedfixture->form->setData('output1','laurent');
  932. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  933. $this->assertEqualOrDiff('<input type="hidden" name="output1" id="'.self::$mysharedfixture->formname.'_output1" value="laurent"/><span class="jforms-value">laurent</span>', $out);
  934. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  935. $ctrl->setReadOnly(true);
  936. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  937. $this->assertEqualOrDiff('<input type="hidden" name="output1" id="'.self::$mysharedfixture->formname.'_output1" value="laurent"/><span class="jforms-value">laurent</span>', $out);
  938. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  939. $ctrl->hint='ceci est un tooltip';
  940. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  941. $this->assertEqualOrDiff('<span class="jforms-label" title="ceci est un tooltip">Votre nom</span>', $out);
  942. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  943. $this->assertEqualOrDiff('<input type="hidden" name="output1" id="'.self::$mysharedfixture->formname.'_output1" value="laurent"/><span class="jforms-value" title="ceci est un tooltip">laurent</span>', $out);
  944. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  945. }
  946. function testOutputUpload(){
  947. $ctrl= new jFormsControlUpload('upload1');
  948. $ctrl->datatype= new jDatatypeString();
  949. $ctrl->label='Votre nom';
  950. self::$mysharedfixture->form->addControl($ctrl);
  951. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  952. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_upload1">Votre nom</label>', $out);
  953. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  954. $this->assertEqualOrDiff('<input type="file" name="upload1" id="'.self::$mysharedfixture->formname.'_upload1" value=""/>', $out);
  955. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  956. c.errInvalid=\'"Votre nom" field is invalid\';
  957. jForms.tForm.addControl(c);
  958. ', self::$mysharedfixture->builder->getJsContent());
  959. $ctrl->setReadOnly(true);
  960. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  961. $this->assertEqualOrDiff('<input type="file" name="upload1" id="'.self::$mysharedfixture->formname.'_upload1" readonly="readonly" class=" jforms-readonly" value=""/>', $out);
  962. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  963. c.errInvalid=\'"Votre nom" field is invalid\';
  964. jForms.tForm.addControl(c);
  965. ', self::$mysharedfixture->builder->getJsContent());
  966. $ctrl->hint='ceci est un tooltip';
  967. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  968. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_upload1" title="ceci est un tooltip">Votre nom</label>', $out);
  969. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  970. $this->assertEqualOrDiff('<input type="file" name="upload1" id="'.self::$mysharedfixture->formname.'_upload1" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" value=""/>', $out);
  971. $this->assertEqualOrDiff('c = new jFormsControlString(\'upload1\', \'Votre nom\');
  972. c.errInvalid=\'"Votre nom" field is invalid\';
  973. jForms.tForm.addControl(c);
  974. ', self::$mysharedfixture->builder->getJsContent());
  975. ob_start();
  976. self::$mysharedfixture->builder->outputHeader(array('method'=>'post'));
  977. $out = ob_get_clean();
  978. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.self::$mysharedfixture->formname.'" enctype="multipart/form-data"><script type="text/javascript">
  979. //<![CDATA[
  980. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  981. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorAlert());
  982. jForms.tForm.setHelpDecorator(new jFormsHelpDecoratorAlert());
  983. jForms.declareForm(jForms.tForm);
  984. //]]>
  985. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  986. <input type="hidden" name="module" value="jelix_tests"/>
  987. <input type="hidden" name="action" value="urlsig:url1"/>
  988. <input type="hidden" name="hidden1" id="'.self::$mysharedfixture->formname.'_hidden1" value="11"/>
  989. </div>';
  990. $this->assertEqualOrDiff($result, $out);
  991. self::$mysharedfixture->form->removeControl('upload1');
  992. }
  993. function testOutputSubmit(){
  994. $ctrl= new jFormsControlSubmit('submit1');
  995. $ctrl->datatype= new jDatatypeString();
  996. $ctrl->label='Ok';
  997. self::$mysharedfixture->form->addControl($ctrl);
  998. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  999. $this->assertEqualOrDiff('', $out);
  1000. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1001. $this->assertEqualOrDiff('<input type="submit" name="submit1" id="'.self::$mysharedfixture->formname.'_submit1" class="jforms-submit" value="Ok"/>', $out);
  1002. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1003. $ctrl->setReadOnly(true);
  1004. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1005. $this->assertEqualOrDiff('<input type="submit" name="submit1" id="'.self::$mysharedfixture->formname.'_submit1" class="jforms-submit" value="Ok"/>', $out);
  1006. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1007. $ctrl->hint='ceci est un tooltip';
  1008. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1009. $this->assertEqualOrDiff('<input type="submit" name="submit1" id="'.self::$mysharedfixture->formname.'_submit1" title="ceci est un tooltip" class="jforms-submit" value="Ok"/>', $out);
  1010. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1011. $ctrl->standalone=false;
  1012. $ctrl->datasource= new jFormsStaticDatasource();
  1013. $ctrl->datasource->data = array('svg'=>'Sauvegarde','prev'=>'Preview');
  1014. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1015. $output = '<input type="submit" name="submit1" id="'.self::$mysharedfixture->formname.'_submit1_svg" title="ceci est un tooltip" class="jforms-submit" value="Sauvegarde"/> ';
  1016. $output .= '<input type="submit" name="submit1" id="'.self::$mysharedfixture->formname.'_submit1_prev" title="ceci est un tooltip" class="jforms-submit" value="Preview"/> ';
  1017. $this->assertEqualOrDiff($output, $out);
  1018. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1019. }
  1020. function testOutputReset(){
  1021. $ctrl= new jFormsControlReset('reset1');
  1022. $ctrl->datatype= new jDatatypeString();
  1023. $ctrl->label='Effacer';
  1024. self::$mysharedfixture->form->addControl($ctrl);
  1025. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1026. $this->assertEqualOrDiff('', $out);
  1027. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1028. $this->assertEqualOrDiff('<button type="reset" name="reset1" id="'.self::$mysharedfixture->formname.'_reset1" class="jforms-reset">Effacer</button>', $out);
  1029. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1030. $ctrl->setReadOnly(true);
  1031. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1032. $this->assertEqualOrDiff('<button type="reset" name="reset1" id="'.self::$mysharedfixture->formname.'_reset1" class="jforms-reset">Effacer</button>', $out);
  1033. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1034. $ctrl->hint='ceci est un tooltip';
  1035. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1036. $this->assertEqualOrDiff('<button type="reset" name="reset1" id="'.self::$mysharedfixture->formname.'_reset1" title="ceci est un tooltip" class="jforms-reset">Effacer</button>', $out);
  1037. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1038. }
  1039. function testOutputHidden(){
  1040. $ctrl= new jFormsControlHidden('hidden2');
  1041. self::$mysharedfixture->form->addControl($ctrl);
  1042. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1043. $this->assertEqualOrDiff('', $out);
  1044. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1045. $this->assertEqualOrDiff('', $out);
  1046. $this->assertEqualOrDiff('', self::$mysharedfixture->builder->getJsContent());
  1047. ob_start();
  1048. self::$mysharedfixture->builder->outputHeader(array('method'=>'post'));
  1049. $out = ob_get_clean();
  1050. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.self::$mysharedfixture->formname.'"><script type="text/javascript">
  1051. //<![CDATA[
  1052. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  1053. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorAlert());
  1054. jForms.tForm.setHelpDecorator(new jFormsHelpDecoratorAlert());
  1055. jForms.declareForm(jForms.tForm);
  1056. //]]>
  1057. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  1058. <input type="hidden" name="module" value="jelix_tests"/>
  1059. <input type="hidden" name="action" value="urlsig:url1"/>
  1060. <input type="hidden" name="hidden1" id="'.self::$mysharedfixture->formname.'_hidden1" value="11"/>
  1061. <input type="hidden" name="hidden2" id="'.self::$mysharedfixture->formname.'_hidden2" value=""/>
  1062. </div>';
  1063. $this->assertEqualOrDiff($result, $out);
  1064. $ctrl->defaultValue='toto';
  1065. self::$mysharedfixture->form->removeControl($ctrl->ref);
  1066. self::$mysharedfixture->form->addControl($ctrl);
  1067. ob_start();
  1068. self::$mysharedfixture->builder->outputHeader(array('method'=>'post'));
  1069. $out = ob_get_clean();
  1070. $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.self::$mysharedfixture->formname.'"><script type="text/javascript">
  1071. //<![CDATA[
  1072. jForms.tForm = new jFormsForm(\'jforms_formtestlight1\');
  1073. jForms.tForm.setErrorDecorator(new jFormsErrorDecoratorAlert());
  1074. jForms.tForm.setHelpDecorator(new jFormsHelpDecoratorAlert());
  1075. jForms.declareForm(jForms.tForm);
  1076. //]]>
  1077. </script><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/>
  1078. <input type="hidden" name="module" value="jelix_tests"/>
  1079. <input type="hidden" name="action" value="urlsig:url1"/>
  1080. <input type="hidden" name="hidden1" id="'.self::$mysharedfixture->formname.'_hidden1" value="11"/>
  1081. <input type="hidden" name="hidden2" id="'.self::$mysharedfixture->formname.'_hidden2" value="toto"/>
  1082. </div>';
  1083. $this->assertEqualOrDiff($result, $out);
  1084. }
  1085. function testOutputCaptcha(){
  1086. $ctrl= new jFormsControlcaptcha('cap');
  1087. $ctrl->label='captcha for security';
  1088. self::$mysharedfixture->form->addControl($ctrl);
  1089. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1090. $this->assertEqualOrDiff('<label class="jforms-label jforms-required" for="'.self::$mysharedfixture->formname.'_cap">captcha for security</label>', $out);
  1091. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1092. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input type="text" name="cap" id="'.self::$mysharedfixture->formname.'_cap" class=" jforms-required" value=""/>', $out);
  1093. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1094. c.required = true;
  1095. c.errRequired=\'"captcha for security" field is required\';
  1096. c.errInvalid=\'"captcha for security" field is invalid\';
  1097. jForms.tForm.addControl(c);
  1098. ', self::$mysharedfixture->builder->getJsContent());
  1099. self::$mysharedfixture->form->setData('cap','toto');
  1100. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1101. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input type="text" name="cap" id="'.self::$mysharedfixture->formname.'_cap" class=" jforms-required" value=""/>', $out);
  1102. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1103. c.required = true;
  1104. c.errRequired=\'"captcha for security" field is required\';
  1105. c.errInvalid=\'"captcha for security" field is invalid\';
  1106. jForms.tForm.addControl(c);
  1107. ', self::$mysharedfixture->builder->getJsContent());
  1108. $ctrl->setReadOnly(true);
  1109. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1110. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input type="text" name="cap" id="'.self::$mysharedfixture->formname.'_cap" value=""/>', $out);
  1111. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1112. c.required = true;
  1113. c.errRequired=\'"captcha for security" field is required\';
  1114. c.errInvalid=\'"captcha for security" field is invalid\';
  1115. jForms.tForm.addControl(c);
  1116. ', self::$mysharedfixture->builder->getJsContent());
  1117. $ctrl->setReadOnly(false);
  1118. $ctrl->help='some help';
  1119. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1120. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input type="text" name="cap" id="'.self::$mysharedfixture->formname.'_cap" class=" jforms-required" value=""/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. self::$mysharedfixture->formname.'\',\'cap\')">?</a></span>', $out);
  1121. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1122. c.help=\'some help\';
  1123. c.required = true;
  1124. c.errRequired=\'"captcha for security" field is required\';
  1125. c.errInvalid=\'"captcha for security" field is invalid\';
  1126. jForms.tForm.addControl(c);
  1127. ', self::$mysharedfixture->builder->getJsContent());
  1128. $ctrl->hint='ceci est un tooltip';
  1129. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1130. $this->assertEqualOrDiff('<label class="jforms-label jforms-required" for="'.self::$mysharedfixture->formname.'_cap" title="ceci est un tooltip">captcha for security</label>', $out);
  1131. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1132. $this->assertEqualOrDiff('<span class="jforms-captcha-question">'.htmlspecialchars($ctrl->question).'</span> <input type="text" name="cap" id="'.self::$mysharedfixture->formname.'_cap" title="ceci est un tooltip" class=" jforms-required" value=""/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. self::$mysharedfixture->formname.'\',\'cap\')">?</a></span>', $out);
  1133. $this->assertEqualOrDiff('c = new jFormsControlString(\'cap\', \'captcha for security\');
  1134. c.help=\'some help\';
  1135. c.required = true;
  1136. c.errRequired=\'"captcha for security" field is required\';
  1137. c.errInvalid=\'"captcha for security" field is invalid\';
  1138. jForms.tForm.addControl(c);
  1139. ', self::$mysharedfixture->builder->getJsContent());
  1140. }
  1141. function testOutputHtmleditor(){
  1142. $ctrl= new jFormsControlhtmleditor('contenu');
  1143. $ctrl->label='Texte';
  1144. self::$mysharedfixture->form->addControl($ctrl);
  1145. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1146. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_contenu">Texte</label>', $out);
  1147. self::$mysharedfixture->form->setData('contenu','<p>Ceci est un contenu</p>');
  1148. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1149. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1150. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1151. c.errInvalid=\'"Texte" field is invalid\';
  1152. jForms.tForm.addControl(c);
  1153. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1154. ', self::$mysharedfixture->builder->getJsContent());
  1155. $ctrl->setReadOnly(true);
  1156. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1157. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" readonly="readonly" class=" jforms-readonly" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1158. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1159. c.errInvalid=\'"Texte" field is invalid\';
  1160. jForms.tForm.addControl(c);
  1161. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1162. ', self::$mysharedfixture->builder->getJsContent());
  1163. $ctrl->hint='ceci est un tooltip';
  1164. ob_start();self::$mysharedfixture->builder->outputControlLabel($ctrl);$out = ob_get_clean();
  1165. $this->assertEqualOrDiff('<label class="jforms-label" for="'.self::$mysharedfixture->formname.'_contenu" title="ceci est un tooltip">Texte</label>', $out);
  1166. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1167. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="5" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1168. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1169. c.errInvalid=\'"Texte" field is invalid\';
  1170. jForms.tForm.addControl(c);
  1171. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1172. ', self::$mysharedfixture->builder->getJsContent());
  1173. $ctrl->rows=20;
  1174. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1175. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="20" cols="40">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1176. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1177. c.errInvalid=\'"Texte" field is invalid\';
  1178. jForms.tForm.addControl(c);
  1179. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1180. ', self::$mysharedfixture->builder->getJsContent());
  1181. $ctrl->cols=60;
  1182. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1183. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="20" cols="60">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1184. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1185. c.errInvalid=\'"Texte" field is invalid\';
  1186. jForms.tForm.addControl(c);
  1187. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1188. ', self::$mysharedfixture->builder->getJsContent());
  1189. $ctrl->required=true;
  1190. ob_start();self::$mysharedfixture->builder->outputControl($ctrl);$out = ob_get_clean();
  1191. $this->assertEqualOrDiff('<textarea name="contenu" id="'.self::$mysharedfixture->formname.'_contenu" readonly="readonly" title="ceci est un tooltip" class=" jforms-readonly" rows="20" cols="60">&lt;p&gt;Ceci est un contenu&lt;/p&gt;</textarea>', $out);
  1192. $this->assertEqualOrDiff('c = new jFormsControlString(\'contenu\', \'Texte\');
  1193. c.required = true;
  1194. c.errRequired=\'"Texte" field is required\';
  1195. c.errInvalid=\'"Texte" field is invalid\';
  1196. jForms.tForm.addControl(c);
  1197. jelix_wymeditor_default("jforms_formtestlight1_contenu","jforms_formtestlight1");
  1198. ', self::$mysharedfixture->builder->getJsContent());
  1199. }
  1200. }