From 15c154946555c1d4b0721bfd551bbc50e8f16228 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Wed, 20 Aug 2008 00:58:46 +0000 Subject: [PATCH] Adding a test case to verify the basic configuration round-trip. Turns out this excercise became a real deep dive into HtmlUnit. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@11627 71c3de6d-444a-0410-be80-ed276b4c234a --- test/pom.xml | 4 +- .../test/java/hudson/model/HudsonTest.java | 62 +++++++++++++++++++ .../testSimpleConfigSubmit/config.xml | 21 +++++++ .../hudson.scm.CVSSCM.xml | 7 +++ .../hudson.tasks.Ant.xml | 13 ++++ .../hudson.tasks.Mailer.xml | 6 ++ .../hudson.tasks.Maven.xml | 13 ++++ .../hudson.tasks.Shell.xml | 4 ++ .../hudson.triggers.SCMTrigger.xml | 5 ++ .../testSimpleConfigSubmit/queue.xml | 2 + .../testSimpleConfigSubmit/secret.key | 1 + 11 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 test/src/test/java/hudson/model/HudsonTest.java create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/config.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.scm.CVSSCM.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Ant.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Mailer.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Maven.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Shell.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.triggers.SCMTrigger.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/queue.xml create mode 100644 test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/secret.key diff --git a/test/pom.xml b/test/pom.xml index 1ea8a5c3c9..6f217a5a95 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -70,9 +70,9 @@ 1.0-beta-1 - net.sourceforge.htmlunit + org.jvnet.hudson htmlunit - 2.2 + 2.2-hudson-1 junit diff --git a/test/src/test/java/hudson/model/HudsonTest.java b/test/src/test/java/hudson/model/HudsonTest.java new file mode 100644 index 0000000000..fcacf93c7c --- /dev/null +++ b/test/src/test/java/hudson/model/HudsonTest.java @@ -0,0 +1,62 @@ +package hudson.model; + +import com.gargoylesoftware.htmlunit.html.HtmlButton; +import com.gargoylesoftware.htmlunit.html.HtmlForm; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import hudson.model.Node.Mode; +import hudson.security.AuthorizationStrategy; +import hudson.security.SecurityRealm; +import hudson.tasks.Ant; +import hudson.tasks.Ant.AntInstallation; +import org.jvnet.hudson.test.HudsonTestCase; +import org.jvnet.hudson.test.recipes.LocalData; + +import java.util.List; + +/** + * @author Kohsuke Kawaguchi + */ +public class HudsonTest extends HudsonTestCase { + /** + * Performs a very basic round-trip of a non-empty system configuration screen. + * This makes sure that the structured form submission is working (to some limited extent.) + */ + @LocalData + public void testSimpleConfigSubmit() throws Exception { + // just load the page and resubmit + HtmlPage configPage = new WebClient().goTo("configure"); + HtmlForm form = configPage.getFormByName("config"); + form.submit((HtmlButton)last(form.getHtmlElementsByTagName("button"))); + + // make sure all the pieces are intact + assertEquals(2,hudson.getNumExecutors()); + assertSame(Mode.NORMAL,hudson.getMode()); + assertSame(SecurityRealm.NO_AUTHENTICATION,hudson.getSecurityRealm()); + assertSame(AuthorizationStrategy.UNSECURED,hudson.getAuthorizationStrategy()); + assertEquals(5,hudson.getQuietPeriod()); + + List jdks = hudson.getJDKs(); + assertEquals(2,jdks.size()); + assertJDK(jdks.get(0),"jdk1","/tmp"); + assertJDK(jdks.get(1),"jdk2","/tmp"); + + AntInstallation[] ants = Ant.DESCRIPTOR.getInstallations(); + assertEquals(2,ants.length); + assertAnt(ants[0],"ant1","/tmp"); + assertAnt(ants[1],"ant2","/tmp"); + } + + private T last(List items) { + return items.get(items.size()-1); + } + + private void assertAnt(AntInstallation ant, String name, String home) { + assertEquals(ant.getName(),name); + assertEquals(ant.getAntHome(),home); + } + + private void assertJDK(JDK jdk, String name, String home) { + assertEquals(jdk.getName(),name); + assertEquals(jdk.getJavaHome(),home); + } +} diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/config.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/config.xml new file mode 100644 index 0000000000..fafca875ba --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/config.xml @@ -0,0 +1,21 @@ + + + 2 + NORMAL + + + + + jdk1 + /tmp + + + jdk2 + /tmp + + + + 5 + 0 + 0b5165d9bd5c32b84a685eadc52b5c976d82e6c0baf83c3677cd12464cf755db + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.scm.CVSSCM.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.scm.CVSSCM.xml new file mode 100644 index 0000000000..4104b1e0f0 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.scm.CVSSCM.xml @@ -0,0 +1,7 @@ + + + hudson.scm.CVSRepositoryBrowser + 1 + cvs + false + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Ant.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Ant.xml new file mode 100644 index 0000000000..60f18b4432 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Ant.xml @@ -0,0 +1,13 @@ + + + + + ant1 + /tmp + + + ant2 + /tmp + + + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Mailer.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Mailer.xml new file mode 100644 index 0000000000..53ab72ee6c --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Mailer.xml @@ -0,0 +1,6 @@ + + + http://localhost:8080/ + address not configured yet <nobody@nowhere> + false + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Maven.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Maven.xml new file mode 100644 index 0000000000..bcf8931d14 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Maven.xml @@ -0,0 +1,13 @@ + + + + + maven1 + /tmp + + + maven2 + /tmp + + + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Shell.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Shell.xml new file mode 100644 index 0000000000..29da04f3f1 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.tasks.Shell.xml @@ -0,0 +1,4 @@ + + + /bin/sh + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.triggers.SCMTrigger.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.triggers.SCMTrigger.xml new file mode 100644 index 0000000000..70867ab359 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/hudson.triggers.SCMTrigger.xml @@ -0,0 +1,5 @@ + + + false + 0 + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/queue.xml b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/queue.xml new file mode 100644 index 0000000000..2b0ec83ad9 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/queue.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/secret.key b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/secret.key new file mode 100644 index 0000000000..41206275b0 --- /dev/null +++ b/test/src/test/resources/hudson/model/HudsonTest/testSimpleConfigSubmit/secret.key @@ -0,0 +1 @@ +0b5165d9bd5c32b84a685eadc52b5c976d82e6c0baf83c3677cd12464cf755db \ No newline at end of file -- GitLab