You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by jo...@apache.org on 2011/01/12 17:57:15 UTC
svn commit: r1058232 -
/httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java
Author: jonm
Date: Wed Jan 12 16:57:14 2011
New Revision: 1058232
URL: http://svn.apache.org/viewvc?rev=1058232&view=rev
Log:
Document acceptance test (implementation already passes):
"If a new cacheable...response is received from a resource while any
existing responses for the same resource are cached, the cache SHOULD
use the new response to reply to the current request."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.12
Modified:
httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java
Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java?rev=1058232&r1=1058231&r2=1058232&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java (original)
+++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestProtocolRecommendations.java Wed Jan 12 16:57:14 2011
@@ -1231,4 +1231,41 @@ public class TestProtocolRecommendations
assertTrue(HttpTestUtils.semanticallyTransparent(resp5, result5));
}
+ /*
+ * "If a new cacheable response is received from a resource while any
+ * existing responses for the same resource are cached, the cache
+ * SHOULD use the new response to reply to the current request."
+ *
+ * http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.12
+ */
+ @Test
+ public void cacheShouldUpdateWithNewCacheableResponse()
+ throws Exception {
+ HttpRequest req1 = HttpTestUtils.makeDefaultRequest();
+ HttpResponse resp1 = HttpTestUtils.make200Response();
+ resp1.setHeader("Date", formatDate(tenSecondsAgo));
+ resp1.setHeader("Cache-Control", "max-age=3600");
+ resp1.setHeader("ETag", "\"etag1\"");
+
+ backendExpectsAnyRequest().andReturn(resp1);
+
+ HttpRequest req2 = HttpTestUtils.makeDefaultRequest();
+ req2.setHeader("Cache-Control", "max-age=0");
+ HttpResponse resp2 = HttpTestUtils.make200Response();
+ resp2.setHeader("Date", formatDate(now));
+ resp2.setHeader("Cache-Control", "max-age=3600");
+ resp2.setHeader("ETag", "\"etag2\"");
+
+ backendExpectsAnyRequest().andReturn(resp2);
+
+ HttpRequest req3 = HttpTestUtils.makeDefaultRequest();
+
+ replayMocks();
+ impl.execute(host, req1);
+ impl.execute(host, req2);
+ HttpResponse result = impl.execute(host, req3);
+ verifyMocks();
+
+ assertTrue(HttpTestUtils.semanticallyTransparent(resp2, result));
+ }
}