PageRenderTime 56ms CodeModel.GetById 18ms 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

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

  1. <?php
  2. /**
  3. * @package testapp
  4. * @subpackage unittest module
  5. * @author Jouanneau Laurent
  6. * @contributor Dominique Papin, Julien Issler
  7. * @copyright 2007-2008 Jouanneau laurent
  8. * @copyright 2008 Dominique Papin
  9. * @copyright 2008 Julien Issler
  10. * @link http://www.jelix.org
  11. * @licence GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  12. */
  13. require_once(JELIX_LIB_PATH.'forms/jFormsBase.class.php');
  14. require_once(JELIX_LIB_PATH.'forms/jFormsBuilderBase.class.php');
  15. require_once(JELIX_LIB_PATH.'forms/jFormsDataContainer.class.php');
  16. require_once(JELIX_LIB_PATH.'plugins/jforms/htmllight/htmllight.jformsbuilder.php');
  17. class testHtmlLightForm extends jFormsBase {
  18. }
  19. class testJFormsHtmlLightBuilder extends htmllightJformsBuilder {
  20. function getJsContent() { $js= $this->jsContent; $this->jsContent = '';return $js;}
  21. function clearJs() { $this->jsContent = ''; }
  22. }
  23. class UTjformsHtmlLightBuilder extends jUnitTestCaseDb {
  24. protected 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();

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