io.reactivex.MaybeOnSubscribe#com.gargoylesoftware.htmlunit.WebResponse源码实例Demo

下面列出了io.reactivex.MaybeOnSubscribe#com.gargoylesoftware.htmlunit.WebResponse 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxyVersionedMetadataDefaultLayout()
    throws Exception
{
    String commonsLangMetadata = "commons-lang/commons-lang/2.1/maven-metadata.xml";
    String expectedMetadataContents = "dummy-versioned-metadata";

    Path metadataFile = repoRootInternal.resolve(commonsLangMetadata);
    Files.createDirectories(metadataFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile( metadataFile, Charset.defaultCharset(), expectedMetadataContents );

    //WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
    WebResponse response = getWebResponse( "/repository/internal/" + commonsLangMetadata );
    assertResponseOK( response );

    assertEquals( "Expected file contents", expectedMetadataContents, response.getContentAsString() );
}
 
源代码2 项目: htmlunit   文件: HTMLParserTest.java
/**
 * @throws Exception failure
 */
@Test
public void tableWithoutColgroup() throws Exception {
    final String html = HtmlPageTest.STANDARDS_MODE_PREFIX_
        + "<html><head>\n"
        + "</head>\n"
        + "<body>\n"
        + "  <table><col width='7'/><col width='1'/><tbody><tr><td>seven</td><td>One</td></tr></tbody></table>\n"
        + "</body></html>";

    final WebClient webClient = getWebClient();
    final WebResponse webResponse = new StringWebResponse(html, URL_FIRST);

    final XHtmlPage page = webClient.getPageCreator().getHtmlParser()
                                .parseXHtml(webResponse, webClient.getCurrentWindow());

    final DomElement col = page.getElementsByTagName("col").get(0);
    assertEquals(col.getParentNode().getNodeName(), HtmlTableColumnGroup.TAG_NAME);
}
 
@Test
public void buildResponseHeaders() throws Exception {
	this.response.addHeader("Content-Type", "text/html");
	this.response.addHeader("X-Test", "value");
	Cookie cookie = new Cookie("cookieA", "valueA");
	cookie.setDomain("domain");
	cookie.setPath("/path");
	cookie.setMaxAge(1800);
	cookie.setSecure(true);
	cookie.setHttpOnly(true);
	this.response.addCookie(cookie);
	WebResponse webResponse = this.responseBuilder.build();

	List<NameValuePair> responseHeaders = webResponse.getResponseHeaders();
	assertThat(responseHeaders.size(), equalTo(3));
	NameValuePair header = responseHeaders.get(0);
	assertThat(header.getName(), equalTo("Content-Type"));
	assertThat(header.getValue(), equalTo("text/html"));
	header = responseHeaders.get(1);
	assertThat(header.getName(), equalTo("X-Test"));
	assertThat(header.getValue(), equalTo("value"));
	header = responseHeaders.get(2);
	assertThat(header.getName(), equalTo("Set-Cookie"));
	assertThat(header.getValue(), startsWith("cookieA=valueA; Path=/path; Domain=domain; Max-Age=1800; Expires="));
	assertThat(header.getValue(), endsWith("; Secure; HttpOnly"));
}
 
@Test
public void testGetFromLastManagedRepositoryReturnOk()
    throws Exception
{
    String resourceName = "dummy/dummy-last-resource/1.0/dummy-last-resource-1.0.txt";

    Path dummyReleasesResourceFile = repoRootLast.resolve( resourceName );
    Files.createDirectories(dummyReleasesResourceFile.getParent());
    org.apache.archiva.common.utils.FileUtils.writeStringToFile(dummyReleasesResourceFile, Charset.defaultCharset(), "last");

    WebRequest request = new GetMethodWebRequest(
        "http://machine.com/repository/" + REPO_GROUP_WITH_VALID_REPOS + "/" + resourceName );
    WebResponse response = getServletUnitClient().getResponse( request );

    assertResponseOK( response );

    assertThat( response.getContentAsString() ).isEqualTo( "last" );
}
 
源代码5 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxySnapshotArtifactDefaultLayout()
    throws Exception
{
    String commonsLangJar = "commons-lang/commons-lang/2.1-SNAPSHOT/commons-lang-2.1-SNAPSHOT.jar";
    String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";

    Path artifactFile = repoRootInternal.resolve(commonsLangJar);
    Files.createDirectories(artifactFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile( artifactFile, Charset.defaultCharset() , expectedArtifactContents);

    //WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangJar );
    WebResponse response = getWebResponse( "/repository/internal/" + commonsLangJar );
    assertResponseOK( response );

    assertEquals( "Expected file contents", expectedArtifactContents, response.getContentAsString() );
}
 
源代码6 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxySnapshotArtifactLegacyLayoutManagedLegacy()
    throws Exception
{
    String commonsLangJar = "commons-lang/jars/commons-lang-2.1-SNAPSHOT.jar";
    String expectedArtifactContents = "dummy-commons-lang-snapshot-artifact";

    Path artifactFile = repoRootLegacy.resolve(commonsLangJar);
    Files.createDirectories(artifactFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile(artifactFile, Charset.defaultCharset(), expectedArtifactContents);

    WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/legacy/" + commonsLangJar );
    WebResponse response = getServletUnitClient().getResponse( request );
    assertResponseNotFound( response );
}
 
源代码7 项目: htmlunit   文件: XMLHttpRequest.java
private boolean isPreflightAuthorized(final WebResponse preflightResponse) {
    final String originHeader = preflightResponse.getResponseHeaderValue(HttpHeader.ACCESS_CONTROL_ALLOW_ORIGIN);
    if (!ALLOW_ORIGIN_ALL.equals(originHeader)
            && !webRequest_.getAdditionalHeaders().get(HttpHeader.ORIGIN).equals(originHeader)) {
        return false;
    }
    String headersHeader = preflightResponse.getResponseHeaderValue(HttpHeader.ACCESS_CONTROL_ALLOW_HEADERS);
    if (headersHeader == null) {
        headersHeader = "";
    }
    else {
        headersHeader = headersHeader.toLowerCase(Locale.ROOT);
    }
    for (final Entry<String, String> header : webRequest_.getAdditionalHeaders().entrySet()) {
        final String key = header.getKey().toLowerCase(Locale.ROOT);
        if (isPreflightHeader(key, header.getValue())
                && !headersHeader.contains(key)) {
            return false;
        }
    }
    return true;
}
 
源代码8 项目: htmlunit   文件: XMLDocument.java
/**
 * Loads an XML document from the specified location.
 *
 * @param xmlSource a string containing a URL that specifies the location of the XML file
 * @return true if the load succeeded; false if the load failed
 */
@JsxFunction({FF68, FF60})
public boolean load(final String xmlSource) {
    if (async_) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("XMLDocument.load(): 'async' is true, currently treated as false.");
        }
    }
    try {
        final WebWindow ww = getWindow().getWebWindow();
        final HtmlPage htmlPage = (HtmlPage) ww.getEnclosedPage();
        final WebRequest request = new WebRequest(htmlPage.getFullyQualifiedUrl(xmlSource));
        final WebResponse webResponse = ww.getWebClient().loadWebResponse(request);
        final XmlPage page = new XmlPage(webResponse, ww, false);
        setDomNode(page);
        return true;
    }
    catch (final IOException e) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("Error parsing XML from '" + xmlSource + "'", e);
        }
        return false;
    }
}
 
