在多值复选框上使用SimpleTest

时间:2012-05-02 17:58:30

标签: php forms checkbox multi-select simpletest

我有一个包含多组多值复选框和一个文本字段的表单。这些输入用于构建查询。

<input class="entry" name="search_text" />

<input type="checkbox" name="arrSource[pn_oem]" value="pn_oem" />
<input type="checkbox" name="arrSource[descr]" value="descr" />
<input type="checkbox" name="arrSource[supplier_pn]" value="supplier_pn" />
        <!---  etc  -->

<input type="checkbox" name="arrSupplier[]" value="307" /> Adam
<input type="checkbox" name="arrSupplier[]" value="113" /> Alan
<input type="checkbox" name="arrSupplier[]" value="2" /> Alex
<input type="checkbox" name="arrSupplier[]" value="3" /> Archie
        <!---  etc  -->

<input class="submit" value="Search" type="submit" name="Search" />
<input class="submit" value="Reset" type="submit" name="Reset" />

我一直在测试表单,运行搜索并将结果与​​数据库中我自己的SQL进行比较。它似乎工作得很好。但是我无法让SimpleTest同意(在这些sparse instructions之后)。表单提交看起来像这样:

$this->setField('arrSource[]', array("supplier_pn", "pn_oem")); 
$this->setField('arrSupplier[]', array(15,92));
$this->setField('search_text', "pax");
$this->click('Search');

SimpleTest产生2的结果,但其他方法说9。这里有一些变化:

2但应该是9: setField('arrSource[]', array("supplier_pn", "pn_oem"));

2但应为0: setField('arrSource[]', array("pn_oem"));

23但应该是2: setField('arrSource[]', array("supplier_pn"));

我能够通过不将供应商标准和来源标准设置为'pn_oem'来使UI显示2结果。这相当于取消选中所有复选框,因为如果没有检查Source,则查询假定需要pn_oem。以下是SimpleTest中的外观 - 而SimpleTest同意2的结果:

$this->setField('arrSource[]', array("pn_oem")); 
$this->setField('search_text', "pax");
$this->click('Search');

似乎我向SimpleTest发出信号,我不想要任何复选框。但是,我在同一表单上使用其他多值复选框构建了其他测试。他们没有这个问题。

你的想法?

0 个答案:

没有答案