Fix failing tests
This commit is contained in:
parent
89444ef4ec
commit
7d36f936c8
@ -17,12 +17,9 @@ package io.netty.handler.codec.http.websocketx;
|
|||||||
|
|
||||||
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
||||||
import static io.netty.handler.codec.http.HttpVersion.*;
|
import static io.netty.handler.codec.http.HttpVersion.*;
|
||||||
import static org.easymock.EasyMock.*;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.ByteBufs;
|
import io.netty.buffer.ByteBufs;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||||
import io.netty.channel.DefaultChannelFuture;
|
|
||||||
import io.netty.channel.DefaultChannelPipeline;
|
|
||||||
import io.netty.handler.codec.http.DefaultHttpRequest;
|
import io.netty.handler.codec.http.DefaultHttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpChunkAggregator;
|
import io.netty.handler.codec.http.HttpChunkAggregator;
|
||||||
import io.netty.handler.codec.http.HttpHeaders.Names;
|
import io.netty.handler.codec.http.HttpHeaders.Names;
|
||||||
@ -30,37 +27,19 @@ import io.netty.handler.codec.http.HttpMethod;
|
|||||||
import io.netty.handler.codec.http.HttpRequest;
|
import io.netty.handler.codec.http.HttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpRequestDecoder;
|
import io.netty.handler.codec.http.HttpRequestDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponse;
|
import io.netty.handler.codec.http.HttpResponse;
|
||||||
|
import io.netty.handler.codec.http.HttpResponseDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponseEncoder;
|
import io.netty.handler.codec.http.HttpResponseEncoder;
|
||||||
|
import io.netty.util.CharsetUtil;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
|
|
||||||
import org.easymock.Capture;
|
|
||||||
import org.easymock.EasyMock;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class WebSocketServerHandshaker00Test {
|
public class WebSocketServerHandshaker00Test {
|
||||||
|
|
||||||
private static DefaultChannelPipeline createPipeline(Channel ch) {
|
|
||||||
DefaultChannelPipeline pipeline = new DefaultChannelPipeline(ch);
|
|
||||||
pipeline.addLast("chunkAggregator", new HttpChunkAggregator(42));
|
|
||||||
pipeline.addLast("wsdecoder", new HttpRequestDecoder());
|
|
||||||
pipeline.addLast("wsencoder", new HttpResponseEncoder());
|
|
||||||
return pipeline;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPerformOpeningHandshake() {
|
public void testPerformOpeningHandshake() {
|
||||||
Channel channelMock = EasyMock.createMock(Channel.class);
|
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||||
|
new HttpChunkAggregator(42), new HttpRequestDecoder(), new HttpResponseEncoder());
|
||||||
DefaultChannelPipeline pipeline = createPipeline(channelMock);
|
|
||||||
EasyMock.expect(channelMock.pipeline()).andReturn(pipeline);
|
|
||||||
|
|
||||||
// capture the http response in order to verify the headers
|
|
||||||
Capture<HttpResponse> res = new Capture<HttpResponse>();
|
|
||||||
EasyMock.expect(channelMock.write(capture(res))).andReturn(new DefaultChannelFuture(channelMock, true));
|
|
||||||
|
|
||||||
replay(channelMock);
|
|
||||||
|
|
||||||
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
||||||
req.setHeader(Names.HOST, "server.example.com");
|
req.setHeader(Names.HOST, "server.example.com");
|
||||||
@ -71,14 +50,20 @@ public class WebSocketServerHandshaker00Test {
|
|||||||
req.setHeader(Names.SEC_WEBSOCKET_KEY2, "12998 5 Y3 1 .P00");
|
req.setHeader(Names.SEC_WEBSOCKET_KEY2, "12998 5 Y3 1 .P00");
|
||||||
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
||||||
|
|
||||||
ByteBuf buffer = ByteBufs.copiedBuffer("^n:ds[4U", Charset.defaultCharset());
|
ByteBuf buffer = ByteBufs.copiedBuffer("^n:ds[4U", CharsetUtil.US_ASCII);
|
||||||
req.setContent(buffer);
|
req.setContent(buffer);
|
||||||
|
|
||||||
WebSocketServerHandshaker00 handsaker = new WebSocketServerHandshaker00("ws://example.com/chat", "chat", Integer.MAX_VALUE);
|
new WebSocketServerHandshaker00(
|
||||||
handsaker.handshake(channelMock, req);
|
"ws://example.com/chat", "chat", Integer.MAX_VALUE).handshake(ch, req);
|
||||||
|
|
||||||
Assert.assertEquals("ws://example.com/chat", res.getValue().getHeader(Names.SEC_WEBSOCKET_LOCATION));
|
ByteBuf resBuf = ch.readOutbound();
|
||||||
Assert.assertEquals("chat", res.getValue().getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
|
||||||
Assert.assertEquals("8jKS'y:G*Co,Wxa-", res.getValue().getContent().toString(Charset.defaultCharset()));
|
EmbeddedByteChannel ch2 = new EmbeddedByteChannel(new HttpResponseDecoder());
|
||||||
|
ch2.writeInbound(resBuf);
|
||||||
|
HttpResponse res = (HttpResponse) ch2.readInbound();
|
||||||
|
|
||||||
|
Assert.assertEquals("ws://example.com/chat", res.getHeader(Names.SEC_WEBSOCKET_LOCATION));
|
||||||
|
Assert.assertEquals("chat", res.getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
||||||
|
Assert.assertEquals("8jKS'y:G*Co,Wxa-", res.getContent().toString(CharsetUtil.US_ASCII));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,8 @@ package io.netty.handler.codec.http.websocketx;
|
|||||||
|
|
||||||
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
||||||
import static io.netty.handler.codec.http.HttpVersion.*;
|
import static io.netty.handler.codec.http.HttpVersion.*;
|
||||||
import static org.easymock.EasyMock.*;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||||
import io.netty.channel.DefaultChannelFuture;
|
|
||||||
import io.netty.channel.DefaultChannelPipeline;
|
|
||||||
import io.netty.handler.codec.http.DefaultHttpRequest;
|
import io.netty.handler.codec.http.DefaultHttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpChunkAggregator;
|
import io.netty.handler.codec.http.HttpChunkAggregator;
|
||||||
import io.netty.handler.codec.http.HttpHeaders.Names;
|
import io.netty.handler.codec.http.HttpHeaders.Names;
|
||||||
@ -28,35 +26,18 @@ import io.netty.handler.codec.http.HttpMethod;
|
|||||||
import io.netty.handler.codec.http.HttpRequest;
|
import io.netty.handler.codec.http.HttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpRequestDecoder;
|
import io.netty.handler.codec.http.HttpRequestDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponse;
|
import io.netty.handler.codec.http.HttpResponse;
|
||||||
|
import io.netty.handler.codec.http.HttpResponseDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponseEncoder;
|
import io.netty.handler.codec.http.HttpResponseEncoder;
|
||||||
|
|
||||||
import org.easymock.Capture;
|
|
||||||
import org.easymock.EasyMock;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class WebSocketServerHandshaker08Test {
|
public class WebSocketServerHandshaker08Test {
|
||||||
|
|
||||||
private static DefaultChannelPipeline createPipeline(Channel ch) {
|
|
||||||
DefaultChannelPipeline pipeline = new DefaultChannelPipeline(ch);
|
|
||||||
pipeline.addLast("chunkAggregator", new HttpChunkAggregator(42));
|
|
||||||
pipeline.addLast("requestDecoder", new HttpRequestDecoder());
|
|
||||||
pipeline.addLast("responseEncoder", new HttpResponseEncoder());
|
|
||||||
return pipeline;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPerformOpeningHandshake() {
|
public void testPerformOpeningHandshake() {
|
||||||
Channel channelMock = EasyMock.createMock(Channel.class);
|
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||||
|
new HttpChunkAggregator(42), new HttpRequestDecoder(), new HttpResponseEncoder());
|
||||||
DefaultChannelPipeline pipeline = createPipeline(channelMock);
|
|
||||||
EasyMock.expect(channelMock.pipeline()).andReturn(pipeline);
|
|
||||||
|
|
||||||
// capture the http response in order to verify the headers
|
|
||||||
Capture<HttpResponse> res = new Capture<HttpResponse>();
|
|
||||||
EasyMock.expect(channelMock.write(capture(res))).andReturn(new DefaultChannelFuture(channelMock, true));
|
|
||||||
|
|
||||||
replay(channelMock);
|
|
||||||
|
|
||||||
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
||||||
req.setHeader(Names.HOST, "server.example.com");
|
req.setHeader(Names.HOST, "server.example.com");
|
||||||
@ -67,10 +48,17 @@ public class WebSocketServerHandshaker08Test {
|
|||||||
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
||||||
req.setHeader(Names.SEC_WEBSOCKET_VERSION, "8");
|
req.setHeader(Names.SEC_WEBSOCKET_VERSION, "8");
|
||||||
|
|
||||||
WebSocketServerHandshaker08 handsaker = new WebSocketServerHandshaker08("ws://example.com/chat", "chat", false, Integer.MAX_VALUE);
|
new WebSocketServerHandshaker08(
|
||||||
handsaker.handshake(channelMock, req);
|
"ws://example.com/chat", "chat", false, Integer.MAX_VALUE).handshake(ch, req);
|
||||||
|
|
||||||
Assert.assertEquals("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", res.getValue().getHeader(Names.SEC_WEBSOCKET_ACCEPT));
|
ByteBuf resBuf = ch.readOutbound();
|
||||||
Assert.assertEquals("chat", res.getValue().getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
|
||||||
|
EmbeddedByteChannel ch2 = new EmbeddedByteChannel(new HttpResponseDecoder());
|
||||||
|
ch2.writeInbound(resBuf);
|
||||||
|
HttpResponse res = (HttpResponse) ch2.readInbound();
|
||||||
|
|
||||||
|
Assert.assertEquals(
|
||||||
|
"s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", res.getHeader(Names.SEC_WEBSOCKET_ACCEPT));
|
||||||
|
Assert.assertEquals("chat", res.getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,8 @@ package io.netty.handler.codec.http.websocketx;
|
|||||||
|
|
||||||
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
import static io.netty.handler.codec.http.HttpHeaders.Values.*;
|
||||||
import static io.netty.handler.codec.http.HttpVersion.*;
|
import static io.netty.handler.codec.http.HttpVersion.*;
|
||||||
import static org.easymock.EasyMock.*;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.embedded.EmbeddedByteChannel;
|
||||||
import io.netty.channel.DefaultChannelFuture;
|
|
||||||
import io.netty.channel.DefaultChannelPipeline;
|
|
||||||
import io.netty.handler.codec.http.DefaultHttpRequest;
|
import io.netty.handler.codec.http.DefaultHttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpChunkAggregator;
|
import io.netty.handler.codec.http.HttpChunkAggregator;
|
||||||
import io.netty.handler.codec.http.HttpHeaders.Names;
|
import io.netty.handler.codec.http.HttpHeaders.Names;
|
||||||
@ -28,35 +26,18 @@ import io.netty.handler.codec.http.HttpMethod;
|
|||||||
import io.netty.handler.codec.http.HttpRequest;
|
import io.netty.handler.codec.http.HttpRequest;
|
||||||
import io.netty.handler.codec.http.HttpRequestDecoder;
|
import io.netty.handler.codec.http.HttpRequestDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponse;
|
import io.netty.handler.codec.http.HttpResponse;
|
||||||
|
import io.netty.handler.codec.http.HttpResponseDecoder;
|
||||||
import io.netty.handler.codec.http.HttpResponseEncoder;
|
import io.netty.handler.codec.http.HttpResponseEncoder;
|
||||||
|
|
||||||
import org.easymock.Capture;
|
|
||||||
import org.easymock.EasyMock;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class WebSocketServerHandshaker13Test {
|
public class WebSocketServerHandshaker13Test {
|
||||||
|
|
||||||
private static DefaultChannelPipeline createPipeline(Channel ch) {
|
|
||||||
DefaultChannelPipeline pipeline = new DefaultChannelPipeline(ch);
|
|
||||||
pipeline.addLast("chunkAggregator", new HttpChunkAggregator(42));
|
|
||||||
pipeline.addLast("requestDecoder", new HttpRequestDecoder());
|
|
||||||
pipeline.addLast("responseEncoder", new HttpResponseEncoder());
|
|
||||||
return pipeline;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPerformOpeningHandshake() {
|
public void testPerformOpeningHandshake() {
|
||||||
Channel channelMock = EasyMock.createMock(Channel.class);
|
EmbeddedByteChannel ch = new EmbeddedByteChannel(
|
||||||
|
new HttpChunkAggregator(42), new HttpRequestDecoder(), new HttpResponseEncoder());
|
||||||
DefaultChannelPipeline pipeline = createPipeline(channelMock);
|
|
||||||
EasyMock.expect(channelMock.pipeline()).andReturn(pipeline);
|
|
||||||
|
|
||||||
// capture the http response in order to verify the headers
|
|
||||||
Capture<HttpResponse> res = new Capture<HttpResponse>();
|
|
||||||
EasyMock.expect(channelMock.write(capture(res))).andReturn(new DefaultChannelFuture(channelMock, true));
|
|
||||||
|
|
||||||
replay(channelMock);
|
|
||||||
|
|
||||||
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
HttpRequest req = new DefaultHttpRequest(HTTP_1_1, HttpMethod.GET, "/chat");
|
||||||
req.setHeader(Names.HOST, "server.example.com");
|
req.setHeader(Names.HOST, "server.example.com");
|
||||||
@ -66,10 +47,18 @@ public class WebSocketServerHandshaker13Test {
|
|||||||
req.setHeader(Names.SEC_WEBSOCKET_ORIGIN, "http://example.com");
|
req.setHeader(Names.SEC_WEBSOCKET_ORIGIN, "http://example.com");
|
||||||
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
req.setHeader(Names.SEC_WEBSOCKET_PROTOCOL, "chat, superchat");
|
||||||
req.setHeader(Names.SEC_WEBSOCKET_VERSION, "13");
|
req.setHeader(Names.SEC_WEBSOCKET_VERSION, "13");
|
||||||
WebSocketServerHandshaker13 handsaker = new WebSocketServerHandshaker13("ws://example.com/chat", "chat", false, Integer.MAX_VALUE);
|
|
||||||
handsaker.handshake(channelMock, req);
|
|
||||||
|
|
||||||
Assert.assertEquals("s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", res.getValue().getHeader(Names.SEC_WEBSOCKET_ACCEPT));
|
new WebSocketServerHandshaker13(
|
||||||
Assert.assertEquals("chat", res.getValue().getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
"ws://example.com/chat", "chat", false, Integer.MAX_VALUE).handshake(ch, req);
|
||||||
|
|
||||||
|
ByteBuf resBuf = ch.readOutbound();
|
||||||
|
|
||||||
|
EmbeddedByteChannel ch2 = new EmbeddedByteChannel(new HttpResponseDecoder());
|
||||||
|
ch2.writeInbound(resBuf);
|
||||||
|
HttpResponse res = (HttpResponse) ch2.readInbound();
|
||||||
|
|
||||||
|
Assert.assertEquals(
|
||||||
|
"s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", res.getHeader(Names.SEC_WEBSOCKET_ACCEPT));
|
||||||
|
Assert.assertEquals("chat", res.getHeader(Names.SEC_WEBSOCKET_PROTOCOL));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user