源代码9 项目: htmlunit   文件: HtmlEmbed.java
/**
 * Saves this content as the specified file.
 * @param file the file to save to
 * @throws IOException if an IO error occurs
 */
public void saveAs(final File file) throws IOException {
    final HtmlPage page = (HtmlPage) getPage();
    final WebClient webclient = page.getWebClient();

    final URL url = page.getFullyQualifiedUrl(getAttributeDirect(SRC_ATTRIBUTE));
    final WebRequest request = new WebRequest(url);
    request.setCharset(page.getCharset());
    request.setAdditionalHeader(HttpHeader.REFERER, page.getUrl().toExternalForm());
    final WebResponse webResponse = webclient.loadWebResponse(request);

    try (OutputStream fos = Files.newOutputStream(file.toPath());
            InputStream content =  webResponse.getContentAsStream()) {
        IOUtils.copy(content, fos);
    }
}
 
源代码10 项目: htmlunit   文件: Attachment.java
/**
 * Returns the attachment's filename, as suggested by the <tt>Content-Disposition</tt>
 * header, or {@code null} if no filename was suggested.
 * @return the attachment's suggested filename, or {@code null} if none was suggested
 */
public String getSuggestedFilename() {
    final WebResponse response = page_.getWebResponse();
    final String disp = response.getResponseHeaderValue(HttpHeader.CONTENT_DISPOSITION);
    int start = disp.indexOf("filename=");
    if (start == -1) {
        return null;
    }
    start += "filename=".length();
    if (start >= disp.length()) {
        return null;
    }

    int end = disp.indexOf(';', start);
    if (end == -1) {
        end = disp.length();
    }
    if (disp.charAt(start) == '"' && disp.charAt(end - 1) == '"') {
        start++;
        end--;
    }
    return disp.substring(start, end);
}
 
