private HttpResponse(int httpStatusCode, String body) { this(new HttpResponseBuilder() .setHttpStatusCode(httpStatusCode) .setResponseString(body)); }
private HttpResponse(int httpStatusCode, String body) { this(new HttpResponseBuilder() .setHttpStatusCode(httpStatusCode) .setResponseString(body)); }
public HttpResponse fetch(HttpRequest request) throws GadgetException { this.request = request; return new HttpResponseBuilder().setHttpStatusCode( HttpResponse.SC_OK ) .setResponseString( "{\"result\":[]}" ).create(); } }
@Test public void testHttpPreloadWithBadJson() throws Exception { HttpResponse response = new HttpResponseBuilder() .setResponseString("notjson") .addHeader("content-type", "text/html") .create(); JSONObject result = new JSONObject(executeHttpPreload(response, XML_WITH_HTTP_REQUEST)); assertFalse(result.has("result")); JSONObject error = result.getJSONObject("error"); assertEquals(HttpResponse.SC_NOT_ACCEPTABLE, error.getInt("code")); }
public HttpResponse fetch(HttpRequest request) { requests.add(request); return new HttpResponseBuilder() .setMetadata(PRELOAD_METADATA) .setResponseString(PRELOAD_CONTENT) .addHeader("Set-Cookie", "yo=momma") .create(); } }
private HttpResponse handleEchoUrl(HttpRequest request) throws Exception { String query = request.getUri().getQuery(); if (query.contains("add_oauth_token")) { query = query + "&oauth_token=abc"; } return new HttpResponseBuilder() .setHttpStatusCode(HttpResponse.SC_OK) .setResponseString(query) .create(); }
private HttpResponse handleEchoUrl(HttpRequest request) throws Exception { String query = request.getUri().getQuery(); if (query.contains("add_oauth_token")) { query = query + "&oauth_token=abc"; } return new HttpResponseBuilder() .setHttpStatusCode(HttpResponse.SC_OK) .setResponseString(query) .create(); }
@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()); }
@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()); }
@Test public void testHttpPreloadOfJsonObject() throws Exception { HttpResponse response = new HttpResponseBuilder() .setResponseString("{foo: 'bar'}") .create(); String expectedResult = "{result: {status: 200, content: {foo: 'bar'}}, id: 'p'}"; verifyHttpPreload(response, expectedResult); }
@Test public void testHttpPreloadOfJsonWithErrorCode() throws Exception { HttpResponse response = new HttpResponseBuilder() .setResponseString("not found") .addHeader("content-type", "text/html") .setHttpStatusCode(HttpResponse.SC_NOT_FOUND) .create(); String expectedResult = "{error: {code: 404, data:" + "{headers: {'content-type': ['text/html; charset=UTF-8']}," + "content: 'not found'}}, id: 'p'}"; verifyHttpPreload(response, expectedResult); }
@Test public void testHttpPreloadOfJsonWithErrorCode() throws Exception { HttpResponse response = new HttpResponseBuilder() .setResponseString("not found") .addHeader("content-type", "text/html") .setHttpStatusCode(HttpResponse.SC_NOT_FOUND) .create(); String expectedResult = "{error: {code: 404, data:" + "{headers: {'content-type': ['text/html; charset=UTF-8']}," + "content: 'not found'}}, id: 'p'}"; verifyHttpPreload(response, expectedResult); }
@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 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 testImgWithErrorResponseReservedAndFetchNotTriggered() throws Exception { cache.addResponse(new HttpRequest(Uri.parse(IMG_URL)), new HttpResponseBuilder().setResponseString("test") .setHttpStatusCode(404).create()); checkVisitBypassedAndFetchTriggered("img", IMG_URL, false, false); }
@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 testImgWithCacheControlPrivateReservedAndFetchNotTriggered() throws Exception { cache.addResponse(new HttpRequest(Uri.parse(IMG_URL)), new HttpResponseBuilder().setResponseString("test") .addHeader("Cache-Control", "private").create()); // Ensure that the strict no-cache resource is cached. assertTrue(cache.getResponse(new HttpRequest(Uri.parse(IMG_URL))) != null); checkVisitBypassedAndFetchTriggered("img", IMG_URL, false, false); }