1 // Copyright 2016 Google Inc. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package com.google.archivepatcher.shared; 16 17 import org.junit.Assert; 18 import org.junit.Test; 19 import org.junit.runner.RunWith; 20 import org.junit.runners.JUnit4; 21 22 /** 23 * Tests for {@link DefaultDeflateCompatibilityWindow}. 24 */ 25 @RunWith(JUnit4.class) 26 @SuppressWarnings("javadoc") 27 public class JreDeflateParametersTest { 28 29 @Test testOf_AllValidValues()30 public void testOf_AllValidValues() { 31 for (int level = 1; level <= 9; level++) { 32 for (int strategy = 0; strategy <= 2; strategy++) { 33 for (boolean nowrap : new boolean[] {true, false}) { 34 JreDeflateParameters.of(level, strategy, nowrap); 35 } 36 } 37 } 38 } 39 assertIllegalArgumentException(int level, int strategy, boolean nowrap)40 private void assertIllegalArgumentException(int level, int strategy, boolean nowrap) { 41 try { 42 JreDeflateParameters.of(level, strategy, nowrap); 43 Assert.fail("Invalid configuration allowed"); 44 } catch (IllegalArgumentException expected) { 45 // Pass 46 } 47 } 48 49 @Test testOf_InvalidValues()50 public void testOf_InvalidValues() { 51 // All of these should fail. 52 assertIllegalArgumentException(0, 0, true); // Bad compression level (store) 53 assertIllegalArgumentException(-1, 0, true); // Bad compression level (insane value < 0) 54 assertIllegalArgumentException(10, 0, true); // Bad compression level (insane value > 9) 55 assertIllegalArgumentException(1, -1, true); // Bad strategy (insane value < 0) 56 assertIllegalArgumentException(1, 3, true); // Bad strategy (valid in zlib, unsupported in JRE) 57 } 58 59 @Test testToString()60 public void testToString() { 61 // Ensure that toString() doesn't crash and produces a non-empty string. 62 Assert.assertTrue(JreDeflateParameters.of(1, 0, true).toString().length() > 0); 63 } 64 65 @Test testParseString()66 public void testParseString() { 67 for (int level = 1; level <= 9; level++) { 68 for (int strategy = 0; strategy <= 2; strategy++) { 69 for (boolean nowrap : new boolean[] {true, false}) { 70 JreDeflateParameters params = JreDeflateParameters.of(level, strategy, nowrap); 71 String asString = params.toString(); 72 JreDeflateParameters fromString = JreDeflateParameters.parseString(asString); 73 Assert.assertEquals(params, fromString); 74 } 75 } 76 } 77 } 78 } 79