test/jdk/java/net/httpclient/HttpClientBuilderTest.java
changeset 51364 31d9e82b2e64
parent 50681 4254bed3c09d
child 52121 934969c63223
child 56868 67c7659ecda5
equal deleted inserted replaced
51363:a6fa2016cff1 51364:31d9e82b2e64
    48 import java.net.http.HttpClient;
    48 import java.net.http.HttpClient;
    49 import java.net.http.HttpClient.Redirect;
    49 import java.net.http.HttpClient.Redirect;
    50 import java.net.http.HttpClient.Version;
    50 import java.net.http.HttpClient.Version;
    51 import jdk.testlibrary.SimpleSSLContext;
    51 import jdk.testlibrary.SimpleSSLContext;
    52 import org.testng.annotations.Test;
    52 import org.testng.annotations.Test;
       
    53 import static java.time.Duration.*;
    53 import static org.testng.Assert.*;
    54 import static org.testng.Assert.*;
    54 
    55 
    55 /*
    56 /*
    56  * @test
    57  * @test
    57  * @summary HttpClient[.Builder] API and behaviour checks
    58  * @summary HttpClient[.Builder] API and behaviour checks
    72 
    73 
    73         for (HttpClient client : clients) {
    74         for (HttpClient client : clients) {
    74             // Empty optionals and defaults
    75             // Empty optionals and defaults
    75             assertFalse(client.authenticator().isPresent());
    76             assertFalse(client.authenticator().isPresent());
    76             assertFalse(client.cookieHandler().isPresent());
    77             assertFalse(client.cookieHandler().isPresent());
       
    78             assertFalse(client.connectTimeout().isPresent());
    77             assertFalse(client.executor().isPresent());
    79             assertFalse(client.executor().isPresent());
    78             assertFalse(client.proxy().isPresent());
    80             assertFalse(client.proxy().isPresent());
    79             assertTrue(client.sslParameters() != null);
    81             assertTrue(client.sslParameters() != null);
    80             assertTrue(client.followRedirects().equals(HttpClient.Redirect.NEVER));
    82             assertTrue(client.followRedirects().equals(HttpClient.Redirect.NEVER));
    81             assertTrue(client.sslContext() == SSLContext.getDefault());
    83             assertTrue(client.sslContext() == SSLContext.getDefault());
    86     @Test
    88     @Test
    87     public void testNull() throws Exception {
    89     public void testNull() throws Exception {
    88         HttpClient.Builder builder = HttpClient.newBuilder();
    90         HttpClient.Builder builder = HttpClient.newBuilder();
    89         assertThrows(NPE, () -> builder.authenticator(null));
    91         assertThrows(NPE, () -> builder.authenticator(null));
    90         assertThrows(NPE, () -> builder.cookieHandler(null));
    92         assertThrows(NPE, () -> builder.cookieHandler(null));
       
    93         assertThrows(NPE, () -> builder.connectTimeout(null));
    91         assertThrows(NPE, () -> builder.executor(null));
    94         assertThrows(NPE, () -> builder.executor(null));
    92         assertThrows(NPE, () -> builder.proxy(null));
    95         assertThrows(NPE, () -> builder.proxy(null));
    93         assertThrows(NPE, () -> builder.sslParameters(null));
    96         assertThrows(NPE, () -> builder.sslParameters(null));
    94         assertThrows(NPE, () -> builder.followRedirects(null));
    97         assertThrows(NPE, () -> builder.followRedirects(null));
    95         assertThrows(NPE, () -> builder.sslContext(null));
    98         assertThrows(NPE, () -> builder.sslContext(null));
   124         assertTrue(builder.build().cookieHandler().get() == b);
   127         assertTrue(builder.build().cookieHandler().get() == b);
   125         assertThrows(NPE, () -> builder.cookieHandler(null));
   128         assertThrows(NPE, () -> builder.cookieHandler(null));
   126         CookieManager c = new CookieManager();
   129         CookieManager c = new CookieManager();
   127         builder.cookieHandler(c);
   130         builder.cookieHandler(c);
   128         assertTrue(builder.build().cookieHandler().get() == c);
   131         assertTrue(builder.build().cookieHandler().get() == c);
       
   132     }
       
   133 
       
   134     @Test
       
   135     public void testConnectTimeout() {
       
   136         HttpClient.Builder builder = HttpClient.newBuilder();
       
   137         Duration a = Duration.ofSeconds(5);
       
   138         builder.connectTimeout(a);
       
   139         assertTrue(builder.build().connectTimeout().get() == a);
       
   140         Duration b = Duration.ofMinutes(1);
       
   141         builder.connectTimeout(b);
       
   142         assertTrue(builder.build().connectTimeout().get() == b);
       
   143         assertThrows(NPE, () -> builder.cookieHandler(null));
       
   144         Duration c = Duration.ofHours(100);
       
   145         builder.connectTimeout(c);
       
   146         assertTrue(builder.build().connectTimeout().get() == c);
       
   147 
       
   148         assertThrows(IAE, () -> builder.connectTimeout(ZERO));
       
   149         assertThrows(IAE, () -> builder.connectTimeout(ofSeconds(0)));
       
   150         assertThrows(IAE, () -> builder.connectTimeout(ofSeconds(-1)));
       
   151         assertThrows(IAE, () -> builder.connectTimeout(ofNanos(-100)));
   129     }
   152     }
   130 
   153 
   131     static class TestExecutor implements Executor {
   154     static class TestExecutor implements Executor {
   132         public void execute(Runnable r) { }
   155         public void execute(Runnable r) { }
   133     }
   156     }
   290         assertThrows(UOE, () -> (new MockHttpClient()).newWebSocketBuilder());
   313         assertThrows(UOE, () -> (new MockHttpClient()).newWebSocketBuilder());
   291     }
   314     }
   292 
   315 
   293     static class MockHttpClient extends HttpClient {
   316     static class MockHttpClient extends HttpClient {
   294         @Override public Optional<CookieHandler> cookieHandler() { return null; }
   317         @Override public Optional<CookieHandler> cookieHandler() { return null; }
       
   318         @Override public Optional<Duration> connectTimeout() { return null; }
   295         @Override public Redirect followRedirects() { return null; }
   319         @Override public Redirect followRedirects() { return null; }
   296         @Override public Optional<ProxySelector> proxy() { return null; }
   320         @Override public Optional<ProxySelector> proxy() { return null; }
   297         @Override public SSLContext sslContext() { return null; }
   321         @Override public SSLContext sslContext() { return null; }
   298         @Override public SSLParameters sslParameters() { return null; }
   322         @Override public SSLParameters sslParameters() { return null; }
   299         @Override public Optional<Authenticator> authenticator() { return null; }
   323         @Override public Optional<Authenticator> authenticator() { return null; }