1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.archive.tests.java.util.zip; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase; 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.resource.Support_Resources; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayOutputStream; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.File; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileInputStream; 3205c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilsonimport java.io.FilterInputStream; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream; 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.zip.ZipEntry; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.zip.ZipException; 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.zip.ZipInputStream; 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.zip.ZipOutputStream; 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(ZipInputStream.class) 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ZipInputStreamTest extends TestCase { 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // the file hyts_zipFile.zip used in setup needs to included as a resource 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private ZipEntry zentry; 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private ZipInputStream zis; 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private byte[] zipBytes; 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project private byte[] dataBytes = "Some data in my file".getBytes(); 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() { 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is = Support_Resources.getStream("hyts_ZipFile.zip"); 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (is == null) { 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("file hyts_ZipFile.zip can not be found"); 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis = new ZipInputStream(is); 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream bos = new ByteArrayOutputStream(); 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipOutputStream zos = new ZipOutputStream(bos); 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipEntry entry = new ZipEntry("myFile"); 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zos.putNextEntry(entry); 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zos.write(dataBytes); 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zos.closeEntry(); 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zos.close(); 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zipBytes = bos.toByteArray(); 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project System.out.println("Exception during ZipFile setup:"); 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project e.printStackTrace(); 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @Override 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() { 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (zis != null) { 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.close(); 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#ZipInputStream(java.io.InputStream) 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "ZipInputStream", 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class} 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_io_InputStream() throws Exception { 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.closeEntry(); 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#close() 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "close", 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_close() { 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.close(); 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] rbuf = new byte[10]; 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.read(rbuf, 0, 1); 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException e) { 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return; 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Read data after stream was closed"); 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#close() 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Checks calling method two times", 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "close", 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_close2() throws Exception { 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Regression for HARMONY-1101 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.close(); 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // another call to close should NOT cause an exception 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.close(); 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#closeEntry() 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "closeEntry", 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_closeEntry() throws Exception { 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.closeEntry(); 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.close(); 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.closeEntry(); 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(new File(resources, 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Broken_manifest.jar")); 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 6; i++) { 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.closeEntry(); 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ZipException expected"); 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ZipException ee) { 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "close", 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_closeAfterException() throws Exception { 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(new File(resources, 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Broken_manifest.jar")); 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 6; i++) { 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ZipException expected"); 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ZipException ee) { 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 194a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project zis1.close(); 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#getNextEntry() 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getNextEntry", 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getNextEntry() throws Exception { 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull("getNextEntry failed", zis.getNextEntry()); 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(new File(resources, 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Broken_manifest.jar")); 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project for (int i = 0; i < 6; i++) { 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ZipException expected"); 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ZipException ee) { 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.close(); // Android throws exception here, already! 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); // But RI here, only! 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#read(byte[], int, int) 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "read", 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {byte[].class, int.class, int.class} 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_read$BII() throws Exception { 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] rbuf = new byte[(int) zentry.getSize()]; 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int r = zis.read(rbuf, 0, rbuf.length); 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project new String(rbuf, 0, r); 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to read entry", 12, r); 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(new File(resources, 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Broken_manifest.jar")); 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project rbuf = new byte[100]; 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.read(rbuf, 10, 90); 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ZipException expected"); 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ZipException ee) { 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.close(); // Android throws exception here, already! 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.read(rbuf, 10, 90); // But RI here, only! 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 28205c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson @TestTargetNew( 28305c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson level = TestLevel.PARTIAL_COMPLETE, 28405c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson method = "read", 28505c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson args = {byte[].class, int.class, int.class} 28605c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson ) 28705c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson public void testReadOneByteAtATime() throws IOException { 28805c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson InputStream in = new FilterInputStream(Support_Resources.getStream("hyts_ZipFile.zip")) { 28905c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson @Override 29005c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson public int read(byte[] buffer, int offset, int count) throws IOException { 29105c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson return super.read(buffer, offset, 1); // one byte at a time 29205c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson } 29305c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson 29405c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson @Override 29505c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson public int read(byte[] buffer) throws IOException { 29605c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson return super.read(buffer, 0, 1); // one byte at a time 29705c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson } 29805c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson }; 29905c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson 30005c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson zis = new ZipInputStream(in); 30105c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson while ((zentry = zis.getNextEntry()) != null) { 30205c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson zentry.getName(); 30305c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson } 30405c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson zis.close(); 30505c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson } 30605c0836f27bd73d74e2b47ee86cd925fc5548ebcJesse Wilson 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.zip.ZipInputStream#skip(long) 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "skip", 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {long.class} 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_skipJ() throws Exception { 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] rbuf = new byte[(int) zentry.getSize()]; 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.skip(2); 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int r = zis.read(rbuf, 0, rbuf.length); 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to skip data", 10, r); 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zentry = zis.getNextEntry(); 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project long s = zis.skip(1025); 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("invalid skip: " + s, s == 1025); 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream( 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zipBytes)); 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.getNextEntry(); 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project long skipLen = dataBytes.length / 2; 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 0: failed valid skip", skipLen, zis.skip(skipLen)); 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.skip(dataBytes.length); 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 1: performed invalid skip", 0, zis.skip(1)); 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Assert 2: failed zero len skip", 0, zis.skip(0)); 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis.skip(-1); 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Assert 3: Expected Illegal argument exception"); 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Expected 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(new File(resources, 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "Broken_manifest.jar")); 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.skip(10); 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("ZipException expected"); 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (ZipException ee) { 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.close(); // Android throws exception here, already! 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.skip(10); // But RI here, only! 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "available", 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_available() throws Exception { 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 376a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project Support_Resources.copyFile(resources, null, "hyts_ZipFile.zip"); 377a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project File fl = new File(resources, "hyts_ZipFile.zip"); 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(fl); 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ZipInputStream zis1 = new ZipInputStream(fis); 381a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project ZipEntry entry = zis1.getNextEntry(); 382a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project assertNotNull("No entry in the archive.", entry); 383a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project long entrySize = entry.getSize(); 384a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project assertTrue("Entry size was < 1", entrySize > 0); 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int i = 0; 3867f331f3efb8c9c9879bf6b5154eaf2fdc849ab9bJesse Wilson while (zis1.available() > 0) { 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.skip(1); 3887f331f3efb8c9c9879bf6b5154eaf2fdc849ab9bJesse Wilson i++; 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 390a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project if (i != entrySize) { 391a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project fail("ZipInputStream.available or ZipInputStream.skip does not " + 392a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project "working properly. Only skipped " + i + 393a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project " bytes instead of " + entrySize); 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 3957f331f3efb8c9c9879bf6b5154eaf2fdc849ab9bJesse Wilson assertEquals(0, zis1.skip(1)); 3967f331f3efb8c9c9879bf6b5154eaf2fdc849ab9bJesse Wilson assertEquals(0, zis1.available()); 397a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project zis1.closeEntry(); 3987f331f3efb8c9c9879bf6b5154eaf2fdc849ab9bJesse Wilson assertEquals(1, zis.available()); 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.close(); 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.available(); 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IOException expected"); 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IOException ee) { 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project class Mock_ZipInputStream extends ZipInputStream { 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean createFlag = false; 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Mock_ZipInputStream(InputStream arg0) { 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super(arg0); 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean getCreateFlag() { 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return createFlag; 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected ZipEntry createZipEntry(String name) { 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project createFlag = true; 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return super.createZipEntry(name); 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "createZipEntry", 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_createZipEntryLjava_lang_String() throws Exception { 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File resources = Support_Resources.createTempFolder(); 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Support_Resources.copyFile(resources, null, "Broken_manifest.jar"); 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project File fl = new File(resources, "Broken_manifest.jar"); 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project FileInputStream fis = new FileInputStream(fl); 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Mock_ZipInputStream zis1 = new Mock_ZipInputStream(fis); 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(zis1.getCreateFlag()); 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project zis1.getNextEntry(); 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(zis1.getCreateFlag()); 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 444