diff --git a/test/src/test/java/lib/hudson/ListScmBrowsersTest.java b/test/src/test/java/lib/hudson/ListScmBrowsersTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..b7ae9c00f93eb31e2a94f853c107a45396b7fe26
--- /dev/null
+++ b/test/src/test/java/lib/hudson/ListScmBrowsersTest.java
@@ -0,0 +1,42 @@
+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 selects = (List)page.selectNodes("//select");
+ assertTrue(selects.size()>0);
+ for (HtmlSelect select : selects) {
+ Set title = new HashSet();
+ for(HtmlOption o : select.getOptions()) {
+ assertTrue("Duplicate entry: "+o.asText(),title.add(o.asText()));
+ }
+ }
+ }
+}
|