源代码11 项目: cxf-fediz   文件: IdpTest.java
@org.junit.Test
public void testSwagger() throws Exception {
    String url = "https://localhost:" + getIdpHttpsPort() + "/fediz-idp/services/rs/swagger.json";

    String user = "alice";
    String password = "ecila";

    final WebClient webClient = new WebClient();
    webClient.getOptions().setUseInsecureSSL(true);
    webClient.getCredentialsProvider().setCredentials(
        new AuthScope("localhost", Integer.parseInt(getIdpHttpsPort())),
        new UsernamePasswordCredentials(user, password));

    final UnexpectedPage swaggerPage = webClient.getPage(url);
    WebResponse response = swaggerPage.getWebResponse();
    Assert.assertEquals("application/json", response.getContentType());
    String json = response.getContentAsString();
    Assert.assertTrue(json.contains("Claims"));

    webClient.close();
}
 
源代码12 项目: htmlunit   文件: HtmlLink.java
/**
 * <span style="color:red">INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.</span><br>
 *
 * If the linked content is not already downloaded it triggers a download. Then it stores the response
 * for later use.<br>
 *
 * @param downloadIfNeeded indicates if a request should be performed this hasn't been done previously
 * @param request the request; if null getWebRequest() is called to create one
 * @return {@code null} if no download should be performed and when this wasn't already done; the response
 * received when performing a request for the content referenced by this tag otherwise
 * @throws IOException if an error occurs while downloading the content
 */
public WebResponse getWebResponse(final boolean downloadIfNeeded, WebRequest request) throws IOException {
    if (downloadIfNeeded && cachedWebResponse_ == null) {
        final WebClient webclient = getPage().getWebClient();
        if (null == request) {
            request = getWebRequest();
        }
        try {
            cachedWebResponse_ = webclient.loadWebResponse(request);
            final int statusCode = cachedWebResponse_.getStatusCode();
            final boolean successful = statusCode >= HttpStatus.SC_OK
                                            && statusCode < HttpStatus.SC_MULTIPLE_CHOICES;
            if (successful) {
                executeEvent(Event.TYPE_LOAD);
            }
            else {
                executeEvent(Event.TYPE_ERROR);
            }
        }
        catch (final IOException e) {
            executeEvent(Event.TYPE_ERROR);
            throw e;
        }
    }
    return cachedWebResponse_;
}
 
