|
|
|
@ -25,21 +25,18 @@ import org.junit.jupiter.api.Test;
|
|
|
|
|
import java.util.ArrayDeque;
|
|
|
|
|
import java.util.Queue;
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
import org.mockito.ArgumentMatchers;
|
|
|
|
|
import org.mockito.Mockito;
|
|
|
|
|
|
|
|
|
|
import static io.netty.handler.codec.spdy.SpdyCodecUtil.SPDY_HEADER_SIZE;
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
|
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
|
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
|
|
import static org.mockito.Mockito.times;
|
|
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
|
|
|
|
|
|
|
|
|
public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
private static final Random RANDOM = new Random();
|
|
|
|
|
|
|
|
|
|
private final SpdyFrameDecoderDelegate delegate = mock(SpdyFrameDecoderDelegate.class);
|
|
|
|
|
private final SpdyFrameDecoderDelegate delegate = Mockito.mock(SpdyFrameDecoderDelegate.class);
|
|
|
|
|
private final TestSpdyFrameDecoderDelegate testDelegate = new TestSpdyFrameDecoderDelegate();
|
|
|
|
|
private SpdyFrameDecoder decoder;
|
|
|
|
|
|
|
|
|
@ -165,7 +162,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(RANDOM.nextInt());
|
|
|
|
|
}
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readDataFrame(streamId, false, buf.slice(SPDY_HEADER_SIZE, length));
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId, false, buf.slice(SPDY_HEADER_SIZE, length));
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -180,7 +177,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeDataFrameHeader(buf, streamId, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readDataFrame(streamId, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -195,7 +192,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeDataFrameHeader(buf, streamId, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readDataFrame(streamId, true, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId, true, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -210,7 +207,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeDataFrameHeader(buf, streamId, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readDataFrame(streamId, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -225,7 +222,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeDataFrameHeader(buf, streamId, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError((String) any());
|
|
|
|
|
Mockito.verify(delegate).readFrameError((String) ArgumentMatchers.any());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -242,8 +239,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeDataFrameHeader(buf, streamId2, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readDataFrame(streamId1, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
verify(delegate).readDataFrame(streamId2, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId1, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
Mockito.verify(delegate).readDataFrame(streamId2, false, Unpooled.EMPTY_BUFFER);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -265,8 +262,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -288,8 +285,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, true, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, true, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -311,8 +308,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, true);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, true);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -334,8 +331,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -357,8 +354,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -380,8 +377,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0xFF); // should ignore reserved bits
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -400,7 +397,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(associatedToStreamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -422,7 +419,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeByte(0);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -451,9 +448,9 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
decoder.decode(headerBlock);
|
|
|
|
|
verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynStreamFrame(streamId, associatedToStreamId, priority, false, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
assertFalse(headerBlock.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
@ -472,8 +469,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -490,8 +487,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynReplyFrame(streamId, true);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynReplyFrame(streamId, true);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -508,8 +505,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -526,8 +523,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId | 0x80000000); // should ignore reserved bit
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
@ -543,7 +540,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeControlFrameHeader(buf, type, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -560,7 +557,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -584,9 +581,9 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
decoder.decode(headerBlock);
|
|
|
|
|
verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readSynReplyFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
assertFalse(headerBlock.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
@ -607,7 +604,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readRstStreamFrame(streamId, statusCode);
|
|
|
|
|
Mockito.verify(delegate).readRstStreamFrame(streamId, statusCode);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -626,7 +623,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readRstStreamFrame(streamId, statusCode);
|
|
|
|
|
Mockito.verify(delegate).readRstStreamFrame(streamId, statusCode);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -645,7 +642,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -664,7 +661,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -683,7 +680,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -702,7 +699,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -728,8 +725,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
delegate.readSettingsEnd();
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate, times(numSettings)).readSetting(id, value, false, false);
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate, Mockito.times(numSettings)).readSetting(id, value, false, false);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -746,8 +743,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(numSettings);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate).readSettingsEnd();
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate).readSettingsEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -764,8 +761,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(numSettings);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(true);
|
|
|
|
|
verify(delegate).readSettingsEnd();
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(true);
|
|
|
|
|
Mockito.verify(delegate).readSettingsEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -791,8 +788,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
delegate.readSettingsEnd();
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate, times(numSettings)).readSetting(id, value, true, false);
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate, Mockito.times(numSettings)).readSetting(id, value, true, false);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -818,8 +815,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
delegate.readSettingsEnd();
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate, times(numSettings)).readSetting(id, value, false, true);
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate, Mockito.times(numSettings)).readSetting(id, value, false, true);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -836,8 +833,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(numSettings);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate).readSettingsEnd();
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate).readSettingsEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -863,8 +860,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
|
|
|
|
|
delegate.readSettingsEnd();
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readSettingsFrame(false);
|
|
|
|
|
verify(delegate, times(numSettings)).readSetting(id, value, false, false);
|
|
|
|
|
Mockito.verify(delegate).readSettingsFrame(false);
|
|
|
|
|
Mockito.verify(delegate, Mockito.times(numSettings)).readSetting(id, value, false, false);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -889,7 +886,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -914,7 +911,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -988,7 +985,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(id);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readPingFrame(id);
|
|
|
|
|
Mockito.verify(delegate).readPingFrame(id);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1005,7 +1002,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(id);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readPingFrame(id);
|
|
|
|
|
Mockito.verify(delegate).readPingFrame(id);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1022,7 +1019,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(id);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1041,7 +1038,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
Mockito.verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1060,7 +1057,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
Mockito.verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1079,7 +1076,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
Mockito.verify(delegate).readGoAwayFrame(lastGoodStreamId, statusCode);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1098,7 +1095,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(statusCode);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1115,8 +1112,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1133,8 +1130,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readHeadersFrame(streamId, true);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readHeadersFrame(streamId, true);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1151,8 +1148,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1169,8 +1166,8 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId | 0x80000000); // should ignore reserved bit
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1185,7 +1182,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
encodeControlFrameHeader(buf, type, flags, length);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1202,7 +1199,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(streamId);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1225,9 +1222,9 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
}
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
decoder.decode(headerBlock);
|
|
|
|
|
verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
Mockito.verify(delegate).readHeadersFrame(streamId, false);
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlock(headerBlock.slice(0, headerBlock.writerIndex()));
|
|
|
|
|
Mockito.verify(delegate).readHeaderBlockEnd();
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
assertFalse(headerBlock.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
@ -1248,7 +1245,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(deltaWindowSize);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
Mockito.verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1266,7 +1263,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(deltaWindowSize);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
Mockito.verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1285,7 +1282,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(deltaWindowSize | 0x80000000); // should ignore reserved bit
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
Mockito.verify(delegate).readWindowUpdateFrame(streamId, deltaWindowSize);
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1304,7 +1301,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(deltaWindowSize);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|
|
|
|
@ -1323,7 +1320,7 @@ public class SpdyFrameDecoderTest {
|
|
|
|
|
buf.writeInt(deltaWindowSize);
|
|
|
|
|
|
|
|
|
|
decoder.decode(buf);
|
|
|
|
|
verify(delegate).readFrameError(anyString());
|
|
|
|
|
Mockito.verify(delegate).readFrameError(ArgumentMatchers.anyString());
|
|
|
|
|
assertFalse(buf.isReadable());
|
|
|
|
|
buf.release();
|
|
|
|
|
}
|