Search in sources :

Example 6 with PriorityFrame

use of com.webpieces.http2.api.dto.lowlevel.PriorityFrame in project webpieces by deanhiller.

the class TestHttp2Priority method testParsePriorityFrameMSB.

@Test
public void testParsePriorityFrameMSB() {
    DataWrapper data = Util.hexToBytes(priorityFrameMSB());
    parser.parse(memento, data);
    PriorityFrame frame = (PriorityFrame) assertGood();
    Assert.assertEquals(1, frame.getStreamId());
    PriorityDetails details = frame.getPriorityDetails();
    Assert.assertTrue(details.isStreamDependencyIsExclusive());
    Assert.assertEquals(255, details.getWeight());
    Assert.assertEquals(4, details.getStreamDependency());
}
Also used : DataWrapper(org.webpieces.data.api.DataWrapper) PriorityDetails(com.webpieces.http2.api.dto.lowlevel.lib.PriorityDetails) PriorityFrame(com.webpieces.http2.api.dto.lowlevel.PriorityFrame) Test(org.junit.Test)

Example 7 with PriorityFrame

use of com.webpieces.http2.api.dto.lowlevel.PriorityFrame in project webpieces by deanhiller.

the class TestHttp2Priority method testMarshalPriorityFrame.

@Test
public void testMarshalPriorityFrame() {
    PriorityFrame frame = new PriorityFrame();
    frame.setStreamId(1);
    PriorityDetails details = frame.getPriorityDetails();
    details.setStreamDependency(4);
    details.setStreamDependencyIsExclusive(true);
    details.setWeight((short) 0x5);
    byte[] data = parser.marshal(frame).createByteArray();
    String hexFrame = Util.toHexString(data);
    Assert.assertEquals(priorityFrame(), hexFrame);
}
Also used : PriorityDetails(com.webpieces.http2.api.dto.lowlevel.lib.PriorityDetails) PriorityFrame(com.webpieces.http2.api.dto.lowlevel.PriorityFrame) Test(org.junit.Test)

Example 8 with PriorityFrame

use of com.webpieces.http2.api.dto.lowlevel.PriorityFrame in project webpieces by deanhiller.

the class TestC5x1StreamStates method testSection5_1ReceivePriorityAfterReceiveRstStreamFrame.

/**
 * An endpoint MUST NOT send frames other than ----PRIORITY---- on a closed stream. An endpoint
 * that receives any frame other than ----PRIORITY---- after receiving a ----RST_STREAM---- MUST
 * treat that as a stream error (Section 5.4.2) of type STREAM_CLOSED. Similarly, an
 * endpoint that receives any frames after receiving a frame with the
 * END_STREAM flag set MUST treat that as a connection error (Section 5.4.1) of
 * type STREAM_CLOSED, unless the frame is permitted as described below.
 */
@Test
public void testSection5_1ReceivePriorityAfterReceiveRstStreamFrame() {
    MockResponseListener listener1 = new MockResponseListener();
    listener1.setIncomingRespDefault(XFuture.<StreamWriter>completedFuture(null));
    Http2Request request = sendRequestToServer(listener1);
    sendResetFromServer(listener1, request);
    PriorityDetails details = new PriorityDetails();
    details.setStreamDependency(3);
    PriorityFrame dataFrame = new PriorityFrame(request.getStreamId(), details);
    mockChannel.write(dataFrame);
    // priority is ignored
    Assert.assertEquals(0, mockChannel.getFramesAndClear().size());
    Assert.assertFalse(mockChannel.isClosed());
    Assert.assertEquals(0, listener1.getReturnValuesIncomingResponse().size());
}
Also used : Http2Request(com.webpieces.http2.api.dto.highlevel.Http2Request) MockResponseListener(org.webpieces.http2client.mock.MockResponseListener) PriorityDetails(com.webpieces.http2.api.dto.lowlevel.lib.PriorityDetails) PriorityFrame(com.webpieces.http2.api.dto.lowlevel.PriorityFrame) Test(org.junit.Test)

Aggregations

PriorityFrame (com.webpieces.http2.api.dto.lowlevel.PriorityFrame)7 PriorityDetails (com.webpieces.http2.api.dto.lowlevel.lib.PriorityDetails)7 Test (org.junit.Test)6 DataWrapper (org.webpieces.data.api.DataWrapper)4 ConnectionException (com.webpieces.http2.api.dto.error.ConnectionException)1 Http2Request (com.webpieces.http2.api.dto.highlevel.Http2Request)1 GoAwayFrame (com.webpieces.http2.api.dto.lowlevel.GoAwayFrame)1 FrameHeaderData (com.webpieces.http2parser.impl.FrameHeaderData)1 ByteBuffer (java.nio.ByteBuffer)1 MockResponseListener (org.webpieces.http2client.mock.MockResponseListener)1