use of org.eclipse.jetty.websocket.common.extensions.identity.IdentityExtension in project jetty.project by eclipse.
the class IdentityExtensionTest method testOutgoingFrames.
/**
* Verify that outgoing frames are unmodified
* @throws IOException on test failure
*/
@Test
public void testOutgoingFrames() throws IOException {
OutgoingFramesCapture capture = new OutgoingFramesCapture();
Extension ext = new IdentityExtension();
ext.setNextOutgoingFrames(capture);
Frame frame = new TextFrame().setPayload("hello");
ext.outgoingFrame(frame, null, BatchMode.OFF);
capture.assertFrameCount(1);
capture.assertHasFrame(OpCode.TEXT, 1);
WebSocketFrame actual = capture.getFrames().getFirst();
Assert.assertThat("Frame.opcode", actual.getOpCode(), is(OpCode.TEXT));
Assert.assertThat("Frame.fin", actual.isFin(), is(true));
Assert.assertThat("Frame.rsv1", actual.isRsv1(), is(false));
Assert.assertThat("Frame.rsv2", actual.isRsv2(), is(false));
Assert.assertThat("Frame.rsv3", actual.isRsv3(), is(false));
ByteBuffer expected = BufferUtil.toBuffer("hello", StandardCharsets.UTF_8);
Assert.assertThat("Frame.payloadLength", actual.getPayloadLength(), is(expected.remaining()));
ByteBufferAssert.assertEquals("Frame.payload", expected, actual.getPayload().slice());
}
use of org.eclipse.jetty.websocket.common.extensions.identity.IdentityExtension in project jetty.project by eclipse.
the class IdentityExtensionTest method testIncomingFrames.
/**
* Verify that incoming frames are unmodified
*/
@Test
public void testIncomingFrames() {
IncomingFramesCapture capture = new IncomingFramesCapture();
Extension ext = new IdentityExtension();
ext.setNextIncomingFrames(capture);
Frame frame = new TextFrame().setPayload("hello");
ext.incomingFrame(frame);
capture.assertFrameCount(1);
capture.assertHasFrame(OpCode.TEXT, 1);
WebSocketFrame actual = capture.getFrames().poll();
Assert.assertThat("Frame.opcode", actual.getOpCode(), is(OpCode.TEXT));
Assert.assertThat("Frame.fin", actual.isFin(), is(true));
Assert.assertThat("Frame.rsv1", actual.isRsv1(), is(false));
Assert.assertThat("Frame.rsv2", actual.isRsv2(), is(false));
Assert.assertThat("Frame.rsv3", actual.isRsv3(), is(false));
ByteBuffer expected = BufferUtil.toBuffer("hello", StandardCharsets.UTF_8);
Assert.assertThat("Frame.payloadLength", actual.getPayloadLength(), is(expected.remaining()));
ByteBufferAssert.assertEquals("Frame.payload", expected, actual.getPayload().slice());
}
use of org.eclipse.jetty.websocket.common.extensions.identity.IdentityExtension in project jetty.project by eclipse.
the class ExtensionStackTest method testStartIdentityTwice.
@Test
public void testStartIdentityTwice() throws Exception {
ExtensionStack stack = createExtensionStack();
try {
// 1 extension
List<ExtensionConfig> configs = new ArrayList<>();
configs.add(ExtensionConfig.parse("identity; id=A"));
configs.add(ExtensionConfig.parse("identity; id=B"));
stack.negotiate(configs);
// Setup Listeners
DummyIncomingFrames session = new DummyIncomingFrames("Session");
DummyOutgoingFrames connection = new DummyOutgoingFrames("Connection");
stack.setNextOutgoing(connection);
stack.setNextIncoming(session);
// Start
stack.start();
// Dump
LOG.debug("{}", stack.dump());
// Should be no change to handlers
IdentityExtension actualIncomingExtension = assertIsExtension("Incoming", stack.getNextIncoming(), IdentityExtension.class);
IdentityExtension actualOutgoingExtension = assertIsExtension("Outgoing", stack.getNextOutgoing(), IdentityExtension.class);
Assert.assertThat("Incoming[identity].id", actualIncomingExtension.getParam("id"), is("A"));
Assert.assertThat("Outgoing[identity].id", actualOutgoingExtension.getParam("id"), is("B"));
} finally {
stack.stop();
}
}
Aggregations