Index: trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java
===================================================================
--- trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java	(revision 1561)
+++ trunk/autoquest-httpmonitor-test/src/test/java/de/ugoe/cs/autoquest/httpmonitor/HttpMonitorTest.java	(revision 1614)
@@ -98,4 +98,7 @@
     }
     
+    /**
+     *
+     */
     @Test
     public void test_SimulatedSession_MonitorOnly() throws Exception {
@@ -158,5 +161,8 @@
         System.out.println("\n\n");
     }
-
+    
+    /**
+     *
+     */
     @Test
     public void test_SimpleText_ProxyAndMonitor() throws Exception {
@@ -175,5 +181,5 @@
         String message = "dummy message";
         String expectedResponse = "response content";
-        String response = sendDummyMessage("POST", message, expectedResponse);
+        String response = sendDummyMessage("POST", null, message, expectedResponse);
         
         assertEquals(expectedResponse, response);
@@ -207,7 +213,10 @@
         assertEquals(1, sequence.size());
 
-        assertEvent(sequence.get(0), "POST", message, response);
-    }
-
+        assertEvent(sequence.get(0), "POST", null, message, response);
+    }
+    
+    /**
+     *
+     */
     @Test
     public void test_XMLMessage_ProxyAndMonitor() throws Exception {
@@ -259,5 +268,5 @@
             "</httpEvent>";
 
-        String response = sendDummyMessage("POST", message, expectedResponse);
+        String response = sendDummyMessage("POST", null, message, expectedResponse);
         
         assertEquals(expectedResponse, response);
@@ -291,7 +300,10 @@
         assertEquals(1, sequence.size());
 
-        assertEvent(sequence.get(0), "POST", message, response);
-    }
-
+        assertEvent(sequence.get(0), "POST", null, message, response);
+    }
+    
+    /**
+     *
+     */
     @Test
     public void test_SOAP_ProxyAndMonitor() throws Exception {
@@ -348,8 +360,124 @@
         assertEquals(2, sequence.size());
 
-        assertEvent(sequence.get(0), "GET", null, null); // get WSDL
-        assertEvent(sequence.get(1), "POST", null, null); // send request
-    }
-    
+        assertEvent(sequence.get(0), "GET", "wsdl", null, null); // get WSDL
+        assertEvent(sequence.get(1), "POST", null, null, null); // send request
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void test_LargeRequest_ProxyAndMonitor() throws Exception {
+        monitor = new HttpMonitor(new String[] { LOG_FILE_DIR, MONITOR_PORT + "" });
+
+        monitor.init();
+        monitor.start();
+
+        proxy = new HttpMonitoringProxy
+            (new String[] { LOG_FILE_DIR, PROXY_PORT + "",
+                            "localhost:" + DUMMY_SERVER_PORT, "localhost:" + MONITOR_PORT });
+
+        proxy.init();
+        proxy.start();
+        
+        StringBuffer message = new StringBuffer();
+        StringBuffer expectedResponse = new StringBuffer();
+        
+        for (int i = 0; i < 1000; i++) {
+            message.append(" # " + i + " test request data");
+            expectedResponse.append(" # " + i + " test response data");
+        }
+        
+        String response =
+            sendDummyMessage("POST", null, message.toString(), expectedResponse.toString());
+        
+        assertEquals(expectedResponse.toString(), response);
+        
+        // the monitor needs some time to receive the exchange --> give it
+        Thread.sleep(1000);
+        
+        monitor.stop();
+        monitor = null;
+
+        File logFile = new File(LOG_FILE_DIR + File.separator + "httpmonitor_000.log");
+        
+        assertTrue(logFile.exists());
+        
+        HTTPLogParser parser = new HTTPLogParser();
+
+        parser.parseFile(logFile);
+
+        // check the sequences
+        Collection<List<Event>> sequences = parser.getSequences();
+
+        assertNotNull(sequences);
+
+        Iterator<List<Event>> iterator = sequences.iterator();
+        assertTrue(iterator.hasNext());
+
+        List<Event> sequence = iterator.next();
+        assertFalse(iterator.hasNext());
+
+        assertNotNull(sequence);
+        assertEquals(1, sequence.size());
+
+        assertEvent(sequence.get(0), "POST", null, message.toString(), response);
+    }
+    
+    /**
+     *
+     */
+    @Test
+    public void test_Query_ProxyAndMonitor() throws Exception {
+        monitor = new HttpMonitor(new String[] { LOG_FILE_DIR, MONITOR_PORT + "" });
+
+        monitor.init();
+        monitor.start();
+
+        proxy = new HttpMonitoringProxy
+            (new String[] { LOG_FILE_DIR, PROXY_PORT + "",
+                            "localhost:" + DUMMY_SERVER_PORT, "localhost:" + MONITOR_PORT });
+
+        proxy.init();
+        proxy.start();
+        
+        String message = "dummy message";
+        String query = "key=value&key2=value2&key3=%3E%3CXXX";
+        String expectedResponse = "response content";
+        String response = sendDummyMessage("POST", query, message, expectedResponse);
+        
+        assertEquals(expectedResponse, response);
+        
+        // the monitor needs some time to receive the exchange --> give it
+        Thread.sleep(1000);
+        
+        monitor.stop();
+        monitor = null;
+
+        File logFile = new File(LOG_FILE_DIR + File.separator + "httpmonitor_000.log");
+        
+        assertTrue(logFile.exists());
+        
+        HTTPLogParser parser = new HTTPLogParser();
+
+        parser.parseFile(logFile);
+
+        // check the sequences
+        Collection<List<Event>> sequences = parser.getSequences();
+
+        assertNotNull(sequences);
+
+        Iterator<List<Event>> iterator = sequences.iterator();
+        assertTrue(iterator.hasNext());
+
+        List<Event> sequence = iterator.next();
+        assertFalse(iterator.hasNext());
+
+        assertNotNull(sequence);
+        assertEquals(1, sequence.size());
+
+        assertEvent(sequence.get(0), "POST", query, message, response);
+    }
+
     /**
      *
