diff --git a/core/src/main/resources/lib/hudson/listScmBrowsers.jelly b/core/src/main/resources/lib/hudson/listScmBrowsers.jelly index a43a17e5b62759a9fe703574dadefd5867183144..512fd14edc43bf6b1de089f757879cfa29225353 100644 --- a/core/src/main/resources/lib/hudson/listScmBrowsers.jelly +++ b/core/src/main/resources/lib/hudson/listScmBrowsers.jelly @@ -32,7 +32,7 @@ THE SOFTWARE. - + 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())); + } + } + } +}