Search in sources :

Example 41 with Dns

use of okhttp3.Dns in project okhttp-digest by rburgst.

the class DigestAuthenticatorTest method beforeMethod.

@Before
public void beforeMethod() {
    Connection mockConnection = mock(Connection.class);
    Dns mockDns = mock(Dns.class);
    SocketFactory socketFactory = mock(SocketFactory.class);
    Authenticator proxyAuthenticator = mock(Authenticator.class);
    ProxySelector proxySelector = mock(ProxySelector.class);
    Proxy proxy = mock(Proxy.class);
    // setup some dummy data so that we dont get NPEs
    Address address = new Address("localhost", 8080, mockDns, socketFactory, null, null, null, proxyAuthenticator, null, Collections.singletonList(Protocol.HTTP_1_1), Collections.singletonList(ConnectionSpec.MODERN_TLS), proxySelector);
    InetSocketAddress inetSocketAddress = new InetSocketAddress("localhost", 8080);
    mockRoute = new Route(address, proxy, inetSocketAddress);
    given(mockConnection.route()).willReturn(mockRoute);
    authenticator = new DigestAuthenticator(new Credentials("user1", "user1"));
}
Also used : ProxySelector(java.net.ProxySelector) Proxy(java.net.Proxy) Address(okhttp3.Address) InetSocketAddress(java.net.InetSocketAddress) SocketFactory(javax.net.SocketFactory) InetSocketAddress(java.net.InetSocketAddress) Connection(okhttp3.Connection) Dns(okhttp3.Dns) Authenticator(okhttp3.Authenticator) Route(okhttp3.Route) Before(org.junit.Before)

Example 42 with Dns

use of okhttp3.Dns in project okhttp by square.

the class EventListenerTest method multipleSecureConnectsForSingleCall.

@Test
public void multipleSecureConnectsForSingleCall() throws IOException {
    enableTlsWithTunnel(false);
    server.enqueue(new MockResponse().setSocketPolicy(SocketPolicy.FAIL_HANDSHAKE));
    server.enqueue(new MockResponse());
    client = client.newBuilder().dns(new DoubleInetAddressDns()).build();
    Call call = client.newCall(new Request.Builder().url(server.url("/")).build());
    Response response = call.execute();
    assertThat(response.code()).isEqualTo(200);
    response.body().close();
    listener.removeUpToEvent(SecureConnectStart.class);
    listener.removeUpToEvent(ConnectFailed.class);
    listener.removeUpToEvent(SecureConnectStart.class);
    listener.removeUpToEvent(SecureConnectEnd.class);
}
Also used : MockResponse(mockwebserver3.MockResponse) MockResponse(mockwebserver3.MockResponse) DoubleInetAddressDns(okhttp3.internal.DoubleInetAddressDns) Test(org.junit.jupiter.api.Test)

Example 43 with Dns

use of okhttp3.Dns in project okhttp by square.

the class EventListenerTest method multipleConnectsForSingleCall.

@Test
public void multipleConnectsForSingleCall() throws IOException {
    enableTlsWithTunnel(false);
    server.enqueue(new MockResponse().setSocketPolicy(SocketPolicy.FAIL_HANDSHAKE));
    server.enqueue(new MockResponse());
    client = client.newBuilder().dns(new DoubleInetAddressDns()).build();
    Call call = client.newCall(new Request.Builder().url(server.url("/")).build());
    Response response = call.execute();
    assertThat(response.code()).isEqualTo(200);
    response.body().close();
    listener.removeUpToEvent(ConnectStart.class);
    listener.removeUpToEvent(ConnectFailed.class);
    listener.removeUpToEvent(ConnectStart.class);
    listener.removeUpToEvent(ConnectEnd.class);
}
Also used : MockResponse(mockwebserver3.MockResponse) MockResponse(mockwebserver3.MockResponse) DoubleInetAddressDns(okhttp3.internal.DoubleInetAddressDns) Test(org.junit.jupiter.api.Test)

Example 44 with Dns

use of okhttp3.Dns in project okhttp by square.

the class HttpLoggingInterceptorTest method connectFail.

