Add followup ProtocolNegotiators.tls tests

This commit is contained in:
Carl Mastrangelo 2015-10-26 12:19:07 -07:00
parent dd815bc968
commit db56c2463e
1 changed files with 39 additions and 0 deletions

View File

@ -40,11 +40,13 @@ import static org.junit.Assert.assertTrue;
import com.google.common.collect.Iterables;
import io.grpc.netty.ProtocolNegotiators.TlsChannelInboundHandlerAdapter;
import io.grpc.netty.ProtocolNegotiators.TlsNegotiator;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.ChannelPipeline;
import io.netty.channel.embedded.EmbeddedChannel;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslHandler;
import io.netty.handler.ssl.SslHandshakeCompletionEvent;
@ -65,6 +67,7 @@ import java.util.logging.Logger;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLException;
@RunWith(JUnit4.class)
public class ProtocolNegotiatorsTest {
@ -215,4 +218,40 @@ public class ProtocolNegotiatorsTest {
logger.setFilter(oldFilter);
}
}
@Test
public void tls_failsOnNullSslContext() {
thrown.expect(NullPointerException.class);
ProtocolNegotiators.tls(null, "authority");
}
@Test
public void tls_hostAndPort() throws SSLException {
SslContext ctx = GrpcSslContexts.forClient().build();
TlsNegotiator negotiator = (TlsNegotiator) ProtocolNegotiators.tls(ctx, "authority:1234");
assertEquals("authority", negotiator.getHost());
assertEquals(1234, negotiator.getPort());
}
@Test
public void tls_host() throws SSLException {
SslContext ctx = GrpcSslContexts.forClient().build();
TlsNegotiator negotiator = (TlsNegotiator) ProtocolNegotiators.tls(ctx, "[::1]");
assertEquals("[::1]", negotiator.getHost());
assertEquals(-1, negotiator.getPort());
}
@Test
public void tls_invalidHost() throws SSLException {
SslContext ctx = GrpcSslContexts.forClient().build();
TlsNegotiator negotiator = (TlsNegotiator) ProtocolNegotiators.tls(ctx, "bad_host:1234");
// Even though it looks like a port, we treat it as part of the authority, since the host is
// invalid.
assertEquals("bad_host:1234", negotiator.getHost());
assertEquals(-1, negotiator.getPort());
}
}