package org.webpieces.httpparser.api; import java.nio.charset.StandardCharsets; import org.junit.Assert; import org.junit.Test; import org.webpieces.data.api.BufferCreationPool; import org.webpieces.data.api.DataWrapper; import org.webpieces.data.api.DataWrapperGenerator; import org.webpieces.data.api.DataWrapperGeneratorFactory; import org.webpieces.httpparser.api.dto.HttpMessageType; import org.webpieces.httpparser.api.dto.HttpPayload; public class TestReceiveHttp2 { private HttpParser parser = HttpParserFactory.createParser(new BufferCreationPool()); private DataWrapperGenerator dataGen = DataWrapperGeneratorFactory.createDataWrapperGenerator(); @Test public void testReceivePreface() { //All the 1's must be ignored and in leftover data String preface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n1111"; byte[] bytes = preface.getBytes(StandardCharsets.UTF_8); DataWrapper moreData = dataGen.wrapByteArray(bytes); Memento state = parser.prepareToParse(); state = parser.parse(state, moreData); Assert.assertEquals(1, state.getParsedMessages().size()); Assert.assertEquals(4, state.getLeftOverData().getReadableSize()); HttpPayload httpPayload = state.getParsedMessages().get(0); Assert.assertEquals(HttpMessageType.HTTP2_MARKER_MSG, httpPayload.getMessageType()); } }