提交 15c15494 编写于 作者: K kohsuke

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
上级 8e7a6b67
......@@ -70,9 +70,9 @@
<version>1.0-beta-1</version>
</dependency-->
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<groupId>org.jvnet.hudson</groupId>
<artifactId>htmlunit</artifactId>
<version>2.2</version>
<version>2.2-hudson-1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
......
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<JDK> 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> T last(List<T> 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);
}
}
<?xml version='1.0' encoding='UTF-8'?>
<hudson>
<numExecutors>2</numExecutors>
<mode>NORMAL</mode>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None"/>
<jdks>
<jdk>
<name>jdk1</name>
<javaHome>/tmp</javaHome>
</jdk>
<jdk>
<name>jdk2</name>
<javaHome>/tmp</javaHome>
</jdk>
</jdks>
<slaves/>
<quietPeriod>5</quietPeriod>
<slaveAgentPort>0</slaveAgentPort>
<secretKey>0b5165d9bd5c32b84a685eadc52b5c976d82e6c0baf83c3677cd12464cf755db</secretKey>
</hudson>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.scm.CVSSCM_-DescriptorImpl>
<repositoryBrowser>hudson.scm.CVSRepositoryBrowser</repositoryBrowser>
<generation>1</generation>
<cvsExe>cvs</cvsExe>
<noCompression>false</noCompression>
</hudson.scm.CVSSCM_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Ant_-DescriptorImpl>
<installations>
<hudson.tasks.Ant_-AntInstallation>
<name>ant1</name>
<antHome>/tmp</antHome>
</hudson.tasks.Ant_-AntInstallation>
<hudson.tasks.Ant_-AntInstallation>
<name>ant2</name>
<antHome>/tmp</antHome>
</hudson.tasks.Ant_-AntInstallation>
</installations>
</hudson.tasks.Ant_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Mailer_-DescriptorImpl>
<hudsonUrl>http://localhost:8080/</hudsonUrl>
<adminAddress>address not configured yet &lt;nobody@nowhere&gt;</adminAddress>
<useSsl>false</useSsl>
</hudson.tasks.Mailer_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Maven_-DescriptorImpl>
<installations>
<hudson.tasks.Maven_-MavenInstallation>
<name>maven1</name>
<mavenHome>/tmp</mavenHome>
</hudson.tasks.Maven_-MavenInstallation>
<hudson.tasks.Maven_-MavenInstallation>
<name>maven2</name>
<mavenHome>/tmp</mavenHome>
</hudson.tasks.Maven_-MavenInstallation>
</installations>
</hudson.tasks.Maven_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Shell_-DescriptorImpl>
<shell>/bin/sh</shell>
</hudson.tasks.Shell_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<hudson.triggers.SCMTrigger_-DescriptorImpl>
<synchronousPolling>false</synchronousPolling>
<maximumThreads>0</maximumThreads>
</hudson.triggers.SCMTrigger_-DescriptorImpl>
\ No newline at end of file
<?xml version='1.0' encoding='UTF-8'?>
<list/>
\ No newline at end of file
0b5165d9bd5c32b84a685eadc52b5c976d82e6c0baf83c3677cd12464cf755db
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册