Often, you want to assert that a particular picklist contains exactly a certain list of elements.
Say, you have a web page that is available in several languages, and the user can pick the language through a picklist that looks like this:
<select name="page" onchange="quick_switch_language( this )">
<option value="Home">English</option>
<option value="Accueil">Français</option>
</select>
How to do this?
Here is an example using the PHPUnit SeleniumTestCase class:
$expAvailableLanguages = array("English" => "Home", "Français" => "Accueil");
$this->assertSelectElementContainsItems("xpath=//form[@id='available-languages-form']/select",
$expAvailableLanguages ,
"List of available languages was wrong");
public function assertSelectElementContainsItems($selectElementID, $expItems, $message) {
$this->assertElementPresent($selectElementID, "$message\nMarkup element '$selectElementID' did not exist");
$gotItemsText = $this->getSelectOptions($selectElementID);
$expItemsText = array_keys($expItems);
$this->assertEquals($gotItemsText, $expItemsText, "$message\nItems in the Select element '$selectElementID' were wrong.");
foreach ($expItems as $anItem => $anItemValue)
}
