1
0
mirror of https://github.com/octoleo/plantuml-server.git synced 2024-06-08 03:10:52 +00:00

Unit test of the proxy feature.

This commit is contained in:
Maxime Sinclair 2011-03-18 16:35:45 +01:00
parent b924e99360
commit 225ef45c37
3 changed files with 57 additions and 6 deletions

View File

@ -14,11 +14,6 @@ if (encodedAttribute != null) {
}
}
Object decodedAttribute = request.getAttribute("net.sourceforge.plantuml.servlet.decoded");
/*if (decodedAttribute == null) {
umltext = "Bob -> Alice : hello";
imgurl = host + contextRoot + "/img/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000";
} else { */
if (decodedAttribute != null) {
umltext = decodedAttribute.toString();
}
@ -70,7 +65,11 @@ if (decodedAttribute != null) {
</p>
<% } //endif %>
</div>
<!-- This comment is used by the TestProxy class
@startuml
Bob -> Alice : hello
@enduml
-->
<%-- FOOTER
<%@ include file="util/footer.jspf" %> --%>
</body>

View File

@ -10,6 +10,7 @@ public class AllTests extends TestSuite {
//$JUnit-BEGIN$
suite.addTestSuite(TestForm.class);
suite.addTestSuite(TestImage.class);
suite.addTestSuite(TestProxy.class);
//$JUnit-END$
return suite;
}

View File

@ -0,0 +1,51 @@
package net.sourceforge.plantuml.servlet;
import junit.framework.TestCase;
import com.meterware.httpunit.*;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
public class TestProxy extends TestCase {
/**
* Verifies the proxified reception of the default Bob and Alice diagram
*/
public void testDefaultProxy() throws Exception {
WebConversation conversation = new WebConversation();
WebRequest request = new GetMethodWebRequest( TestUtils.getServerUrl()+"proxy/"
+TestUtils.getServerUrl()+"welcome");
WebResponse response = conversation.getResource( request);
// Analyze response
// Verifies the Content-Type header
//assertEquals( "Response content type is not PNG", "image/png", response.getContentType());
// Get the image and verify its size (~1533 bytes)
InputStream responseStream = response.getInputStream();
ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while( ( n = responseStream.read( buf)) != -1) {
imageStream.write( buf, 0, n);
}
imageStream.close();
responseStream.close();
byte[] inMemoryImage = imageStream.toByteArray();
int diagramLen = inMemoryImage.length;
assertTrue( diagramLen > 1500);
assertTrue( diagramLen < 1600);
}
/**
* Verifies that the HTTP header of a diagram incites the browser to cache it.
*/
public void testInvalidUrl() throws Exception {
WebConversation conversation = new WebConversation();
// Try to proxify an invalid address
WebRequest request = new GetMethodWebRequest( TestUtils.getServerUrl()+"proxy/invalidURL");
WebResponse response = conversation.getResource( request);
// Analyze response, it must be the empty form
// Verifies the Content-Type header
assertEquals( "Response content type is not HTML", "text/html", response.getContentType());
WebForm forms[] = response.getForms();
assertEquals( 2, forms.length );
}
}