You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ro...@apache.org on 2006/12/23 04:06:20 UTC

svn commit: r489843 - in /labs/speedyfeed/servlet/trunk/src: main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java test/java/org/apache/speedyfeed/test/BasicTest.java

Author: rooneg
Date: Fri Dec 22 19:06:19 2006
New Revision: 489843

URL: http://svn.apache.org/viewvc?view=rev&rev=489843
Log:
Add an actual test of the filtering functionality, and make it actually work.

* src/test/java/org/apache/speedyfeed/test/BasicTest.java
  (BasicServlet.doGet): Remember to close the stream.
  (testBasics): Actually make a request with an If-Modified-Since header,
   and confirm that the entry is really dropped.

* src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
  (checkContentType, close): Get a stream from the underlying wrapped
   response, to avoid recursion.

* src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
  (getWrapped): New method.

Modified:
    labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
    labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
    labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/BasicTest.java

Modified: labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java?view=diff&rev=489843&r1=489842&r2=489843
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java (original)
+++ labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseStream.java Fri Dec 22 19:06:19 2006
@@ -58,7 +58,7 @@
     isAtomContent = response.isAtomContent();
 
     if (! isAtomContent) {
-      outputStream = response.createOutputStream();
+      outputStream = response.getWrapped().getOutputStream();
     } else {
       outputStream = new ByteArrayOutputStream();
     }
@@ -115,7 +115,7 @@
       // At this point we're done with buffered data, so just create the
       // final output stream so we can write either our modified version
       // or the original to it.
-      outputStream = response.createOutputStream();
+      outputStream = response.getWrapped().getOutputStream();
 
       try {
         Document<Feed> doc = p.parse(is); // XXX calculate and pass base href

Modified: labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java?view=diff&rev=489843&r1=489842&r2=489843
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java (original)
+++ labs/speedyfeed/servlet/trunk/src/main/java/org/apache/speedyfeed/SpeedyfeedResponseWrapper.java Fri Dec 22 19:06:19 2006
@@ -47,6 +47,8 @@
     wrapped.setContentType(contentType);
   }
 
+  HttpServletResponse getWrapped() { return wrapped; }
+
   boolean isAtomContent()
   {
     return "application/atom+xml".equals(contentType);
@@ -57,7 +59,7 @@
     return AtomDate.parse(ifModifiedSince);
   }
 
-  public ServletOutputStream createOutputStream()
+  public ServletOutputStream getOutputStream()
     throws IOException
   {
     return new SpeedyfeedResponseStream(this);

Modified: labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/BasicTest.java
URL: http://svn.apache.org/viewvc/labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/BasicTest.java?view=diff&rev=489843&r1=489842&r2=489843
==============================================================================
--- labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/BasicTest.java (original)
+++ labs/speedyfeed/servlet/trunk/src/test/java/org/apache/speedyfeed/test/BasicTest.java Fri Dec 22 19:06:19 2006
@@ -34,6 +34,8 @@
 import org.apache.abdera.Abdera;
 import org.apache.abdera.model.Feed;
 import org.apache.abdera.model.Entry;
+import org.apache.abdera.model.Document;
+import org.apache.abdera.parser.Parser;
 
 import org.apache.speedyfeed.SpeedyfeedFilter;
 
@@ -57,8 +59,12 @@
       byte buffer[] = new byte[1024];
       int len;
 
-      while ((len = in.read(buffer)) != -1) {
-        out.write(buffer, 0, len);
+      try {
+        while ((len = in.read(buffer)) != -1) {
+          out.write(buffer, 0, len);
+        }
+      } finally {
+        out.close();
       }
     }
   }
@@ -67,12 +73,26 @@
   {
     HttpClient client = new HttpClient();
 
-    HttpMethod method = new GetMethod("http://localhost:8080/basic");
+    HttpMethod method = new GetMethod(getBase() + "/basic");
 
     method.setRequestHeader("Connection", "close");
 
     try {
       client.executeMethod(method);
+
+      Parser parser = Abdera.getNewParser();
+
+      Document<Feed> feed = parser.parse(method.getResponseBodyAsStream());
+
+      assertEquals(1, feed.getRoot().getEntries().size());
+
+      method.setRequestHeader("If-Modified-Since", "2003-12-14T18:30:02Z");
+
+      client.executeMethod(method);
+
+      feed = parser.parse(method.getResponseBodyAsStream());
+
+      assertEquals(0, feed.getRoot().getEntries().size());
     } finally {
       method.releaseConnection();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org