/** @throws Exception if the test fails */ @Test public void testConstructorWithWebResponse() throws Exception { final List<NameValuePair> emptyList = Collections.emptyList(); final WebResponseData webResponseData = new WebResponseData( ArrayUtils.EMPTY_BYTE_ARRAY, HttpStatus.SC_NOT_FOUND, "not found", emptyList); final WebResponse webResponse = new WebResponseImpl(webResponseData, URL_FIRST, HttpMethod.GET, 10); final FailingHttpStatusCodeException e = new FailingHttpStatusCodeException(webResponse); assertEquals(webResponse, e.getResponse()); assertEquals(webResponse.getStatusMessage(), e.getStatusMessage()); assertEquals(webResponse.getStatusCode(), e.getStatusCode()); assertTrue( "message doesn't contain failing url", e.getMessage().indexOf(URL_FIRST.toExternalForm()) > -1); }
/** * Tests creation of a web response. * * @throws Exception if the test fails */ @Test public void makeWebResponse() throws Exception { final URL url = new URL("http://htmlunit.sourceforge.net/"); final String content = "<html><head></head><body></body></html>"; final DownloadedContent downloadedContent = new DownloadedContent.InMemory(content.getBytes()); final int httpStatus = HttpStatus.SC_OK; final long loadTime = 500L; final ProtocolVersion protocolVersion = new ProtocolVersion("HTTP", 1, 0); final StatusLine statusLine = new BasicStatusLine(protocolVersion, HttpStatus.SC_OK, null); final HttpResponse httpResponse = new BasicHttpResponse(statusLine); final HttpEntity responseEntity = new StringEntity(content); httpResponse.setEntity(responseEntity); final HttpWebConnection connection = new HttpWebConnection(getWebClient()); final Method method = connection .getClass() .getDeclaredMethod( "makeWebResponse", HttpResponse.class, WebRequest.class, DownloadedContent.class, long.class); method.setAccessible(true); final WebResponse response = (WebResponse) method.invoke( connection, httpResponse, new WebRequest(url), downloadedContent, new Long(loadTime)); Assert.assertEquals(httpStatus, response.getStatusCode()); Assert.assertEquals(url, response.getWebRequest().getUrl()); Assert.assertEquals(loadTime, response.getLoadTime()); Assert.assertEquals(content, response.getContentAsString()); assertEquals(content.getBytes(), IOUtils.toByteArray(response.getContentAsStream())); assertEquals(new ByteArrayInputStream(content.getBytes()), response.getContentAsStream()); }