A TestSuite and new test cases

This commit is contained in:
Maxime Sinclair
2011-02-23 15:51:38 +01:00
parent 7ffbc44e08
commit 5a97a919ff
4 changed files with 142 additions and 28 deletions

View File

@@ -1,6 +1,6 @@
package net.sourceforge.plantuml.servlet;
import junit.framework.*;
import junit.framework.TestCase;
import com.meterware.httpunit.*;
public class TestForm extends TestCase {
@@ -10,33 +10,52 @@ public class TestForm extends TestCase {
* 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 );
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest( TestUtils.getServerUrl());
WebResponse response = TestUtils.tryGetResponse(conversation, request );
// Analyze response
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());
assertTrue( forms[1].getParameterValue("url").endsWith("/img/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000"));
// Ensure the generated image is present
assertEquals( 1, response.getImages().length);
}
/**
* Verifies that the version image is generated
*/
public void testVersion() throws Exception {
WebConversation conversation = new WebConversation();
// Fill the form and submit it
WebRequest request = new GetMethodWebRequest( TestUtils.getServerUrl());
WebResponse response = TestUtils.tryGetResponse(conversation, request );
WebForm formUMLText = response.getForms()[0];
formUMLText.setParameter("text", "version");
response = formUMLText.submit();
// Analyze response
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
// Ensure the Text field is correct
assertEquals( "version", forms[0].getParameterValue("text"));
// Ensure the URL field is correct
assertTrue( forms[1].getParameterValue("url").endsWith("/img/AqijAixCpmC0"));
// Ensure the 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();
WebConversation conversation = new WebConversation();
// Fill the form and submit it
WebRequest request = new GetMethodWebRequest( "http://localhost/plantuml/form" );
WebResponse response = tryGetResponse(conversation, request );
WebRequest request = new GetMethodWebRequest( TestUtils.getServerUrl());
WebResponse response = TestUtils.tryGetResponse(conversation, request );
WebForm formUMLText = response.getForms()[0];
formUMLText.setParameter("text", "");
response = tryGetResponse( conversation, formUMLText.getRequest());
response = formUMLText.submit();
// Analyze response
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
@@ -49,22 +68,25 @@ public class TestForm extends TestCase {
}
/**
* 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
* Verifies that when the encoded URL is empty, the default image is generated
*/
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;
public void testEmptyUrl() throws Exception {
WebConversation conversation = new WebConversation();
// Fill the form and submit it
WebRequest request = new GetMethodWebRequest( "http://localhost/plantuml/" );
WebResponse response = TestUtils.tryGetResponse(conversation, request );
WebForm formUrl = response.getForms()[1];
formUrl.setParameter("url", "");
response = formUrl.submit();
// Analyze response
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
// Ensure the Text field is empty
assertTrue( forms[0].getParameterValue("text").startsWith("Bob"));
// Ensure the URL field is correct
assertTrue( forms[1].getParameterValue("url").endsWith("/img/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000"));
// Ensure the image is present
assertEquals( 1, response.getImages().length);
}
}