源代码13 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxyProjectMetadataDefaultLayout()
    throws Exception
{
    String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml";
    String expectedMetadataContents = "dummy-project-metadata";

    Path metadataFile = repoRootInternal.resolve(commonsLangMetadata);
    Files.createDirectories(metadataFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile( metadataFile, Charset.defaultCharset(), expectedMetadataContents );

    //WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" + commonsLangMetadata );
    WebResponse response = getWebResponse( "/repository/internal/" + commonsLangMetadata );
    assertResponseOK( response );

    assertEquals( "Expected file contents", expectedMetadataContents, response.getContentAsString() );
}
 
源代码14 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxyDistributionLegacyLayoutManagedLegacy()
    throws Exception
{
    String expectedContents = "the-contents-of-the-dual-extension";
    String dualExtensionPath = "org.project/distributions/example-presentation-3.2.zip";

    Path checksumFile = repoRootLegacy.resolve(dualExtensionPath);
    Files.createDirectories(checksumFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile(checksumFile, Charset.defaultCharset(), expectedContents);

    WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/legacy/" + dualExtensionPath );
    WebResponse response = getServletUnitClient().getResponse( request );
    assertResponseNotFound( response );
}
 
源代码15 项目: archiva   文件: RepositoryServletNoProxyTest.java
@Test
public void testGetNoProxyProjectMetadataDefaultLayoutManagedLegacy()
    throws Exception
{
    // TODO: find out what it is meant to be from maven-artifact
    String commonsLangMetadata = "commons-lang/commons-lang/maven-metadata.xml";
    String expectedMetadataContents = "dummy-project-metadata";

    Path metadataFile = repoRootLegacy.resolve(commonsLangMetadata);
    Files.createDirectories(metadataFile.getParent());

    org.apache.archiva.common.utils.FileUtils.writeStringToFile(metadataFile, Charset.defaultCharset(), expectedMetadataContents);

    WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/legacy/" + commonsLangMetadata );
    WebResponse response = getServletUnitClient().getResponse( request );
    assertResponseNotFound( response );
}
 
源代码16 项目: archiva   文件: RepositoryServletBrowseTest.java
@Test
public void testBrowse()
    throws Exception
{
    WebRequest request = new GetMethodWebRequest( "http://machine.com/repository/internal/" );
    WebResponse response = getServletUnitClient().getResponse( request );
    assertEquals( "Response", HttpServletResponse.SC_OK, response.getStatusCode() );

    // dumpResponse( response );

    List<String> expectedLinks = Arrays.asList( ".indexer/", "commons-lang/", "net/", "org/" );

    Document document = Jsoup.parse( response.getContentAsString() );
    Elements elements = document.getElementsByTag( "a" );

    assertLinks( expectedLinks, elements );
}
 
源代码17 项目: HtmlUnit-Android   文件: DownloadBehaviorJob.java
/**
 * Performs the download and calls the callback method.
 */
@Override
public void run() {
    final Scriptable scope = callback_.getParentScope();
    final WebRequest request = new WebRequest(url_);
    try {
        final WebResponse webResponse = client_.loadWebResponse(request);
        final String content = webResponse.getContentAsString();
        if (LOG.isDebugEnabled()) {
            LOG.debug("Downloaded content: " + StringUtils.abbreviate(content, 512));
        }
        final Object[] args = new Object[] {content};
        final ContextAction action = new ContextAction() {
            @Override
            public Object run(final Context cx) {
                callback_.call(cx, scope, scope, args);
                return null;
            }
        };
        final ContextFactory cf = ((JavaScriptEngine) client_.getJavaScriptEngine()).getContextFactory();
        cf.call(action);
    }
    catch (final IOException e) {
        LOG.error("Behavior #default#download: Cannot download " + url_, e);
    }
}
 
源代码18 项目: htmlunit   文件: HtmlUnitNekoDOMBuilder.java
/**
 * Parses and then inserts the specified HTML content into the HTML content currently being parsed.
 * @param html the HTML content to push
 */
@Override
public void pushInputString(final String html) {
    page_.registerParsingStart();
    page_.registerInlineSnippetParsingStart();
    try {
        final WebResponse webResponse = page_.getWebResponse();
        final Charset charset = webResponse.getContentCharset();
        final String url = webResponse.getWebRequest().getUrl().toString();
        final XMLInputSource in = new XMLInputSource(null, url, null, new StringReader(html), charset.name());
        ((HTMLConfiguration) fConfiguration).evaluateInputSource(in);
    }
    finally {
        page_.registerParsingEnd();
        page_.registerInlineSnippetParsingEnd();
    }
}
 
源代码19 项目: krazo   文件: ExceptionMapperIT.java
@Test
public void testControllerHappyPath() throws IOException {

    Page page = webClient.getPage(baseURL.toString() + "mvc/mappers/success");
    WebResponse webResponse = page.getWebResponse();

    assertThat(webResponse.getStatusCode(), equalTo(200));
    assertThat(webResponse.getContentType(), startsWith("text/html"));
    assertThat(webResponse.getContentAsString(),
        containsString("<h1>Controller was executed without errors!</h1>"));

}
 
@Override
public WebResponse getResponse(WebRequest request) throws IOException {
	for (DelegateWebConnection connection : this.connections) {
		if (connection.getMatcher().matches(request)) {
			return connection.getDelegate().getResponse(request);
		}
	}
	return this.defaultConnection.getResponse(request);
}
 
源代码21 项目: ozark   文件: ProducesIT.java
@Test
public void otherProduces1() throws Exception {
    final WebResponse wr = webClient.loadWebResponse(
            new WebRequest(new URL(webUrl + "resources/other_produces1"), ACCEPT_HEADER));
    assertEquals(Response.Status.OK.getStatusCode(), wr.getStatusCode());
    assertEquals(MediaType.APPLICATION_XHTML_XML, wr.getContentType());
}
 
源代码22 项目: krazo   文件: ProducesIT.java
@Test
public void language2() throws Exception {
    final WebRequest wrq = new WebRequest(new URL(webUrl + "resources/language2"), ACCEPT_HEADER);
    wrq.setAdditionalHeader("Accept-Language", ACCEPT_LANGUAGE);
    final WebResponse wr = webClient.loadWebResponse(wrq);
    assertEquals(Response.Status.OK.getStatusCode(), wr.getStatusCode());
    assertEquals(MediaType.APPLICATION_XHTML_XML, wr.getContentType());
    assertEquals("es", wr.getResponseHeaderValue("Content-Language"));
}
 
@Before
public void setup() throws Exception {
	request = new WebRequest(new URL("http://localhost/"));
	WebResponseData data = new WebResponseData("".getBytes("UTF-8"), 200, "", Collections.emptyList());
	expectedResponse = new WebResponse(data, request, 100L);
	webConnection = new DelegatingWebConnection(defaultConnection,
			new DelegateWebConnection(matcher1, connection1), new DelegateWebConnection(matcher2, connection2));
}
 
@Test
public void getResponseDefault() throws Exception {
	given(defaultConnection.getResponse(request)).willReturn(expectedResponse);
	WebResponse response = webConnection.getResponse(request);

	assertThat(response, sameInstance(expectedResponse));
	verify(matcher1).matches(request);
	verify(matcher2).matches(request);
	verifyNoMoreInteractions(connection1, connection2);
	verify(defaultConnection).getResponse(request);
}
 
源代码25 项目: HtmlUnit-Android   文件: WebResponseWrapper.java
/**
 * Constructs a WebResponse object wrapping provided WebResponse.
 * @param webResponse the webResponse that does the real work
 * @throws IllegalArgumentException if the webResponse is {@code null}
 */
public WebResponseWrapper(final WebResponse webResponse) throws IllegalArgumentException {
    super(null, null, 0);
    if (webResponse == null) {
        throw new IllegalArgumentException("Wrapped WebResponse can't be null");
    }
    wrappedWebResponse_ = webResponse;
}
 
@Test
public void getResponseSecondMatches() throws Exception {
	given(matcher2.matches(request)).willReturn(true);
	given(connection2.getResponse(request)).willReturn(expectedResponse);
	WebResponse response = webConnection.getResponse(request);

	assertThat(response, sameInstance(expectedResponse));
	verify(matcher1).matches(request);
	verify(matcher2).matches(request);
	verifyNoMoreInteractions(connection1, defaultConnection);
	verify(connection2).getResponse(request);
}
 
@Test
public void buildContentCharset() throws Exception {
	this.response.addHeader("Content-Type", "text/html; charset=UTF-8");
	WebResponse webResponse = this.responseBuilder.build();

	assertThat(webResponse.getContentCharset(), equalTo("UTF-8"));
}
 
@Test
public void buildStatus() throws Exception {
	WebResponse webResponse = this.responseBuilder.build();

	assertThat(webResponse.getStatusCode(), equalTo(200));
	assertThat(webResponse.getStatusMessage(), equalTo("OK"));
}
 
源代码29 项目: archiva   文件: RepositoryServletDeployTest.java
/**
 * MRM-747
 * test whether trying to overwrite existing relase-artifact is blocked by returning HTTP-code 409 
 * 
 * @throws Exception
 */
@Test
public void testReleaseArtifactsRedeploymentValidPath()
    throws Exception
{
    setupCleanRepo( repoRootInternal );

    String putUrl = "http://machine.com/repository/internal" + ARTIFACT_DEFAULT_LAYOUT;
    String metadataUrl = "http://machine.com/repository/internal/path/to/artifact/maven-metadata.xml";
    String checksumUrl = "http://machine.com/repository/internal" + ARTIFACT_DEFAULT_LAYOUT + ".sha1";
    
    InputStream is = getClass().getResourceAsStream( "/artifact.jar" );
    // verify that the file exists in resources-dir
    assertNotNull( "artifact.jar inputstream", is );

    // send request #1 and verify it's successful
    WebRequest request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" );
    WebResponse response = getServletUnitClient().getResponse( request );
    assertResponseCreated( response );
    
    is = getClass().getResourceAsStream( "/artifact.jar.sha1" );
    request = new PutMethodWebRequest( checksumUrl, is, "application/octet-stream" );
    response = getServletUnitClient().getResponse( request );
    assertResponseCreated( response );
    
    is = getClass().getResourceAsStream( "/maven-metadata.xml" );
    request = new PutMethodWebRequest( metadataUrl, is, "application/octet-stream" );
    response = getServletUnitClient().getResponse( request );
    assertResponseCreated( response );
    
    // send request #2 and verify it's blocked
    is = getClass().getResourceAsStream( "/artifact.jar" );
    request = new PutMethodWebRequest( putUrl, is, "application/octet-stream" );
    response = getServletUnitClient().getResponse( request );
    assertResponseConflictError( response );        
}
 
源代码30 项目: jenkins-test-harness   文件: HudsonPageCreator.java
@Override
public Page createPage(WebResponse webResponse, WebWindow webWindow) throws IOException {
    String contentType = webResponse.getContentType().toLowerCase(Locale.ENGLISH);
    if (contentType.equals("application/x-java-jnlp-file")) {
        return createXmlPage(webResponse, webWindow);
    }
    // Need to sidestep HtmlUnit default behaviour here. It defaults the response type to
    // being text/plain (and so creates a TextPage) if the content type in the response is
    // blank + is an empty response.
    if (contentType.isEmpty()) {
        return createHtmlPage(webResponse, webWindow);
    }

    return super.createPage(webResponse, webWindow);
}