1
1
package org .java_websocket .extensions ;
2
2
3
- import static java .util .zip .GZIPInputStream .GZIP_MAGIC ;
4
3
import static org .junit .Assert .assertArrayEquals ;
5
4
import static org .junit .Assert .assertEquals ;
6
5
import static org .junit .Assert .assertFalse ;
10
9
import java .nio .ByteBuffer ;
11
10
import java .util .Arrays ;
12
11
import java .util .zip .Deflater ;
13
- import java . util . zip . Inflater ;
12
+
14
13
import org .java_websocket .exceptions .InvalidDataException ;
15
14
import org .java_websocket .extensions .permessage_deflate .PerMessageDeflateExtension ;
16
- import org .java_websocket .framing .BinaryFrame ;
17
15
import org .java_websocket .framing .ContinuousFrame ;
18
16
import org .java_websocket .framing .TextFrame ;
19
17
import org .junit .Test ;
@@ -55,8 +53,7 @@ public void testDecodeFrameIfRSVIsNotSet() throws InvalidDataException {
55
53
56
54
@ Test
57
55
public void testDecodeFrameNoCompression () throws InvalidDataException {
58
- PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension ();
59
- deflateExtension .setDeflaterLevel (Deflater .NO_COMPRESSION );
56
+ PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension (Deflater .NO_COMPRESSION );
60
57
deflateExtension .setThreshold (0 );
61
58
String str = "This is a highly compressable text"
62
59
+ "This is a highly compressable text"
@@ -76,8 +73,7 @@ public void testDecodeFrameNoCompression() throws InvalidDataException {
76
73
77
74
@ Test
78
75
public void testDecodeFrameBestSpeedCompression () throws InvalidDataException {
79
- PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension ();
80
- deflateExtension .setDeflaterLevel (Deflater .BEST_SPEED );
76
+ PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension (Deflater .BEST_SPEED );
81
77
deflateExtension .setThreshold (0 );
82
78
String str = "This is a highly compressable text"
83
79
+ "This is a highly compressable text"
@@ -103,8 +99,7 @@ public void testDecodeFrameBestSpeedCompression() throws InvalidDataException {
103
99
104
100
@ Test
105
101
public void testDecodeFrameBestCompression () throws InvalidDataException {
106
- PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension ();
107
- deflateExtension .setDeflaterLevel (Deflater .BEST_COMPRESSION );
102
+ PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension (Deflater .BEST_COMPRESSION );
108
103
deflateExtension .setThreshold (0 );
109
104
String str = "This is a highly compressable text"
110
105
+ "This is a highly compressable text"
@@ -128,35 +123,6 @@ public void testDecodeFrameBestCompression() throws InvalidDataException {
128
123
assertArrayEquals (message , frame .getPayloadData ().array ());
129
124
}
130
125
131
- @ Test
132
- public void testDecodeFrameSwitchCompression () throws InvalidDataException {
133
- PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension ();
134
- deflateExtension .setDeflaterLevel (Deflater .NO_COMPRESSION );
135
- deflateExtension .setThreshold (0 );
136
- String str = "This is a highly compressable text"
137
- + "This is a highly compressable text"
138
- + "This is a highly compressable text"
139
- + "This is a highly compressable text"
140
- + "This is a highly compressable text" ;
141
- byte [] message = str .getBytes ();
142
- TextFrame frame = new TextFrame ();
143
- frame .setPayload (ByteBuffer .wrap (message ));
144
-
145
- Deflater localDeflater = new Deflater (Deflater .BEST_COMPRESSION ,true );
146
- localDeflater .setInput (ByteBuffer .wrap (message ).array ());
147
- byte [] buffer = new byte [1024 ];
148
- int bytesCompressed = localDeflater .deflate (buffer , 0 , buffer .length , Deflater .SYNC_FLUSH );
149
-
150
- // Change the deflater level after the creation and switch to a new deflater level
151
- // Compression strategy should be applied instantly since we call .deflate manually
152
- deflateExtension .setDeflaterLevel (Deflater .BEST_COMPRESSION );
153
- deflateExtension .encodeFrame (frame );
154
- byte [] payloadArray = frame .getPayloadData ().array ();
155
- assertArrayEquals (Arrays .copyOfRange (buffer ,0 , bytesCompressed ), Arrays .copyOfRange (payloadArray ,0 ,payloadArray .length ));
156
- assertTrue (frame .isRSV1 ());
157
- deflateExtension .decodeFrame (frame );
158
- assertArrayEquals (message , frame .getPayloadData ().array ());
159
- }
160
126
161
127
@ Test
162
128
public void testEncodeFrame () {
@@ -304,41 +270,31 @@ public void testCopyInstance() {
304
270
assertEquals (deflateExtension .getThreshold (), newDeflateExtension .getThreshold ());
305
271
assertEquals (deflateExtension .isClientNoContextTakeover (), newDeflateExtension .isClientNoContextTakeover ());
306
272
assertEquals (deflateExtension .isServerNoContextTakeover (), newDeflateExtension .isServerNoContextTakeover ());
307
- assertEquals (deflateExtension .getDeflaterLevel (), newDeflateExtension .getDeflaterLevel ());
273
+ assertEquals (deflateExtension .getCompressionLevel (), newDeflateExtension .getCompressionLevel ());
308
274
309
275
310
- deflateExtension = new PerMessageDeflateExtension ();
276
+ deflateExtension = new PerMessageDeflateExtension (Deflater . BEST_COMPRESSION );
311
277
deflateExtension .setThreshold (512 );
312
278
deflateExtension .setServerNoContextTakeover (false );
313
279
deflateExtension .setClientNoContextTakeover (true );
314
- deflateExtension .setDeflaterLevel (Deflater .BEST_COMPRESSION );
315
280
newDeflateExtension = (PerMessageDeflateExtension )deflateExtension .copyInstance ();
316
281
317
282
assertEquals (deflateExtension .getThreshold (), newDeflateExtension .getThreshold ());
318
283
assertEquals (deflateExtension .isClientNoContextTakeover (), newDeflateExtension .isClientNoContextTakeover ());
319
284
assertEquals (deflateExtension .isServerNoContextTakeover (), newDeflateExtension .isServerNoContextTakeover ());
320
- assertEquals (deflateExtension .getDeflaterLevel (), newDeflateExtension .getDeflaterLevel ());
285
+ assertEquals (deflateExtension .getCompressionLevel (), newDeflateExtension .getCompressionLevel ());
321
286
322
287
323
- deflateExtension = new PerMessageDeflateExtension ();
288
+ deflateExtension = new PerMessageDeflateExtension (Deflater . NO_COMPRESSION );
324
289
deflateExtension .setThreshold (64 );
325
290
deflateExtension .setServerNoContextTakeover (true );
326
291
deflateExtension .setClientNoContextTakeover (false );
327
- deflateExtension .setDeflaterLevel (Deflater .NO_COMPRESSION );
328
292
newDeflateExtension = (PerMessageDeflateExtension )deflateExtension .copyInstance ();
329
293
330
294
assertEquals (deflateExtension .getThreshold (), newDeflateExtension .getThreshold ());
331
295
assertEquals (deflateExtension .isClientNoContextTakeover (), newDeflateExtension .isClientNoContextTakeover ());
332
296
assertEquals (deflateExtension .isServerNoContextTakeover (), newDeflateExtension .isServerNoContextTakeover ());
333
- assertEquals (deflateExtension .getDeflaterLevel (), newDeflateExtension .getDeflaterLevel ());
334
- }
335
-
336
- @ Test
337
- public void testDeflaterLevel () {
338
- PerMessageDeflateExtension deflateExtension = new PerMessageDeflateExtension ();
339
- assertEquals (Deflater .DEFAULT_COMPRESSION , deflateExtension .getDeflaterLevel ());
340
- deflateExtension .setDeflaterLevel (Deflater .BEST_SPEED );
341
- assertEquals (Deflater .BEST_SPEED , deflateExtension .getDeflaterLevel ());
297
+ assertEquals (deflateExtension .getCompressionLevel (), newDeflateExtension .getCompressionLevel ());
342
298
}
343
299
344
300
@ Test
@@ -347,6 +303,6 @@ public void testDefaults() {
347
303
assertFalse (deflateExtension .isClientNoContextTakeover ());
348
304
assertTrue (deflateExtension .isServerNoContextTakeover ());
349
305
assertEquals (1024 , deflateExtension .getThreshold ());
350
- assertEquals (Deflater .DEFAULT_COMPRESSION , deflateExtension .getDeflaterLevel ());
306
+ assertEquals (Deflater .DEFAULT_COMPRESSION , deflateExtension .getCompressionLevel ());
351
307
}
352
308
}
0 commit comments