PageRenderTime 71ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

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

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