1
0
mirror of https://github.com/octoleo/plantuml-server.git synced 2024-11-17 01:35:13 +00:00

First unit test case using HttpUnit

This commit is contained in:
Maxime Sinclair 2011-02-22 18:00:13 +01:00
parent 4f0aab14f7
commit 7ffbc44e08
7 changed files with 74 additions and 0 deletions

View File

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test/src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="lib" path="test/lib/junit-3.8.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
<attributes> <attributes>
<attribute name="owner.project.facets" value="jst.web"/> <attribute name="owner.project.facets" value="jst.web"/>
@ -12,5 +14,6 @@
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="test/lib/httpunit.jar"/>
<classpathentry kind="output" path="content/WEB-INF/classes"/> <classpathentry kind="output" path="content/WEB-INF/classes"/>
</classpath> </classpath>

View File

@ -3,6 +3,7 @@
<wb-module deploy-name="plantumlservlet"> <wb-module deploy-name="plantumlservlet">
<wb-resource deploy-path="/" source-path="/content"/> <wb-resource deploy-path="/" source-path="/content"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/test/src"/>
<property name="java-output-path" value="/plantumlservlet/WEB-INF/classes"/> <property name="java-output-path" value="/plantumlservlet/WEB-INF/classes"/>
<property name="context-root" value="plantuml"/> <property name="context-root" value="plantuml"/>
</wb-module> </wb-module>

BIN
test/lib/httpunit.jar Normal file

Binary file not shown.

BIN
test/lib/js-1.6R5.jar Normal file

Binary file not shown.

Binary file not shown.

BIN
test/lib/junit-3.8.1.jar Normal file

Binary file not shown.

View File

@ -0,0 +1,70 @@
package net.sourceforge.plantuml.servlet;
import junit.framework.*;
import com.meterware.httpunit.*;
public class TestForm extends TestCase {
/**
* Verifies that the welcome page has exactly two form
* with the Bob --> Alice sample
*/
public void testWelcomePage() throws Exception {
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest( "http://localhost/plantuml/" );
WebResponse response = tryGetResponse(conversation, request );
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
assertEquals( "url", forms[1].getParameterNames()[0] );
FormControl urlInput = forms[1].getParameter("url").getControl();
assertEquals( "http://localhost:80/plantuml/img/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000",
forms[1].getParameterValue("url"));
assertEquals( "INPUT", urlInput.getTagName());
// Ensure the generated image is present
assertEquals( 1, response.getImages().length);
}
/**
* Verifies that when the UML text is empty, no image is generated
*/
public void testEmptyText() throws Exception {
WebConversation conversation = new WebConversation();
// Fill the form and submit it
WebRequest request = new GetMethodWebRequest( "http://localhost/plantuml/form" );
WebResponse response = tryGetResponse(conversation, request );
WebForm formUMLText = response.getForms()[0];
formUMLText.setParameter("text", "");
response = tryGetResponse( conversation, formUMLText.getRequest());
// Analyze response
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
// Ensure the Text field is empty
assertNull( forms[0].getParameterValue("text"));
// Ensure the URL field is empty
assertTrue( forms[1].getParameterValue("url").isEmpty());
// Ensure there is no image
assertEquals( 0, response.getImages().length);
}
/**
* try getting a response for the given Conversation and Request
* show an error message if a 404 error appears
* @param conversation - the conversation to use
* @param request
* @return the response
* @throws an Exception if getting the response fails
*/
public WebResponse tryGetResponse(WebConversation conversation, WebRequest request) throws Exception {
WebResponse response=null;
try {
response = conversation.getResponse( request );
} catch (HttpNotFoundException nfe) {
System.err.println("The URL '"+request.getURL()+"' is not active any more");
throw nfe;
}
return response;
}
}