28
28
import static org .junit .Assert .assertEquals ;
29
29
import static org .junit .Assert .fail ;
30
30
31
- public class HpackDraft09Test {
31
+ public class HpackDraft10Test {
32
32
33
33
private final Buffer bytesIn = new Buffer ();
34
- private HpackDraft09 .Reader hpackReader ;
34
+ private HpackDraft10 .Reader hpackReader ;
35
35
private Buffer bytesOut = new Buffer ();
36
- private HpackDraft09 .Writer hpackWriter ;
36
+ private HpackDraft10 .Writer hpackWriter ;
37
37
38
38
@ Before public void reset () {
39
39
hpackReader = newReader (bytesIn );
40
- hpackWriter = new HpackDraft09 .Writer (bytesOut );
40
+ hpackWriter = new HpackDraft10 .Writer (bytesOut );
41
41
}
42
42
43
43
/**
44
44
* Variable-length quantity special cases strings which are longer than 127
45
45
* bytes. Values such as cookies can be 4KiB, and should be possible to send.
46
46
*
47
- * <p> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #section-6.1
47
+ * <p> http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #section-5.2
48
48
*/
49
49
@ Test public void largeHeaderValue () throws IOException {
50
50
char [] value = new char [4096 ];
@@ -72,7 +72,7 @@ public class HpackDraft09Test {
72
72
bytesIn .writeByte (0x0d ); // Literal value (len = 13)
73
73
bytesIn .writeUtf8 ("custom-header" );
74
74
75
- hpackReader .maxHeaderTableByteCountSetting (1 );
75
+ hpackReader .headerTableSizeSetting (1 );
76
76
hpackReader .readHeaders ();
77
77
78
78
assertEquals (0 , hpackReader .headerCount );
@@ -104,15 +104,15 @@ public class HpackDraft09Test {
104
104
bytesIn .writeUtf8 ("custom-header" );
105
105
106
106
// Set to only support 110 bytes (enough for 2 headers).
107
- hpackReader .maxHeaderTableByteCountSetting (110 );
107
+ hpackReader .headerTableSizeSetting (110 );
108
108
hpackReader .readHeaders ();
109
109
110
110
assertEquals (2 , hpackReader .headerCount );
111
111
112
- Header entry = hpackReader .headerTable [headerTableLength () - 1 ];
112
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
113
113
checkEntry (entry , "custom-bar" , "custom-header" , 55 );
114
114
115
- entry = hpackReader .headerTable [headerTableLength () - 2 ];
115
+ entry = hpackReader .dynamicTable [headerTableLength () - 2 ];
116
116
checkEntry (entry , "custom-baz" , "custom-header" , 55 );
117
117
118
118
// Once a header field is decoded and added to the reconstructed header
@@ -125,7 +125,7 @@ public class HpackDraft09Test {
125
125
hpackReader .getAndResetHeaderList ());
126
126
127
127
// Simulate receiving a small settings frame, that implies eviction.
128
- hpackReader .maxHeaderTableByteCountSetting (55 );
128
+ hpackReader .headerTableSizeSetting (55 );
129
129
assertEquals (1 , hpackReader .headerCount );
130
130
}
131
131
@@ -140,7 +140,7 @@ public class HpackDraft09Test {
140
140
bytesIn .writeUtf8 ("custom-header" );
141
141
}
142
142
143
- hpackReader .maxHeaderTableByteCountSetting (16384 ); // Lots of headers need more room!
143
+ hpackReader .headerTableSizeSetting (16384 ); // Lots of headers need more room!
144
144
hpackReader .readHeaders ();
145
145
146
146
assertEquals (256 , hpackReader .headerCount );
@@ -156,14 +156,14 @@ public class HpackDraft09Test {
156
156
hpackReader .readHeaders ();
157
157
158
158
assertEquals (1 , hpackReader .headerCount );
159
- assertEquals (52 , hpackReader .headerTableByteCount );
159
+ assertEquals (52 , hpackReader .dynamicTableByteCount );
160
160
161
- Header entry = hpackReader .headerTable [headerTableLength () - 1 ];
161
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
162
162
checkEntry (entry , ":path" , "www.example.com" , 52 );
163
163
}
164
164
165
165
/**
166
- * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #appendix-D .2.1
166
+ * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #appendix-C .2.1
167
167
*/
168
168
@ Test public void readLiteralHeaderFieldWithIndexing () throws IOException {
169
169
bytesIn .writeByte (0x40 ); // Literal indexed
@@ -176,16 +176,16 @@ public class HpackDraft09Test {
176
176
hpackReader .readHeaders ();
177
177
178
178
assertEquals (1 , hpackReader .headerCount );
179
- assertEquals (55 , hpackReader .headerTableByteCount );
179
+ assertEquals (55 , hpackReader .dynamicTableByteCount );
180
180
181
- Header entry = hpackReader .headerTable [headerTableLength () - 1 ];
181
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
182
182
checkEntry (entry , "custom-key" , "custom-header" , 55 );
183
183
184
184
assertEquals (headerEntries ("custom-key" , "custom-header" ), hpackReader .getAndResetHeaderList ());
185
185
}
186
186
187
187
/**
188
- * https ://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #appendix-D .2.2
188
+ * http ://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #appendix-C .2.2
189
189
*/
190
190
@ Test public void literalHeaderFieldWithoutIndexingIndexedName () throws IOException {
191
191
List <Header > headerBlock = headerEntries (":path" , "/sample/path" );
@@ -260,9 +260,9 @@ public class HpackDraft09Test {
260
260
hpackReader .readHeaders ();
261
261
262
262
assertEquals (0 , hpackReader .headerCount );
263
- assertEquals (0 , hpackReader .headerTableByteCount );
263
+ assertEquals (0 , hpackReader .dynamicTableByteCount );
264
264
265
- assertEquals (null , hpackReader .headerTable [headerTableLength () - 1 ]);
265
+ assertEquals (null , hpackReader .dynamicTable [headerTableLength () - 1 ]);
266
266
267
267
assertEquals (headerEntries (":method" , "GET" ), hpackReader .getAndResetHeaderList ());
268
268
}
@@ -309,14 +309,14 @@ public class HpackDraft09Test {
309
309
bytesIn .writeByte (0x20 );
310
310
hpackReader .readHeaders ();
311
311
312
- assertEquals (0 , hpackReader .maxHeaderTableByteCount ());
312
+ assertEquals (0 , hpackReader .maxDynamicTableByteCount ());
313
313
314
314
bytesIn .writeByte (0x3f ); // encode size 4096
315
315
bytesIn .writeByte (0xe1 );
316
316
bytesIn .writeByte (0x1f );
317
317
hpackReader .readHeaders ();
318
318
319
- assertEquals (4096 , hpackReader .maxHeaderTableByteCount ());
319
+ assertEquals (4096 , hpackReader .maxDynamicTableByteCount ());
320
320
}
321
321
322
322
// Example taken from twitter/hpack DecoderTest.testIllegalHeaderTableSizeUpdate
@@ -347,13 +347,13 @@ public class HpackDraft09Test {
347
347
}
348
348
349
349
/**
350
- * https ://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #appendix-D .2.4
350
+ * http ://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #appendix-C .2.4
351
351
*/
352
352
@ Test public void readIndexedHeaderFieldFromStaticTableWithoutBuffering () throws IOException {
353
353
bytesIn .writeByte (0x82 ); // == Indexed - Add ==
354
354
// idx = 2 -> :method: GET
355
355
356
- hpackReader .maxHeaderTableByteCountSetting (0 ); // SETTINGS_HEADER_TABLE_SIZE == 0
356
+ hpackReader .headerTableSizeSetting (0 ); // SETTINGS_HEADER_TABLE_SIZE == 0
357
357
hpackReader .readHeaders ();
358
358
359
359
// Not buffered in header table.
@@ -363,7 +363,7 @@ public class HpackDraft09Test {
363
363
}
364
364
365
365
/**
366
- * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #appendix-D .2
366
+ * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #appendix-C .2
367
367
*/
368
368
@ Test public void readRequestExamplesWithoutHuffman () throws IOException {
369
369
firstRequestWithoutHuffman ();
@@ -396,11 +396,11 @@ private void checkReadFirstRequestWithoutHuffman() {
396
396
assertEquals (1 , hpackReader .headerCount );
397
397
398
398
// [ 1] (s = 57) :authority: www.example.com
399
- Header entry = hpackReader .headerTable [headerTableLength () - 1 ];
399
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
400
400
checkEntry (entry , ":authority" , "www.example.com" , 57 );
401
401
402
402
// Table size: 57
403
- assertEquals (57 , hpackReader .headerTableByteCount );
403
+ assertEquals (57 , hpackReader .dynamicTableByteCount );
404
404
405
405
// Decoded header list:
406
406
assertEquals (headerEntries (
@@ -429,15 +429,15 @@ private void checkReadSecondRequestWithoutHuffman() {
429
429
assertEquals (2 , hpackReader .headerCount );
430
430
431
431
// [ 1] (s = 53) cache-control: no-cache
432
- Header entry = hpackReader .headerTable [headerTableLength () - 2 ];
432
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 2 ];
433
433
checkEntry (entry , "cache-control" , "no-cache" , 53 );
434
434
435
435
// [ 2] (s = 57) :authority: www.example.com
436
- entry = hpackReader .headerTable [headerTableLength () - 1 ];
436
+ entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
437
437
checkEntry (entry , ":authority" , "www.example.com" , 57 );
438
438
439
439
// Table size: 110
440
- assertEquals (110 , hpackReader .headerTableByteCount );
440
+ assertEquals (110 , hpackReader .dynamicTableByteCount );
441
441
442
442
// Decoded header list:
443
443
assertEquals (headerEntries (
@@ -468,19 +468,19 @@ private void checkReadThirdRequestWithoutHuffman() {
468
468
assertEquals (3 , hpackReader .headerCount );
469
469
470
470
// [ 1] (s = 54) custom-key: custom-value
471
- Header entry = hpackReader .headerTable [headerTableLength () - 3 ];
471
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 3 ];
472
472
checkEntry (entry , "custom-key" , "custom-value" , 54 );
473
473
474
474
// [ 2] (s = 53) cache-control: no-cache
475
- entry = hpackReader .headerTable [headerTableLength () - 2 ];
475
+ entry = hpackReader .dynamicTable [headerTableLength () - 2 ];
476
476
checkEntry (entry , "cache-control" , "no-cache" , 53 );
477
477
478
478
// [ 3] (s = 57) :authority: www.example.com
479
- entry = hpackReader .headerTable [headerTableLength () - 1 ];
479
+ entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
480
480
checkEntry (entry , ":authority" , "www.example.com" , 57 );
481
481
482
482
// Table size: 164
483
- assertEquals (164 , hpackReader .headerTableByteCount );
483
+ assertEquals (164 , hpackReader .dynamicTableByteCount );
484
484
485
485
// Decoded header list:
486
486
assertEquals (headerEntries (
@@ -492,7 +492,7 @@ private void checkReadThirdRequestWithoutHuffman() {
492
492
}
493
493
494
494
/**
495
- * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 #appendix-D .4
495
+ * http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-10 #appendix-C .4
496
496
*/
497
497
@ Test public void readRequestExamplesWithHuffman () throws IOException {
498
498
firstRequestWithHuffman ();
@@ -526,11 +526,11 @@ private void checkReadFirstRequestWithHuffman() {
526
526
assertEquals (1 , hpackReader .headerCount );
527
527
528
528
// [ 1] (s = 57) :authority: www.example.com
529
- Header entry = hpackReader .headerTable [headerTableLength () - 1 ];
529
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
530
530
checkEntry (entry , ":authority" , "www.example.com" , 57 );
531
531
532
532
// Table size: 57
533
- assertEquals (57 , hpackReader .headerTableByteCount );
533
+ assertEquals (57 , hpackReader .dynamicTableByteCount );
534
534
535
535
// Decoded header list:
536
536
assertEquals (headerEntries (
@@ -560,15 +560,15 @@ private void checkReadSecondRequestWithHuffman() {
560
560
assertEquals (2 , hpackReader .headerCount );
561
561
562
562
// [ 1] (s = 53) cache-control: no-cache
563
- Header entry = hpackReader .headerTable [headerTableLength () - 2 ];
563
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 2 ];
564
564
checkEntry (entry , "cache-control" , "no-cache" , 53 );
565
565
566
566
// [ 2] (s = 57) :authority: www.example.com
567
- entry = hpackReader .headerTable [headerTableLength () - 1 ];
567
+ entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
568
568
checkEntry (entry , ":authority" , "www.example.com" , 57 );
569
569
570
570
// Table size: 110
571
- assertEquals (110 , hpackReader .headerTableByteCount );
571
+ assertEquals (110 , hpackReader .dynamicTableByteCount );
572
572
573
573
// Decoded header list:
574
574
assertEquals (headerEntries (
@@ -601,19 +601,19 @@ private void checkReadThirdRequestWithHuffman() {
601
601
assertEquals (3 , hpackReader .headerCount );
602
602
603
603
// [ 1] (s = 54) custom-key: custom-value
604
- Header entry = hpackReader .headerTable [headerTableLength () - 3 ];
604
+ Header entry = hpackReader .dynamicTable [headerTableLength () - 3 ];
605
605
checkEntry (entry , "custom-key" , "custom-value" , 54 );
606
606
607
607
// [ 2] (s = 53) cache-control: no-cache
608
- entry = hpackReader .headerTable [headerTableLength () - 2 ];
608
+ entry = hpackReader .dynamicTable [headerTableLength () - 2 ];
609
609
checkEntry (entry , "cache-control" , "no-cache" , 53 );
610
610
611
611
// [ 3] (s = 57) :authority: www.example.com
612
- entry = hpackReader .headerTable [headerTableLength () - 1 ];
612
+ entry = hpackReader .dynamicTable [headerTableLength () - 1 ];
613
613
checkEntry (entry , ":authority" , "www.example.com" , 57 );
614
614
615
615
// Table size: 164
616
- assertEquals (164 , hpackReader .headerTableByteCount );
616
+ assertEquals (164 , hpackReader .dynamicTableByteCount );
617
617
618
618
// Decoded header list:
619
619
assertEquals (headerEntries (
@@ -692,8 +692,8 @@ private void checkReadThirdRequestWithHuffman() {
692
692
assertEquals (ByteString .EMPTY , newReader (byteStream (0 )).readByteString ());
693
693
}
694
694
695
- private HpackDraft09 .Reader newReader (Buffer source ) {
696
- return new HpackDraft09 .Reader (4096 , source );
695
+ private HpackDraft10 .Reader newReader (Buffer source ) {
696
+ return new HpackDraft10 .Reader (4096 , source );
697
697
}
698
698
699
699
private Buffer byteStream (int ... bytes ) {
@@ -721,6 +721,6 @@ private ByteString intArrayToByteArray(int[] bytes) {
721
721
}
722
722
723
723
private int headerTableLength () {
724
- return hpackReader .headerTable .length ;
724
+ return hpackReader .dynamicTable .length ;
725
725
}
726
726
}
0 commit comments