1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * you may not use this file except in compliance with the License.
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * You may obtain a copy of the License at
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.archive.tests.java.util.jar;
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.KnownFailure;
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
28a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Projectimport java.beans.PropertyChangeEvent;
29a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Projectimport java.beans.PropertyChangeListener;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.File;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileInputStream;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileOutputStream;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Map;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.JarFile;
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.JarOutputStream;
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.Pack200;
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.Pack200.Packer;
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.jar.Pack200.Unpacker;
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Pack200.Unpacker.class)
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class Pack200UnpackerTest extends TestCase {
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    Unpacker unpacker;
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    Map properties;
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "properties",
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @KnownFailure("No Implementation in Android!")
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testProperties() {
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(properties.size()>0);
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "unpack",
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.File.class, java.util.jar.JarOutputStream.class}
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @KnownFailure("No Implementation in Android!")
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testUnpackInputStreamJarOutputStream() throws IOException {
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File resources = Support_Resources.createTempFolder();
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        //Use junit4.jar file for testing pack200 compressing rate.
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        //file can be changed to any other.
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Support_Resources.copyFile(resources, null, "junit4-4.3.1.jar");
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile = new File(resources, "junit4-4.3.1.jar");
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarFile jf = new JarFile(jarFile);
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int jarEntries = jf.size();
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile1 = Support_Resources.createTempFile("pack200_1");
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile2 = Support_Resources.createTempFile("pack200_2");
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile3 = Support_Resources.createTempFile("pack200_3");
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos1 = new FileOutputStream(packFile1);
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos2 = new FileOutputStream(packFile2);
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos3 = new FileOutputStream(packFile3);
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "0");
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Packer packer = Pack200.newPacker();
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos1);
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos1.close();
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf = new JarFile(jarFile);
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "1");
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos2);
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos2.close();
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf = new JarFile(jarFile);
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "9");
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos3);
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos3.close();
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile1 = Support_Resources.createTempFile("jar_1");
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile2 = Support_Resources.createTempFile("jar_2");
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile3 = Support_Resources.createTempFile("jar_3");
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos1 = new JarOutputStream(new FileOutputStream(jarFile1));
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos2 = new JarOutputStream(new FileOutputStream(jarFile2));
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos3 = new JarOutputStream(new FileOutputStream(jarFile3));
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(packFile1, jos1);
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(packFile2, jos2);
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(packFile3, jos3);
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos1.close();
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos2.close();
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos3.close();
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarFile1.length(), jarFile2.length());
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarFile2.length(), jarFile3.length());
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile1).size());
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile2).size());
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile3).size());
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "unpack",
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.InputStream.class, java.util.jar.JarOutputStream.class}
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @KnownFailure("No Implementation in Android!")
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testUnpackFileJarOutputStream() throws IOException {
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File resources = Support_Resources.createTempFolder();
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        //Use junit4.jar file for testing pack200 compressing rate.
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        //file can be changed to any other.
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Support_Resources.copyFile(resources, null, "junit4-4.3.1.jar");
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile = new File(resources, "junit4-4.3.1.jar");
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarFile jf = new JarFile(jarFile);
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int jarEntries = jf.size();
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile1 = Support_Resources.createTempFile("pack200_1");
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile2 = Support_Resources.createTempFile("pack200_2");
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File packFile3 = Support_Resources.createTempFile("pack200_3");
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos1 = new FileOutputStream(packFile1);
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos2 = new FileOutputStream(packFile2);
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileOutputStream fos3 = new FileOutputStream(packFile3);
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "0");
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Packer packer = Pack200.newPacker();
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos1);
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos1.close();
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf = new JarFile(jarFile);
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "1");
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos2);
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos2.close();
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf = new JarFile(jarFile);
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Packer.EFFORT, "9");
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        packer.pack(jf, fos3);
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jf.close();
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fos3.close();
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile1 = Support_Resources.createTempFile("jar_1");
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile2 = Support_Resources.createTempFile("jar_2");
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File jarFile3 = Support_Resources.createTempFile("jar_3");
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos1 = new JarOutputStream(new FileOutputStream(jarFile1));
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos2 = new JarOutputStream(new FileOutputStream(jarFile2));
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        JarOutputStream jos3 = new JarOutputStream(new FileOutputStream(jarFile3));
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileInputStream fis1 = new FileInputStream(packFile1);
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileInputStream fis2 = new FileInputStream(packFile2);
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        FileInputStream fis3 = new FileInputStream(packFile3);
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(fis1, jos1);
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(fis2, jos2);
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.unpack(fis3, jos3);
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos1.close();
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos2.close();
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        jos3.close();
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarFile1.length(), jarFile2.length());
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarFile2.length(), jarFile3.length());
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile1).size());
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile2).size());
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(jarEntries, new JarFile(jarFile3).size());
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
181a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project
182a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    class MyPCL implements PropertyChangeListener {
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        boolean flag = false;
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public boolean isCalled() {
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return flag;
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public void propertyChange(PropertyChangeEvent arg0) {
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            flag = true;
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
194a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    @TestTargetNew(
195a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        level = TestLevel.COMPLETE,
196a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        notes = "",
197a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        method = "addPropertyChangeListener",
198a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        args = {java.beans.PropertyChangeListener.class}
199a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    )
200a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    @KnownFailure("No Implementation in Android!")
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testAddPropertyChangeListener() {
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        MyPCL pcl = new MyPCL();
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.addPropertyChangeListener(pcl);
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(pcl.isCalled());
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Unpacker.PROGRESS, "0");
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(pcl.isCalled());
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
209a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    @TestTargetNew(
210a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        level = TestLevel.COMPLETE,
211a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        notes = "",
212a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        method = "removePropertyChangeListener",
213a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project        args = {java.beans.PropertyChangeListener.class}
214a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    )
215a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    @KnownFailure("No Implementation in Android!")
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testRemovePropertyChangeListener() {
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        MyPCL pcl = new MyPCL();
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.addPropertyChangeListener(pcl);
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(pcl.isCalled());
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker.removePropertyChangeListener(pcl);
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties.put(Unpacker.PROGRESS, "7");
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(pcl.isCalled());
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
224a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() {
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker = Pack200.newUnpacker();
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties = unpacker.properties();
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() {
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        unpacker = null;
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        properties = null;
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
237