Changeset 918

Show
Ignore:
Timestamp:
05/01/08 11:12:45 (3 months ago)
Author:
laurentj
Message:

jforms-group: updated unit-tests; addControl() is now public, and added removeControl()

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/experimental/jforms-groups/lib/jelix/forms/jFormsBase.class.php

    r914 r918  
    119119     * @param boolean $reset says if the data should be reset 
    120120     */ 
    121     public function __construct($sel, &$container, $reset = false){ 
    122         $this->container = & $container; 
     121    public function __construct($sel, $container, $reset = false){ 
     122        $this->container = $container; 
    123123        if($reset){ 
    124124            $this->container->clear(); 
     
    626626    * @param $control jFormsControl 
    627627    */ 
    628     protected function addControl($control){ 
     628    public function addControl($control){ 
    629629        $this->topControls [$control->ref] = $control; 
    630630        $this->addChildControl($control); 
     
    635635        } 
    636636    } 
     637 
     638 
     639    function removeControl($name) { 
     640        unset($this->topControls [$name]); 
     641        unset($this->controls [$name]); 
     642        unset($this->submits [$name]); 
     643        if($this->reset && $this->reset->ref == $name) 
     644            $this->reset = null; 
     645        unset($this->uploads [$name]); 
     646        unset($this->hiddens [$name]); 
     647        unset($this->htmleditors [$name]); 
     648        unset($this->container->data[$name]); 
     649    } 
     650 
    637651 
    638652    /** 
  • branches/experimental/jforms-groups/lib/jelix/forms/jFormsBase.class.php

    r914 r918  
    119119     * @param boolean $reset says if the data should be reset 
    120120     */ 
    121     public function __construct($sel, &$container, $reset = false){ 
    122         $this->container = & $container; 
     121    public function __construct($sel, $container, $reset = false){ 
     122        $this->container = $container; 
    123123        if($reset){ 
    124124            $this->container->clear(); 
     
    626626    * @param $control jFormsControl 
    627627    */ 
    628     protected function addControl($control){ 
     628    public function addControl($control){ 
    629629        $this->topControls [$control->ref] = $control; 
    630630        $this->addChildControl($control); 
     
    635635        } 
    636636    } 
     637 
     638 
     639    function removeControl($name) { 
     640        unset($this->topControls [$name]); 
     641        unset($this->controls [$name]); 
     642        unset($this->submits [$name]); 
     643        if($this->reset && $this->reset->ref == $name) 
     644            $this->reset = null; 
     645        unset($this->uploads [$name]); 
     646        unset($this->hiddens [$name]); 
     647        unset($this->htmleditors [$name]); 
     648        unset($this->container->data[$name]); 
     649    } 
     650 
    637651 
    638652    /** 
  • branches/experimental/jforms-groups/lib/jelix/forms/jFormsBase.class.php

    r914 r918  
    119119     * @param boolean $reset says if the data should be reset 
    120120     */ 
    121     public function __construct($sel, &$container, $reset = false){ 
    122         $this->container = & $container; 
     121    public function __construct($sel, $container, $reset = false){ 
     122        $this->container = $container; 
    123123        if($reset){ 
    124124            $this->container->clear(); 
     
    626626    * @param $control jFormsControl 
    627627    */ 
    628     protected function addControl($control){ 
     628    public function addControl($control){ 
    629629        $this->topControls [$control->ref] = $control; 
    630630        $this->addChildControl($control); 
     
    635635        } 
    636636    } 
     637 
     638 
     639    function removeControl($name) { 
     640        unset($this->topControls [$name]); 
     641        unset($this->controls [$name]); 
     642        unset($this->submits [$name]); 
     643        if($this->reset && $this->reset->ref == $name) 
     644            $this->reset = null; 
     645        unset($this->uploads [$name]); 
     646        unset($this->hiddens [$name]); 
     647        unset($this->htmleditors [$name]); 
     648        unset($this->container->data[$name]); 
     649    } 
     650 
    637651 
    638652    /** 
  • branches/experimental/jforms-groups/lib/jelix/forms/jFormsBase.class.php

    r914 r918  
    119119     * @param boolean $reset says if the data should be reset 
    120120     */ 
    121     public function __construct($sel, &$container, $reset = false){ 
    122         $this->container = & $container; 
     121    public function __construct($sel, $container, $reset = false){ 
     122        $this->container = $container; 
    123123        if($reset){ 
    124124            $this->container->clear(); 
     
    626626    * @param $control jFormsControl 
    627627    */ 
    628     protected function addControl($control){ 
     628    public function addControl($control){ 
    629629        $this->topControls [$control->ref] = $control; 
    630630        $this->addChildControl($control); 
     
    635635        } 
    636636    } 
     637 
     638 
     639    function removeControl($name) { 
     640        unset($this->topControls [$name]); 
     641        unset($this->controls [$name]); 
     642        unset($this->submits [$name]); 
     643        if($this->reset && $this->reset->ref == $name) 
     644            $this->reset = null; 
     645        unset($this->uploads [$name]); 
     646        unset($this->hiddens [$name]); 
     647        unset($this->htmleditors [$name]); 
     648        unset($this->container->data[$name]); 
     649    } 
     650 
    637651 
    638652    /** 
  • branches/experimental/jforms-groups/testapp/modules/jelix_tests/tests/jforms.htmlbuilder.html_cli.php

    r914 r918  
    1010*/ 
    1111 
     12require_once(JELIX_LIB_PATH.'forms/jFormsBase.class.php'); 
    1213require_once(JELIX_LIB_PATH.'forms/jFormsBuilderBase.class.php'); 
    13 require_once(JELIX_LIB_PATH.'forms/jFormsControl.class.php'); 
    14 require_once(JELIX_LIB_UTILS_PATH.'jDatatype.class.php'); 
    15 require_once(JELIX_LIB_PATH.'forms/jFormsDatasource.class.php'); 
    1614require_once(JELIX_LIB_PATH.'forms/jFormsDataContainer.class.php'); 
    1715require_once(JELIX_LIB_PATH.'plugins/jforms/html/html.jformsbuilder.php'); 
    1816 
    19 class testHMLForm { // simulate a jFormBase object 
    20     public $controls= array(); 
    21     public $submits= array(); 
    22     public $uploads= array(); 
    23     public $_hiddens= array(); 
    24     public $reset= null; 
    25     public $container; 
    26  
    27     protected $data =  array( 'chk'=>'1', 'chk2'=>'', 'choixsimple'=>'11', 'choixmultiple'=>array('10','23'), 'autrechoix'=>'10'); 
    28     function __construct(){ 
    29         $this->container = new jFormsDataContainer('',''); 
    30     } 
    31  
    32     function getData($name) { 
    33         if(isset($this->data[$name])) 
    34             return $this->data[$name]; 
    35         else 
    36             return null; 
    37     } 
    38     function setData($name,$value) { 
    39         $this->data[$name]=$value; 
    40     } 
    41     function getControls() { 
    42         return $this->controls; 
    43     } 
    44     function getContainer() { 
    45         return $this->container; 
    46     } 
    47     function hasUpload(){ 
    48        return false; 
    49     } 
    50     function getHiddens() { 
    51         return $this->_hiddens; 
    52     } 
    53  
    54     public function isActivated($name) { 
    55         return true; 
    56     } 
    57     public function isReadOnly($name) { 
    58         return false; 
    59     } 
    60     function addControl($control){ 
    61         $this->controls [$control->ref] = $control; 
    62         if($control->type =='submit') 
    63             $this->submits [$control->ref] = $control; 
    64         else if($control->type =='upload') 
    65             $this->uploads [$control->ref] = $control; 
    66         else if($control->type =='reset') 
    67             $this->reset = $control; 
    68         else if($control->type =='hidden') 
    69             $this->_hiddens [$control->ref] = $control; 
    70         $this->data[$control->ref] = $control->defaultValue; 
    71     } 
     17class testHMLForm extends jFormsBase {  
    7218} 
    7319 
     
    8228 
    8329    protected $form; 
     30    protected $container; 
    8431    protected $builder; 
    8532    function testStart() { 
    86         $this->form = new testHMLForm(); 
     33        $this->container = new jFormsDataContainer('formtest',''); 
     34        $this->form = new testHMLForm('formtest', $this->container, true ); 
    8735        $this->builder = new testJFormsHtmlBuilder($this->form); 
     36 
     37    } 
     38 
     39 
     40    function testOutputHeader(){ 
    8841        $this->builder->setAction('jelix_tests~urlsig:url1',array()); 
    89         $this->formname = $this->builder->getName(); 
    90     } 
    91  
    92  
    93     function testOutputHeader(){ 
    94         $builder = new testJFormsHtmlBuilder(new testHMLForm()); 
    95         $builder->setAction('jelix_tests~urlsig:url1',array()); 
    96         $formname = $builder->getName(); 
    9742        ob_start(); 
    98         $builder->outputHeader(array('','','post')); 
     43        $this->builder->outputHeader(array('','','post')); 
    9944        $out = ob_get_clean(); 
    100         $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.$formname.'"><div class="jforms-hiddens"><input type="hidden" name="module" value="jelix_tests"/> 
     45        $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="post" id="'.$this->builder->getName().'"><div class="jforms-hiddens"><input type="hidden" name="module" value="jelix_tests"/> 
    10146<input type="hidden" name="action" value="urlsig:url1"/> 
    10247</div><script type="text/javascript"> 
     
    10752        $this->assertEqualOrDiff($result, $out); 
    10853 
    109         $builder = new testJFormsHtmlBuilder(new testHMLForm()); 
    110         $builder->setAction('jelix_tests~urlsig:url1',array('foo'=>'b>ar')); 
    111         $formname = $builder->getName(); 
     54        $this->builder->setAction('jelix_tests~urlsig:url1',array('foo'=>'b>ar')); 
    11255        ob_start(); 
    113         $builder->outputHeader(array('','','get')); 
     56        $this->builder->outputHeader(array('','','get')); 
    11457        $out = ob_get_clean(); 
    115         $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="get" id="'.$formname.'"><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/> 
     58        $result ='<form action="'.$GLOBALS['gJConfig']->urlengine['basePath'].'index.php" method="get" id="'.$this->builder->getName().'"><div class="jforms-hiddens"><input type="hidden" name="foo" value="b&gt;ar"/> 
    11659<input type="hidden" name="module" value="jelix_tests"/> 
    11760<input type="hidden" name="action" value="urlsig:url1"/> 
     
    12265</script>'; 
    12366        $this->assertEqualOrDiff($result, $out); 
    124  
     67        $this->formname = $this->builder->getName(); 
    12568    } 
    12669    function testOutputFooter(){ 
     
    13174    } 
    13275    function testOutputInput(){ 
    133         $ctrl= new jFormsControlinput('nom'); 
     76        $ctrl= new jFormsControlinput('input1'); 
    13477        $ctrl->datatype= new jDatatypeString(); 
    13578        $ctrl->label='Votre nom'; 
    136  
    137         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    138         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_nom">Votre nom</label>', $out); 
    139  
    140         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    141         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value=""/>', $out); 
    142  
    143         $this->form->addControl($ctrl); 
    144         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    145         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value=""/>', $out); 
    146  
    147         $this->form->setData('nom','toto'); 
    148         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    149         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value="toto"/>', $out); 
     79        $this->form->addControl($ctrl); 
     80 
     81        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     82        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_input1">Votre nom</label>', $out); 
     83 
     84        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     85        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" value=""/>', $out); 
     86 
     87        $this->form->setData('input1','toto'); 
     88        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     89        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" value="toto"/>', $out); 
    15090 
    15191        $ctrl->defaultValue='laurent'; 
    15292        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    153         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value="toto"/>', $out); 
    154  
    155         $this->form->addControl($ctrl); 
    156         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    157         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value="laurent"/>', $out); 
     93        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" value="toto"/>', $out); 
     94 
     95        $this->form->removeControl($ctrl->ref); 
     96        $this->form->addControl($ctrl); 
     97        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     98        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" value="laurent"/>', $out); 
    15899 
    159100        $ctrl->required=true; 
    160101        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    161         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" class=" jforms-required" value="laurent"/>', $out); 
     102        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" class=" jforms-required" value="laurent"/>', $out); 
    162103 
    163104        $ctrl->setReadOnly(true); 
    164105        $ctrl->required=false; 
    165106        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    166         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" readonly="readonly" value="laurent"/>', $out); 
     107        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" readonly="readonly" value="laurent"/>', $out); 
    167108 
    168109        $ctrl->setReadOnly(false); 
    169110        $ctrl->hasHelp=true; 
    170111        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    171         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'nom\')">?</a></span>', $out); 
    172  
    173         $ctrl->hint='ceci est un tooltip'; 
    174         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    175         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_nom" title="ceci est un tooltip">Votre nom</label>', $out); 
    176  
    177         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    178         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" title="ceci est un tooltip" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'nom\')">?</a></span>', $out); 
     112        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'input1\')">?</a></span>', $out); 
     113 
     114        $ctrl->hint='ceci est un tooltip'; 
     115        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     116        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_input1" title="ceci est un tooltip">Votre nom</label>', $out); 
     117 
     118        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     119        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" title="ceci est un tooltip" value="laurent"/><span class="jforms-help"><a href="javascript:jForms.showHelp(\''. $this->formname.'\',\'input1\')">?</a></span>', $out); 
    179120 
    180121        $ctrl->hasHelp=false; 
     
    182123        $ctrl->datatype->addFacet('maxLength',5); 
    183124        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    184         $this->assertEqualOrDiff('<input type="text" name="nom" id="'.$this->formname.'_nom" maxlength="5" value="laurent"/>', $out); 
     125        $this->assertEqualOrDiff('<input type="text" name="input1" id="'.$this->formname.'_input1" maxlength="5" value="laurent"/>', $out); 
    185126    } 
    186127    function testOutputCheckbox(){ 
    187         $ctrl= new jFormsControlCheckbox('chk'); 
     128        $ctrl= new jFormsControlCheckbox('chk1'); 
    188129        $ctrl->datatype= new jDatatypeString(); 
    189130        $ctrl->label='Une option'; 
     
    191132 
    192133        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    193         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_chk">Une option</label>', $out); 
    194  
    195         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    196         $this->assertEqualOrDiff('<input type="checkbox" name="chk" id="'.$this->formname.'_chk" value="1"/>', $out); 
    197  
    198         $this->form->setData('chk','1'); 
    199         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    200         $this->assertEqualOrDiff('<input type="checkbox" name="chk" id="'.$this->formname.'_chk" checked="checked" value="1"/>', $out); 
     134        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_chk1">Une option</label>', $out); 
     135 
     136        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     137        $this->assertEqualOrDiff('<input type="checkbox" name="chk1" id="'.$this->formname.'_chk1" value="1"/>', $out); 
     138 
     139        $this->form->setData('chk1','1'); 
     140        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     141        $this->assertEqualOrDiff('<input type="checkbox" name="chk1" id="'.$this->formname.'_chk1" checked="checked" value="1"/>', $out); 
    201142 
    202143        $ctrl= new jFormsControlCheckbox('chk2'); 
    203144        $ctrl->datatype= new jDatatypeString(); 
    204145        $ctrl->label='Une option'; 
     146        $this->form->addControl($ctrl); 
    205147 
    206148        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     
    211153 
    212154        $ctrl->defaultValue='1'; 
     155        $this->form->removeControl($ctrl->ref); 
    213156        $this->form->addControl($ctrl); 
    214157        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     
    219162        $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.$this->formname.'_chk2" value="1"/>', $out); 
    220163 
    221         $ctrl->readonly=true
     164        $ctrl->setReadOnly(true)
    222165        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    223166        $this->assertEqualOrDiff('<input type="checkbox" name="chk2" id="'.$this->formname.'_chk2" readonly="readonly" value="1"/>', $out); 
     
    240183        $ctrl->label='Vos choix'; 
    241184        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id'); 
     185        $this->form->addControl($ctrl); 
    242186 
    243187        $records = array( 
     
    253197        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    254198        $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_0" value="10"/><label for="'.$this->formname.'_choixsimple_0">foo</label></span>'; 
     199        $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_1" value="11"/><label for="'.$this->formname.'_choixsimple_1">bar</label></span>'; 
     200        $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_2" value="23"/><label for="'.$this->formname.'_choixsimple_2">baz</label></span>'; 
     201        $this->assertEqualOrDiff($result, $out); 
     202 
     203        $this->form->setData('choixsimple',11); 
     204        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     205        $result='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_0" value="10"/><label for="'.$this->formname.'_choixsimple_0">foo</label></span>'; 
    255206        $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_1" value="11" checked="checked"/><label for="'.$this->formname.'_choixsimple_1">bar</label></span>'; 
    256207        $result.='<span class="jforms-chkbox jforms-ctl-choixsimple"><input type="checkbox" name="choixsimple[]" id="'.$this->formname.'_choixsimple_2" value="23"/><label for="'.$this->formname.'_choixsimple_2">baz</label></span>'; 
    257208        $this->assertEqualOrDiff($result, $out); 
     209 
    258210 
    259211        $ctrl= new jFormsControlcheckboxes('choixmultiple'); 
     
    266218            '23'=>'baz', 
    267219        ); 
     220        $this->form->addControl($ctrl); 
     221 
    268222        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    269223        $this->assertEqualOrDiff('<span class="jforms-label">Vos choix</span>', $out); 
    270224 
     225        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     226        $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_0" value="10"/><label for="'.$this->formname.'_choixmultiple_0">foo</label></span>'; 
     227        $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_1" value="11"/><label for="'.$this->formname.'_choixmultiple_1">bar</label></span>'; 
     228        $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_2" value="23"/><label for="'.$this->formname.'_choixmultiple_2">baz</label></span>'; 
     229        $this->assertEqualOrDiff($result, $out); 
     230 
     231        $this->form->setData('choixmultiple',11); 
     232        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     233        $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_0" value="10"/><label for="'.$this->formname.'_choixmultiple_0">foo</label></span>'; 
     234        $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_1" value="11" checked="checked"/><label for="'.$this->formname.'_choixmultiple_1">bar</label></span>'; 
     235        $result.='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_2" value="23"/><label for="'.$this->formname.'_choixmultiple_2">baz</label></span>'; 
     236        $this->assertEqualOrDiff($result, $out); 
     237 
     238        $this->form->setData('choixmultiple',array(10,23)); 
    271239        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    272240        $result='<span class="jforms-chkbox jforms-ctl-choixmultiple"><input type="checkbox" name="choixmultiple[]" id="'.$this->formname.'_choixmultiple_0" value="10" checked="checked"/><label for="'.$this->formname.'_choixmultiple_0">foo</label></span>'; 
     
    275243        $this->assertEqualOrDiff($result, $out); 
    276244 
    277         $ctrl->readonly = true
     245        $ctrl->setReadOnly(true)
    278246        $ctrl->hint='ceci est un tooltip'; 
    279247        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     
    289257 
    290258    function testOutputRadiobuttons(){ 
    291         $ctrl= new jFormsControlradiobuttons('choixsimple'); 
     259        $ctrl= new jFormsControlradiobuttons('rbchoixsimple'); 
    292260        $ctrl->datatype= new jDatatypeString(); 
    293261        $ctrl->label='Votre choix'; 
    294262        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id'); 
     263        $this->form->addControl($ctrl); 
    295264 
    296265        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     
    298267 
    299268        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    300         $result='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_0" value="10"/><label for="'.$this->formname.'_choixsimple_0">foo</label></span>'; 
    301         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_1" value="11" checked="checked"/><label for="'.$this->formname.'_choixsimple_1">bar</label></span>'; 
    302         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_2" value="23"/><label for="'.$this->formname.'_choixsimple_2">baz</label></span>'; 
     269        $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_0" value="10"/><label for="'.$this->formname.'_rbchoixsimple_0">foo</label></span>'; 
     270        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_1" value="11"/><label for="'.$this->formname.'_rbchoixsimple_1">bar</label></span>'; 
     271        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_2" value="23"/><label for="'.$this->formname.'_rbchoixsimple_2">baz</label></span>'; 
     272        $this->assertEqualOrDiff($result, $out); 
     273 
     274        $this->form->setData('rbchoixsimple',11); 
     275 
     276        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     277        $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_0" value="10"/><label for="'.$this->formname.'_rbchoixsimple_0">foo</label></span>'; 
     278        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_1" value="11" checked="checked"/><label for="'.$this->formname.'_rbchoixsimple_1">bar</label></span>'; 
     279        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_2" value="23"/><label for="'.$this->formname.'_rbchoixsimple_2">baz</label></span>'; 
    303280        $this->assertEqualOrDiff($result, $out); 
    304281 
     
    311288 
    312289        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    313         $result='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_0" value="10"/><label for="'.$this->formname.'_choixsimple_0">foo</label></span>'; 
    314         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_1" value="11" checked="checked"/><label for="'.$this->formname.'_choixsimple_1">bar</label></span>'; 
    315         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_2" value="23"/><label for="'.$this->formname.'_choixsimple_2">baz</label></span>'; 
    316         $this->assertEqualOrDiff($result, $out); 
    317  
    318         $ctrl->readonly = true; 
     290        $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_0" value="10"/><label for="'.$this->formname.'_rbchoixsimple_0">foo</label></span>'; 
     291        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_1" value="11" checked="checked"/><label for="'.$this->formname.'_rbchoixsimple_1">bar</label></span>'; 
     292        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_2" value="23"/><label for="'.$this->formname.'_rbchoixsimple_2">baz</label></span>'; 
     293        $this->assertEqualOrDiff($result, $out); 
     294 
     295        $this->form->setData('rbchoixsimple',23); 
     296        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     297        $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_0" value="10"/><label for="'.$this->formname.'_rbchoixsimple_0">foo</label></span>'; 
     298        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_1" value="11"/><label for="'.$this->formname.'_rbchoixsimple_1">bar</label></span>'; 
     299        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_2" value="23" checked="checked"/><label for="'.$this->formname.'_rbchoixsimple_2">baz</label></span>'; 
     300        $this->assertEqualOrDiff($result, $out); 
     301 
     302        $ctrl->setReadOnly(true); 
    319303        $ctrl->hint='ceci est un tooltip'; 
    320304        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     
    322306 
    323307        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    324         $result='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_0" value="10" readonly="readonly"/><label for="'.$this->formname.'_choixsimple_0">foo</label></span>'; 
    325         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_1" value="11" checked="checked" readonly="readonly"/><label for="'.$this->formname.'_choixsimple_1">bar</label></span>'; 
    326         $result.='<span class="jforms-radio jforms-ctl-choixsimple"><input type="radio" name="choixsimple" id="'.$this->formname.'_choixsimple_2" value="23" readonly="readonly"/><label for="'.$this->formname.'_choixsimple_2">baz</label></span>'; 
    327         $this->assertEqualOrDiff($result, $out); 
    328     } 
     308        $result='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_0" value="10" readonly="readonly"/><label for="'.$this->formname.'_rbchoixsimple_0">foo</label></span>'; 
     309        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_1" value="11" readonly="readonly"/><label for="'.$this->formname.'_rbchoixsimple_1">bar</label></span>'; 
     310        $result.='<span class="jforms-radio jforms-ctl-rbchoixsimple"><input type="radio" name="rbchoixsimple" id="'.$this->formname.'_rbchoixsimple_2" value="23" checked="checked" readonly="readonly"/><label for="'.$this->formname.'_rbchoixsimple_2">baz</label></span>'; 
     311        $this->assertEqualOrDiff($result, $out); 
     312    } 
     313 
    329314    function testOutputMenulist(){ 
    330         $ctrl= new jFormsControlmenulist('choixsimple'); 
     315        $ctrl= new jFormsControlmenulist('menulist1'); 
    331316        $ctrl->datatype= new jDatatypeString(); 
    332317        $ctrl->label='Votre choix'; 
    333318        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id'); 
    334  
    335         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    336         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixsimple">Votre choix</label>', $out); 
    337  
    338         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    339         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     319        $this->form->addControl($ctrl); 
     320 
     321        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     322        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_menulist1">Votre choix</label>', $out); 
     323 
     324        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     325        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
     326        $result.='<option value="" selected="selected"></option>'; 
     327        $result.='<option value="10">foo</option>'; 
     328        $result.='<option value="11">bar</option>'; 
     329        $result.='<option value="23">baz</option>'; 
     330        $result.='</select>'; 
     331        $this->assertEqualOrDiff($result, $out); 
     332 
     333        $this->form->setData('menulist1',11); 
     334        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     335        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    340336        $result.='<option value=""></option>'; 
    341337        $result.='<option value="10">foo</option>'; 
     
    344340        $result.='</select>'; 
    345341        $this->assertEqualOrDiff($result, $out); 
     342 
    346343 
    347344        $ctrl->datasource= new jFormsStaticDatasource(); 
     
    355352        $this->assertEqualOrDiff($result, $out); 
    356353 
    357         $ctrl->readonly = true
    358         $ctrl->hint='ceci est un tooltip'; 
    359         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    360         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixsimple" title="ceci est un tooltip">Votre choix</label>', $out); 
    361  
    362         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    363         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" title="ceci est un tooltip" size="1">'; 
     354        $ctrl->setReadOnly(true)
     355        $ctrl->hint='ceci est un tooltip'; 
     356        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     357        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_menulist1" title="ceci est un tooltip">Votre choix</label>', $out); 
     358 
     359        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     360        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" title="ceci est un tooltip" size="1">'; 
    364361        $result.='<option value=""></option>'; 
    365362        $result.='<option value="10">foo</option>'; 
     
    370367 
    371368        $ctrl->required = true; 
    372         $this->form->setData('choixsimple',"23"); 
    373         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    374         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" title="ceci est un tooltip" size="1">'; 
     369        $this->form->setData('menulist1',"23"); 
     370        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     371        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" title="ceci est un tooltip" size="1">'; 
    375372        $result.='<option value="10">foo</option>'; 
    376373        $result.='<option value="11">bar</option>'; 
     
    380377 
    381378        $ctrl->required = false; 
    382         $this->form->setData('choixsimple',""); 
    383         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    384         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" title="ceci est un tooltip" size="1">'; 
     379        $this->form->setData('menulist1',""); 
     380        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     381        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" title="ceci est un tooltip" size="1">'; 
    385382        $result.='<option value="" selected="selected"></option>'; 
    386383        $result.='<option value="10">foo</option>'; 
     
    390387        $this->assertEqualOrDiff($result, $out); 
    391388 
    392         $ctrl->readonly = false
     389        $ctrl->setReadOnly(false)
    393390        $ctrl->hint=''; 
    394391        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','15'); 
    395392        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    396         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     393        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    397394        $result.='<option value="" selected="selected"></option>'; 
    398395        $result.='<option value="10">foo</option>'; 
     
    403400        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id','11'); 
    404401        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    405         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     402        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    406403        $result.='<option value="" selected="selected"></option>'; 
    407404        $result.='<option value="10">foo</option>'; 
     
    409406        $this->assertEqualOrDiff($result, $out); 
    410407 
    411         $this->form->setData('choixsimple',"10"); 
    412         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    413         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     408        $this->form->setData('menulist1',"10"); 
     409        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     410        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    414411        $result.='<option value=""></option>'; 
    415412        $result.='<option value="10" selected="selected">foo</option>'; 
     
    417414        $this->assertEqualOrDiff($result, $out); 
    418415 
    419         $this->form->setData('choixsimple',""); 
    420         $this->form->setData('autrechoix',"25"); 
    421         $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id',null, 'autrechoix'); 
    422         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    423         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     416        $this->form->setData('menulist1',""); 
     417 
     418        $this->form->addControl(new jFormsControlHidden('hidden1')); 
     419        $this->form->setData('hidden1',"25"); 
     420        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findByMaxId','name','id',null, 'hidden1'); 
     421        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     422        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    424423        $result.='<option value="" selected="selected"></option>'; 
    425424        $result.='<option value="10">foo</option>'; 
     
    429428        $this->assertEqualOrDiff($result, $out); 
    430429 
    431         $this->form->setData('autrechoix',"15"); 
    432         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    433         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     430        $this->form->setData('hidden1',"15"); 
     431        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     432        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    434433        $result.='<option value="" selected="selected"></option>'; 
    435434        $result.='<option value="10">foo</option>'; 
     
    438437        $this->assertEqualOrDiff($result, $out); 
    439438 
    440         $this->form->setData('choixsimple',"10"); 
    441         $this->form->setData('autrechoix',"11"); 
    442         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    443         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     439        $this->form->setData('menulist1',"10"); 
     440        $this->form->setData('hidden1',"11"); 
     441        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     442        $result='<select name="menulist1" id="'.$this->formname.'_menulist1" size="1">'; 
    444443        $result.='<option value=""></option>'; 
    445444        $result.='<option value="10" selected="selected">foo</option>'; 
     
    447446        $this->assertEqualOrDiff($result, $out); 
    448447 
    449         $this->form->setData('choixsimple',"23"); 
    450448    } 
    451449 
    452450    function testOutputListbox(){ 
    453         $ctrl= new jFormsControllistbox('choixsimple'); 
     451        $ctrl= new jFormsControllistbox('listbox1'); 
    454452        $ctrl->datatype= new jDatatypeString(); 
    455453        $ctrl->label='Votre choix'; 
    456454        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id'); 
    457  
    458         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    459         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixsimple">Votre choix</label>', $out); 
    460  
    461         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    462         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="4">'; 
     455        $this->form->addControl($ctrl); 
     456 
     457        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     458        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_listbox1">Votre choix</label>', $out); 
     459 
     460        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     461        $result='<select name="listbox1" id="'.$this->formname.'_listbox1" size="4">'; 
     462        $result.='<option value="10">foo</option>'; 
     463        $result.='<option value="11">bar</option>'; 
     464        $result.='<option value="23">baz</option>'; 
     465        $result.='</select>'; 
     466        $this->assertEqualOrDiff($result, $out); 
     467 
     468 
     469        $this->form->setData('listbox1',"23"); 
     470        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     471        $result='<select name="listbox1" id="'.$this->formname.'_listbox1" size="4">'; 
    463472        $result.='<option value="10">foo</option>'; 
    464473        $result.='<option value="11">bar</option>'; 
     
    477486        $this->assertEqualOrDiff($result, $out); 
    478487 
    479         $ctrl->readonly = true
    480         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    481         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixsimple">Votre choix</label>', $out); 
    482  
    483         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    484         $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="4">'; 
     488        $ctrl->setReadOnly(true)
     489        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     490        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_listbox1">Votre choix</label>', $out); 
     491 
     492        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     493        $result='<select name="listbox1" id="'.$this->formname.'_listbox1" size="4">'; 
    485494        $result.='<option value="10">foo</option>'; 
    486495        $result.='<option value="11">bar</option>'; 
     
    490499 
    491500 
    492         $ctrl= new jFormsControllistbox('choixmultiple'); 
     501        $ctrl= new jFormsControllistbox('lbchoixmultiple'); 
    493502        $ctrl->datatype= new jDatatypeString(); 
    494503        $ctrl->label='Votre choix'; 
     
    496505        $ctrl->multiple=true; 
    497506        $ctrl->hint='ceci est un tooltip'; 
    498  
    499         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    500         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixmultiple" title="ceci est un tooltip">Votre choix</label>', $out); 
    501  
    502         ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    503         $result='<select name="choixmultiple[]" id="'.$this->formname.'_choixmultiple" title="ceci est un tooltip" size="4" multiple="multiple">'; 
     507        $this->form->addControl($ctrl); 
     508 
     509        ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
     510        $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_lbchoixmultiple" title="ceci est un tooltip">Votre choix</label>', $out); 
     511 
     512        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     513        $result='<select name="lbchoixmultiple[]" id="'.$this->formname.'_lbchoixmultiple" title="ceci est un tooltip" size="4" multiple="multiple">'; 
     514        $result.='<option value="10">foo</option>'; 
     515        $result.='<option value="11">bar</option>'; 
     516        $result.='<option value="23">baz</option>'; 
     517        $result.='</select>'; 
     518        $this->assertEqualOrDiff($result, $out); 
     519 
     520        $this->form->setData('lbchoixmultiple',array(10,23)); 
     521        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     522        $result='<select name="lbchoixmultiple[]" id="'.$this->formname.'_lbchoixmultiple" title="ceci est un tooltip" size="4" multiple="multiple">'; 
    504523        $result.='<option value="10" selected="selected">foo</option>'; 
    505524        $result.='<option value="11">bar</option>'; 
     
    508527        $this->assertEqualOrDiff($result, $out); 
    509528 
    510  
    511         $ctrl= new jFormsControllistbox('choixsimpleinconnu'); 
     529        $ctrl= new jFormsControllistbox('listbox2'); 
    512530        $ctrl->datatype= new jDatatypeString(); 
    513531        $ctrl->label='Votre choix'; 
    514532        $ctrl->datasource = new jFormsDaoDatasource('jelix_tests~products','findAll','name','id'); 
    515533        $ctrl->defaultValue=array ('10'); 
    516  
    517  
    518         ob_start();$this->builder->outputControlLabel($ctrl);$out = ob_get_clean(); 
    519         $this->assertEqualOrDiff('<label class="jforms-label" for="'.$this->formname.'_choixsimpleinconnu">Votre choix</