| package org.apache.mina.http2.api; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.nio.ByteBuffer; |
| |
| import org.apache.mina.http2.api.Http2FrameHeadePartialDecoder.Http2FrameHeader; |
| import org.junit.Test; |
| |
| public class Http2FrameHeaderPartialDecoderTest { |
| |
| @Test |
| public void checkStandardValue() { |
| Http2FrameHeadePartialDecoder decoder = new Http2FrameHeadePartialDecoder(); |
| ByteBuffer buffer = ByteBuffer.wrap(new byte[] {0x00, 0x00, 0x00, /*length*/ |
| 0x00, /*type*/ |
| 0x00, /*flags*/ |
| 0x00, 0x00, 0x00, 0x01 /*streamID*/}); |
| assertTrue(decoder.consume(buffer)); |
| Http2FrameHeader header = decoder.getValue(); |
| assertNotNull(header); |
| assertEquals(0, header.getLength()); |
| assertEquals(0, header.getType()); |
| assertEquals(0, header.getFlags()); |
| assertEquals(1, header.getStreamID()); |
| } |
| |
| @Test |
| public void checkReservedBitIsNotTransmitted() { |
| Http2FrameHeadePartialDecoder decoder = new Http2FrameHeadePartialDecoder(); |
| ByteBuffer buffer = ByteBuffer.wrap(new byte[] {0x00, 0x00, 0x00, /*length*/ |
| 0x00, /*type*/ |
| 0x00, /*flags*/ |
| (byte)0x80, 0x00, 0x00, 0x01 /*streamID*/}); |
| assertTrue(decoder.consume(buffer)); |
| Http2FrameHeader header = decoder.getValue(); |
| assertNotNull(header); |
| assertEquals(0, header.getLength()); |
| assertEquals(0, header.getType()); |
| assertEquals(0, header.getFlags()); |
| assertEquals(1, header.getStreamID()); |
| } |
| |
| @Test |
| public void checkPayLoadIsTransmitted() { |
| Http2FrameHeadePartialDecoder decoder = new Http2FrameHeadePartialDecoder(); |
| ByteBuffer buffer = ByteBuffer.wrap(new byte[] {0x00, 0x00, 0x01, /*length*/ |
| 0x00, /*type*/ |
| 0x00, /*flags*/ |
| (byte)0x80, 0x00, 0x00, 0x01, /*streamID*/ |
| 0x40}); |
| assertTrue(decoder.consume(buffer)); |
| Http2FrameHeader header = decoder.getValue(); |
| assertNotNull(header); |
| assertEquals(1, header.getLength()); |
| assertEquals(0, header.getType()); |
| assertEquals(0, header.getFlags()); |
| assertEquals(1, header.getStreamID()); |
| assertEquals(1, header.getPayload().length); |
| assertEquals(0x40, header.getPayload()[0] ); |
| } |
| |
| } |