package lib.hudson;
import com.gargoylesoftware.htmlunit.html.HtmlOption;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSelect;
import hudson.model.Item;
import org.jvnet.hudson.test.HudsonTestCase;
import org.xml.sax.SAXException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.io.IOException;
/**
* @author Kohsuke Kawaguchi
*/
public class ListScmBrowsersTest extends HudsonTestCase {
public void testSelectBoxesUnique() throws Exception {
check(createFreeStyleProject());
}
public void testSelectBoxesUnique2() throws Exception {
check(createMavenProject());
}
public void testSelectBoxesUnique3() throws Exception {
check(createMatrixProject());
}
private void check(Item p) throws IOException, SAXException {
HtmlPage page = new WebClient().getPage(p, "configure");
List<HtmlSelect> selects = page.selectNodes("//select");
assertTrue(selects.size()>0);
for (HtmlSelect select : selects) {
Set<String> title = new HashSet<String>();
for(HtmlOption o : select.getOptions()) {
assertTrue("Duplicate entry: "+o.getText(),title.add(o.getText()));
}
}
}
}