@Test
public void connectFail() throws IOException {
    setLevel(Level.BASIC);
    client = new OkHttpClient.Builder().dns(hostname -> {
        throw new UnknownHostException("reason");
    }).addInterceptor(applicationInterceptor).build();
    try {
        client.newCall(request().build()).execute();
        fail();
    } catch (UnknownHostException expected) {
    }
    applicationLogs.assertLogEqual("--> GET " + url).assertLogEqual("<-- HTTP FAILED: java.net.UnknownHostException: reason").assertNoMoreLogs();
}
Also used : Assertions.fail(org.junit.jupiter.api.Assertions.fail) BeforeEach(org.junit.jupiter.api.BeforeEach) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Level(okhttp3.logging.HttpLoggingInterceptor.Level) MockWebServerExtension(mockwebserver3.junit5.internal.MockWebServerExtension) HandshakeCertificates(okhttp3.tls.HandshakeCertificates) ArrayList(java.util.ArrayList) MockWebServer(mockwebserver3.MockWebServer) RequestBody(okhttp3.RequestBody) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) BufferedSink(okio.BufferedSink) RegisterExtension(org.junit.jupiter.api.extension.RegisterExtension) ByteString(okio.ByteString) Assumptions.assumeTrue(org.junit.jupiter.api.Assumptions.assumeTrue) Response(okhttp3.Response) HostnameVerifier(javax.net.ssl.HostnameVerifier) Nullable(javax.annotation.Nullable) MediaType(okhttp3.MediaType) ResponseBody(okhttp3.ResponseBody) RequestBody.gzip(okhttp3.RequestBody.gzip) Interceptor(okhttp3.Interceptor) Request(okhttp3.Request) Buffer(okio.Buffer) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) Test(org.junit.jupiter.api.Test) List(java.util.List) TlsUtil.localhost(okhttp3.tls.internal.TlsUtil.localhost) OkHttpClient(okhttp3.OkHttpClient) PlatformRule(okhttp3.testing.PlatformRule) RecordingHostnameVerifier(okhttp3.RecordingHostnameVerifier) Protocol(okhttp3.Protocol) Pattern(java.util.regex.Pattern) MockResponse(mockwebserver3.MockResponse) HttpUrl(okhttp3.HttpUrl) UnknownHostException(java.net.UnknownHostException) Test(org.junit.jupiter.api.Test)

Example 45 with Dns

use of okhttp3.Dns in project okhttp by square.

the class DnsOverHttpsTest method usesCacheOnlyIfFresh.

@Test
public void usesCacheOnlyIfFresh() throws Exception {
    Cache cache = new Cache(new File("./target/DnsOverHttpsTest.cache"), 100 * 1024);
    OkHttpClient cachedClient = bootstrapClient.newBuilder().cache(cache).build();
    DnsOverHttps cachedDns = buildLocalhost(cachedClient, false);
    server.enqueue(dnsResponse("0000818000010003000000000567726170680866616365626f6f6b03636f6d0000010001c00c00050001" + "00000a6d000603617069c012c0300005000100000cde000c04737461720463313072c012c04200010" + "0010000003b00049df00112").setHeader("cache-control", "max-age=1"));
    List<InetAddress> result = cachedDns.lookup("google.com");
    assertThat(result).containsExactly(address("157.240.1.18"));
    RecordedRequest recordedRequest = server.takeRequest(0, TimeUnit.SECONDS);
    assertThat(recordedRequest.getMethod()).isEqualTo("GET");
    assertThat(recordedRequest.getPath()).isEqualTo("/lookup?ct&dns=AAABAAABAAAAAAAABmdvb2dsZQNjb20AAAEAAQ");
    Thread.sleep(2000);
    server.enqueue(dnsResponse("0000818000010003000000000567726170680866616365626f6f6b03636f6d0000010001c00c00050001" + "00000a6d000603617069c012c0300005000100000cde000c04737461720463313072c012c04200010" + "0010000003b00049df00112").setHeader("cache-control", "max-age=1"));
    result = cachedDns.lookup("google.com");
    assertThat(result).isEqualTo(singletonList(address("157.240.1.18")));
    recordedRequest = server.takeRequest(0, TimeUnit.SECONDS);
    assertThat(recordedRequest.getMethod()).isEqualTo("GET");
    assertThat(recordedRequest.getPath()).isEqualTo("/lookup?ct&dns=AAABAAABAAAAAAAABmdvb2dsZQNjb20AAAEAAQ");
}
Also used : RecordedRequest(mockwebserver3.RecordedRequest) OkHttpClient(okhttp3.OkHttpClient) File(java.io.File) InetAddress(java.net.InetAddress) Cache(okhttp3.Cache) Test(org.junit.jupiter.api.Test)

Aggregations

Test (org.junit.Test)23 MockResponse (okhttp3.mockwebserver.MockResponse)13 OkHttpClient (okhttp3.OkHttpClient)12 DoubleInetAddressDns (okhttp3.internal.DoubleInetAddressDns)10 Test (org.junit.jupiter.api.Test)9 IOException (java.io.IOException)8 Request (okhttp3.Request)8 SingleInetAddressDns (okhttp3.internal.SingleInetAddressDns)8 InetAddress (java.net.InetAddress)7 RecordedRequest (okhttp3.mockwebserver.RecordedRequest)7 MockResponse (mockwebserver3.MockResponse)6 Response (okhttp3.Response)6 HttpURLConnection (java.net.HttpURLConnection)5 InetSocketAddress (java.net.InetSocketAddress)5 UnknownHostException (java.net.UnknownHostException)5 List (java.util.List)4 X509TrustManager (javax.net.ssl.X509TrustManager)4 Dns (okhttp3.Dns)4 Interceptor (okhttp3.Interceptor)4 HandshakeCertificates (okhttp3.tls.HandshakeCertificates)4