1e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes/* 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 8e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.archive.tests.java.util.zip; 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayInputStream; 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.ByteArrayOutputStream; 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.EOFException; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.IOException; 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.InputStream; 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.File; 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.io.FileInputStream; 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.zip.DeflaterOutputStream; 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.zip.Inflater; 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.zip.InflaterInputStream; 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport tests.support.resource.Support_Resources; 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class InflaterInputStreamTest extends TestCase { 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 35e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes // files hyts_construO,hyts_construOD,hyts_construODI needs to be 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // included as resources 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte outPutBuf[] = new byte[500]; 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes class MyInflaterInputStream extends InflaterInputStream { 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyInflaterInputStream(InputStream in) { 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(in); 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyInflaterInputStream(InputStream in, Inflater infl) { 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(in, infl); 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes MyInflaterInputStream(InputStream in, Inflater infl, int size) { 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes super(in, infl, size); 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes void myFill() throws IOException { 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fill(); 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#InflaterInputStream(java.io.InputStream) 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_InputStream() throws IOException { 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //FIXME This test doesn't pass in Harmony classlib or Sun 5.0_7 RI 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int buffer[] = new int[500]; 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream infile = Support_Resources 66e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes .getStream("hyts_construO.bin"); 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile); 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int i = 0; 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((result = inflatIP.read()) != -1) { 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer[i] = result; 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i++; 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#InflaterInputStream(java.io.InputStream, 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.zip.Inflater) 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_InputStreamLjava_util_zip_Inflater() throws IOException { 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte byteArray[] = new byte[100]; 85e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes InputStream infile = Support_Resources.getStream("hyts_construOD.bin"); 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile, 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflate); 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.read(byteArray, 0, 5);// only suppose to read in 5 bytes 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#InflaterInputStream(java.io.InputStream, 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.zip.Inflater, int) 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_InputStreamLjava_util_zip_InflaterI() throws IOException { 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int buffer[] = new int[500]; 101e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes InputStream infile = Support_Resources.getStream("hyts_construODI.bin"); 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile, 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflate, 1); 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int i = 0; 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((result = inflatIP.read()) != -1) { 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer[i] = result; 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i++; 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#InflaterInputStream(java.io.InputStream, 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * java.util.zip.Inflater, int) 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_io_InputStreamLjava_util_zip_InflaterI_1() throws IOException { 119e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes InputStream infile = Support_Resources.getStream("hyts_construODI.bin"); 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = null; 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try{ 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP = new InflaterInputStream(infile, null, 1); 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException expected"); 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(NullPointerException NPE){ 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 127e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes } 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try{ 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP = new InflaterInputStream(null, inflate, 1); 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException expected"); 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(NullPointerException NPE){ 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 134e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes } 135e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try{ 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP = new InflaterInputStream(infile, inflate, -1); 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException expected"); 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(IllegalArgumentException iae){ 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 141e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes } 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#mark(int) 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_markI() { 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = new ByteArrayInputStream(new byte[10]); 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // mark do nothing, do no check 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.mark(0); 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.mark(-1); 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.mark(10000000); 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#markSupported() 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_markSupported() { 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = new ByteArrayInputStream(new byte[10]); 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse(iis.markSupported()); 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue(is.markSupported()); 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#read() 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read() throws IOException { 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int buffer[] = new int[500]; 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte orgBuffer[] = { 1, 3, 4, 7, 8 }; 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream infile = Support_Resources 174e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes .getStream("hyts_construOD.bin"); 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile, 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflate); 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int i = 0; 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((result = inflatIP.read()) != -1) { 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer[i] = result; 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i++; 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 0; j < orgBuffer.length; j++) { 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "original compressed data did not equal decompressed data", 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes orgBuffer[j], buffer[j]); 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#read(byte [], int, int) 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read_LBII() throws IOException { 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 198e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes InputStream infile = Support_Resources.getStream("hyts_construOD.bin"); 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile, inflate); 201e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] b = new byte[3]; 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try{ 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = inflatIP.read(null, 0, 1); 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("NullPointerException expected"); 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(NullPointerException npe){ 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 209e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, inflatIP.read(b, 0, 0)); 211e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try{ 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = inflatIP.read(b, 5, 2); //offset higher 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IndexOutOfBoundsException expected"); 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(IndexOutOfBoundsException iobe){ 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 218e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.read(b, 0, 1); //read after close 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException expected"); 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes }catch(IOException ioe){ 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //expected 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAvailableNonEmptySource() throws Exception { 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // this byte[] is a deflation of these bytes: { 1, 3, 4, 6 } 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] deflated = { 72, -119, 99, 100, 102, 97, 3, 0, 0, 31, 0, 15, 0 }; 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream in = new InflaterInputStream(new ByteArrayInputStream(deflated)); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // InflaterInputStream.available() returns either 1 or 0, even though 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // that contradicts the behavior defined in InputStream.available() 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, in.read()); 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, in.available()); 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3, in.read()); 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, in.available()); 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, in.read()); 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, in.available()); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(6, in.read()); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, in.available()); 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, in.read()); 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, in.read()); 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAvailableSkip() throws Exception { 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // this byte[] is a deflation of these bytes: { 1, 3, 4, 6 } 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] deflated = { 72, -119, 99, 100, 102, 97, 3, 0, 0, 31, 0, 15, 0 }; 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream in = new InflaterInputStream(new ByteArrayInputStream(deflated)); 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(1, in.available()); 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(4, in.skip(4)); 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, in.available()); 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void testAvailableEmptySource() throws Exception { 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // this byte[] is a deflation of the empty file 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] deflated = { 120, -100, 3, 0, 0, 0, 0, 1 }; 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream in = new InflaterInputStream(new ByteArrayInputStream(deflated)); 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, in.read()); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(-1, in.read()); 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(0, in.available()); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#read(byte[], int, int) 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read$BII() throws IOException{ 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] test = new byte[507]; 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 256; i++) { 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test[i] = (byte) i; 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 256; i < test.length; i++) { 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test[i] = (byte) (256 - i); 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes ByteArrayOutputStream baos = new ByteArrayOutputStream(); 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes DeflaterOutputStream dos = new DeflaterOutputStream(baos); 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes dos.write(test); 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes dos.close(); 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = new ByteArrayInputStream(baos.toByteArray()); 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] outBuf = new byte[530]; 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (true) { 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = iis.read(outBuf, 0, 5); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (result == -1) { 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes //"EOF was reached"; 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes break; 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.read(outBuf, -1, 10); 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("should throw IOOBE."); 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IndexOutOfBoundsException e) { 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected; 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read$BII2() throws IOException { 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes File resources = Support_Resources.createTempFolder(); 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes FileInputStream fis = new FileInputStream(new File(resources, 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Broken_manifest.jar")); 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(fis); 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] outBuf = new byte[530]; 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.close(); 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.read(outBuf, 0, 5); 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException expected"); 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException ee) { 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected. 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_read$BII3() throws IOException { 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes File resources = Support_Resources.createTempFolder(); 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes FileInputStream fis = new FileInputStream(new File(resources, 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Broken_manifest.jar")); 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(fis); 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte[] outBuf = new byte[530]; 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.read(); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IOException expected."); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException ee) { 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#reset() 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_reset() { 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = new ByteArrayInputStream(new byte[10]); 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.reset(); 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw IOException"); 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // correct 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 344e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#skip(long) 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_skipJ() throws IOException { 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = Support_Resources.getStream("hyts_available.tst"); 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Tests for skipping a negative number of bytes. 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.skip(-3); 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException not thrown"); 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Byte Returned.", 5, iis.read()); 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.skip(Integer.MIN_VALUE); 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("IllegalArgumentException not thrown"); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Byte Returned.", 4, iis.read()); 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test to make sure the correct number of bytes were skipped 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Number Of Bytes Skipped.", 3, iis.skip(3)); 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test to see if the number of bytes skipped returned is true. 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Byte Returned.", 7, iis.read()); 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Number Of Bytes Skipped.", 0, iis.skip(0)); 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Byte Returned.", 0, iis.read()); 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for skipping more bytes than available in the stream 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Number Of Bytes Skipped.", 2, iis.skip(4)); 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect Byte Returned.", -1, iis.read()); 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.close(); 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#skip(long) 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_skipJ2() throws IOException { 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int result = 0; 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int buffer[] = new int[100]; 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes byte orgBuffer[] = { 1, 3, 4, 7, 8 }; 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // testing for negative input to skip 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream infile = Support_Resources 394e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes .getStream("hyts_construOD.bin"); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Inflater inflate = new Inflater(); 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP = new InflaterInputStream(infile, 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflate, 10); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long skip; 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes skip = inflatIP.skip(Integer.MIN_VALUE); 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected IllegalArgumentException when skip() is called with negative parameter"); 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IllegalArgumentException e) { 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP.close(); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // testing for number of bytes greater than input. 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream infile2 = Support_Resources 409e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes .getStream("hyts_construOD.bin"); 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP2 = new InflaterInputStream(infile2); 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // looked at how many bytes the skip skipped. It is 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // 5 and its supposed to be the entire input stream. 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes skip = inflatIP2.skip(Integer.MAX_VALUE); 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // System.out.println(skip); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("method skip() returned wrong number of bytes skipped", 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 5, skip); 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test for skipping of 2 bytes 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream infile3 = Support_Resources 422e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes .getStream("hyts_construOD.bin"); 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream inflatIP3 = new InflaterInputStream(infile3); 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes skip = inflatIP3.skip(2); 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("the number of bytes returned by skip did not correspond with its input parameters", 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 2, skip); 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int i = 0; 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = 0; 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while ((result = inflatIP3.read()) != -1) { 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes buffer[i] = result; 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes i++; 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes inflatIP2.close(); 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = 2; j < orgBuffer.length; j++) { 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals( 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "original compressed data did not equal decompressed data", 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes orgBuffer[j], buffer[j - 2]); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#available() 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_available() throws IOException { 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InputStream is = Support_Resources.getStream("hyts_available.tst"); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iis = new InflaterInputStream(is); 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int available; 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < 11; i++) { 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.read(); 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes available = iis.available(); 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes if (available == 0) { 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Expected no more bytes to read", -1, iis.read()); 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } else { 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Bytes Available Should Return 1.", 1, available); 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.close(); 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iis.available(); 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("available after close should throw IOException."); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (IOException e) { 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Expected 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.util.zip.InflaterInputStream#close() 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_close() throws IOException { 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes InflaterInputStream iin = new InflaterInputStream( 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new ByteArrayInputStream(new byte[0])); 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iin.close(); 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test for exception 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes iin.close(); 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 481