1717package org .apache .coyote ;
1818
1919import java .util .ArrayList ;
20+ import java .util .Arrays ;
2021import java .util .Collection ;
2122import java .util .List ;
2223
@@ -33,35 +34,39 @@ public class TestCompressionConfig {
3334 public static Collection <Object []> parameters () {
3435 List <Object []> parameterSets = new ArrayList <>();
3536
36- parameterSets .add (new Object [] { new String [] { }, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
37- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
38- parameterSets .add (new Object [] { new String [] { "xgzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
39- parameterSets .add (new Object [] { new String [] { "<>gzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
40- parameterSets .add (new Object [] { new String [] { "foo" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
41- parameterSets .add (new Object [] { new String [] { "<>" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
42-
43- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
44- parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
45- parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
46-
47- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
48- parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
49- parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
50-
51- parameterSets .add (new Object [] { new String [] { }, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
52- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
53- parameterSets .add (new Object [] { new String [] { "xgzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
54- parameterSets .add (new Object [] { new String [] { "<>gzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
55- parameterSets .add (new Object [] { new String [] { "foo" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
56- parameterSets .add (new Object [] { new String [] { "<>" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
57-
58- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
59- parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
60- parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
61-
62- parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
63- parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
64- parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
37+ parameterSets .add (new Object [] { new String [] {}, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
38+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
39+ parameterSets .add (new Object [] { new String [] { "xgzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
40+ parameterSets .add (new Object [] { new String [] { "<>gzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
41+ parameterSets
42+ .add (new Object [] { new String [] { "foo" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
43+ parameterSets
44+ .add (new Object [] { new String [] { "<>" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
45+
46+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
47+ parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .TRUE , Boolean .TRUE , Boolean .FALSE });
48+ parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .TRUE , Boolean .FALSE , Boolean .FALSE });
49+
50+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
51+ parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
52+ parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .FALSE , Boolean .TRUE , Boolean .FALSE });
53+
54+ parameterSets .add (new Object [] { new String [] {}, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
55+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
56+ parameterSets .add (new Object [] { new String [] { "xgzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
57+ parameterSets .add (new Object [] { new String [] { "<>gzip" }, null , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
58+ parameterSets
59+ .add (new Object [] { new String [] { "foo" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
60+ parameterSets
61+ .add (new Object [] { new String [] { "<>" , "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
62+
63+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
64+ parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .TRUE , Boolean .TRUE , Boolean .TRUE });
65+ parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .TRUE , Boolean .FALSE , Boolean .TRUE });
66+
67+ parameterSets .add (new Object [] { new String [] { "gzip" }, null , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
68+ parameterSets .add (new Object [] { new String [] { "gzip" }, "W/" , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
69+ parameterSets .add (new Object [] { new String [] { "gzip" }, "XX" , Boolean .FALSE , Boolean .TRUE , Boolean .TRUE });
6570
6671 return parameterSets ;
6772 }
@@ -120,4 +125,18 @@ public void testUseCompression() throws Exception {
120125 }
121126 }
122127 }
128+
129+
130+ @ Test
131+ public void testNoCompressionEncodings () {
132+ CompressionConfig config = new CompressionConfig ();
133+ String encodings = config .getNoCompressionEncodings ();
134+ Assert .assertTrue (Arrays .asList ("br" , "compress" , "dcb" , "dcz" , "deflate" , "gzip" , "pack200-gzip" , "zstd" )
135+ .stream ().anyMatch (encodings ::contains ));
136+
137+ config .setNoCompressionEncodings ("br" );
138+ String newEncodings = config .getNoCompressionEncodings ();
139+ Assert .assertTrue (newEncodings .contains ("br" ));
140+ Assert .assertFalse (newEncodings .contains ("gzip" ));
141+ }
123142}
0 commit comments