我有一个包含多组多值复选框和一个文本字段的表单。这些输入用于构建查询。
<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发出信号,我不想要任何复选框。但是,我在同一表单上使用其他多值复选框构建了其他测试。他们没有这个问题。
你的想法?