@Test public void setStrictNoCache() { HttpResponseBuilder builder = new HttpResponseBuilder() .addHeader("Cache-Control", "public,max-age=100") .addHeader("Expires", "some time stamp normally goes here") .setStrictNoCache(); Multimap<String, String> headers = builder.getHeaders(); assertFalse("Expires header not removed.", headers.containsKey("Expires")); assertEquals("no-cache", headers.get("Cache-Control").iterator().next()); assertEquals("no-cache", headers.get("Pragma").iterator().next()); }
@Test public void setEncoding() { HttpResponseBuilder builder = new HttpResponseBuilder() .addHeader("Content-Type", "text/html; charset=Big5") .setEncoding(Charsets.UTF_8); Multimap<String, String> headers = builder.getHeaders(); assertEquals("text/html; charset=UTF-8", headers.get("Content-Type").iterator().next()); }
private void expectGetAndReturnData(String url, byte[] data) throws Exception { HttpRequest req = new HttpRequest(Uri.parse(url)); HttpResponse resp = new HttpResponseBuilder().setResponse(data).create(); expect(pipeline.execute(req)).andReturn(resp); }
private String rewrite(HttpRequest request, HttpResponse response, Gadget gadget) throws Exception { request.setSanitizationRequested(true); ResponseRewriter rewriter = createRewriter(Collections.<String>emptySet(), Collections.<String>emptySet()); HttpResponseBuilder hrb = new HttpResponseBuilder(parser, response); rewriter.rewrite(request, hrb, gadget); if (hrb.getNumChanges() == 0) { return null; } return hrb.getContent(); }
@Test public void testNullHeaderNamesStripped() { HttpResponse response = new HttpResponseBuilder() .addHeader(null, "dummy") .create(); for (String key : response.getHeaders().keySet()) { assertNotNull("Null header not removed.", key); } }
@Test public void setResponseStringWithContentType() { HttpResponse resp = new HttpResponseBuilder() .addHeader("Content-Type", "text/html") .setResponseString("foo") .create(); Multimap<String, String> headers = resp.getHeaders(); assertEquals("text/html; charset=UTF-8", headers.get("Content-Type").iterator().next()); assertEquals("foo", resp.getResponseAsString()); }
private String rewrite(HttpRequest request, HttpResponse response, Gadget gadget) throws Exception { request.setSanitizationRequested(true); ResponseRewriter rewriter = createRewriter(); HttpResponseBuilder hrb = new HttpResponseBuilder(parser, response); rewriter.rewrite(request, hrb, gadget); return hrb.getContent(); }
@Test public void testHashCodeEmpty() { HttpResponse local = new HttpResponseBuilder() .setHttpStatusCode(200) .create(); verifyHash(local, 1, "qgeopmcf02p09qc016cepu22fo"); }
@Test public void testAddToResponse_1() throws Exception { final OAuth2ResponseParams fixture = new OAuth2ResponseParams(); fixture.addDebug(""); fixture.setAuthorizationUrl(""); final HttpResponseBuilder responseBuilder = new HttpResponseBuilder(); final String errorCode = ""; final String errorDescription = null; final String errorUri = null; final String errorExplanation = null; fixture.addToResponse(responseBuilder, errorCode, errorDescription, errorUri, errorExplanation); }
@Test public void testAddToResponse_5() throws Exception { final OAuth2ResponseParams fixture = new OAuth2ResponseParams(); fixture.addDebug(""); fixture.setAuthorizationUrl(""); final HttpResponseBuilder responseBuilder = new HttpResponseBuilder(); final String errorCode = null; final String errorDescription = ""; final String errorUri = ""; final String errorExplanation = ""; fixture.addToResponse(responseBuilder, errorCode, errorDescription, errorUri, errorExplanation); }
@Test public void testAddToResponse_13() throws Exception { final OAuth2ResponseParams fixture = new OAuth2ResponseParams(); fixture.addDebug((String) null); fixture.setAuthorizationUrl(""); final HttpResponseBuilder responseBuilder = new HttpResponseBuilder(); final String errorCode = null; final String errorDescription = null; final String errorUri = ""; final String errorExplanation = null; fixture.addToResponse(responseBuilder, errorCode, errorDescription, errorUri, errorExplanation); }
@Test public void testAddToResponse_14() throws Exception { final OAuth2ResponseParams fixture = new OAuth2ResponseParams(); fixture.addDebug((String) null); fixture.setAuthorizationUrl(""); final HttpResponseBuilder responseBuilder = new HttpResponseBuilder(); final String errorCode = null; final String errorDescription = ""; final String errorUri = null; final String errorExplanation = null; fixture.addToResponse(responseBuilder, errorCode, errorDescription, errorUri, errorExplanation); }
@Test public void getResponseNotCacheable() { HttpRequest request = new HttpRequest(DEFAULT_URI); String key = cache.createKey(request); HttpResponse response = new HttpResponseBuilder().setStrictNoCache().create(); cache.map.put(key, response); assertNull("Did not return null when response was uncacheable", cache.getResponse(request)); extendedStrictNoCacheTtlCache.map.put(key, response); assertEquals(response, extendedStrictNoCacheTtlCache.getResponse(request)); }
@Test public void testIsHtmlWithoutHtmlTagContext() throws Exception { HttpRequest req = new HttpRequest(Uri.parse("http://www.example.org/")); HttpResponseBuilder builder = new HttpResponseBuilder() .addHeader("Content-Type", "text/html"); assertTrue(RewriterUtils.isHtml(req, builder)); }
@Test public void testJs() throws Exception { Gadget gadget = mockGadget(); control.replay(); HttpRequest req = new HttpRequest(CONTENT_URI); req.setRewriteMimeType("text/javascript"); req.setCajaRequested(true); HttpResponse response = new HttpResponseBuilder().setResponseString("var a;").create(); String sanitized = "___.di(IMPORTS___,'a');"; assertTrue(rewrite(req, response).contains(sanitized)); assertTrue(rewrite(req, response, gadget).contains(sanitized)); }
@Test public void testJsWithoutCaja() throws Exception { Gadget gadget = mockGadget(); control.replay(); HttpRequest req = new HttpRequest(CONTENT_URI); req.setRewriteMimeType("text/javascript"); req.setCajaRequested(false); HttpResponse response = new HttpResponseBuilder().setResponseString("var a;").create(); String sanitized = "var a;"; assertTrue(rewrite(req, response).contains(sanitized)); assertTrue(rewrite(req, response, gadget).contains(sanitized)); }
@Test public void testImgWithPragmaNoCacheReservedAndFetchNotTriggered() throws Exception { cache.addResponse(new HttpRequest(Uri.parse(IMG_URL)), new HttpResponseBuilder().setResponseString("test") .addHeader("Pragma", "no-cache").create()); checkVisitBypassedAndFetchTriggered("img", IMG_URL, false, false); }
@Test public void noModsReturnsSameResponseBaseCtor() { HttpResponse response = new HttpResponse("foo"); HttpResponseBuilder builder = new HttpResponseBuilder(response); assertSame(response, builder.create()); builder.setHttpStatusCode(HttpResponse.SC_BAD_GATEWAY); HttpResponse newResponse = builder.create(); assertNotSame(response, newResponse); assertSame(newResponse, builder.create()); } }
@Test public void testShouldRefetchForStrictNoCacheResponsePastShouldNotRefetch() throws Exception { assertEquals(false, new HttpResponseBuilder().setStrictNoCache() .setHeader("Date", DateUtil.formatRfc1123Date(HttpUtil.getTimeSource().currentTimeMillis() - 5000)) .setRefetchStrictNoCacheAfterMs(10000) .create() .shouldRefetch()); }
@Test public void testFixedDate() throws Exception { int time = roundToSeconds(timeSource.currentTimeMillis()); HttpResponse response = new HttpResponseBuilder() .addHeader("Date", DateUtil.formatRfc1123Date(1000L * time)) .create(); assertEquals(time + roundToSeconds(response.getDefaultTtl()), roundToSeconds(response.getCacheExpiration())); assertEquals(DateUtil.formatRfc1123Date(timeSource.currentTimeMillis()), response.getHeader("Date")); assertTtlOk(roundToSeconds(response.getDefaultTtl()), response); }