~ubuntu-branches/ubuntu/saucy/libcommons-compress-java/saucy-proposed

« back to all changes in this revision

Viewing changes to src/test/java/org/apache/commons/compress/archivers/zip/EncryptedArchiveTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2011-08-07 01:56:15 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20110807015615-cvbmhuv10g12fpz1
Tags: 1.2-1
* New upstream release
* Clean up Depends and Suggests fields.
* Switch to source format 3.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 
3
 *  contributor license agreements.  See the NOTICE file distributed with
 
4
 *  this work for additional information regarding copyright ownership.
 
5
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 
6
 *  (the "License"); you may not use this file except in compliance with
 
7
 *  the License.  You may obtain a copy of the License at
 
8
 *
 
9
 *      http://www.apache.org/licenses/LICENSE-2.0
 
10
 *
 
11
 *  Unless required by applicable law or agreed to in writing, software
 
12
 *  distributed under the License is distributed on an "AS IS" BASIS,
 
13
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
14
 *  See the License for the specific language governing permissions and
 
15
 *  limitations under the License.
 
16
 *
 
17
 */
 
18
 
 
19
package org.apache.commons.compress.archivers.zip;
 
20
 
 
21
import java.io.File;
 
22
import java.io.FileInputStream;
 
23
import java.io.IOException;
 
24
import java.net.URI;
 
25
import java.net.URISyntaxException;
 
26
import java.net.URL;
 
27
import junit.framework.TestCase;
 
28
 
 
29
public class EncryptedArchiveTest extends TestCase {
 
30
 
 
31
    public void testReadPasswordEncryptedEntryViaZipFile()
 
32
        throws IOException, URISyntaxException {
 
33
        URL zip = getClass().getResource("/password-encrypted.zip");
 
34
        File file = new File(new URI(zip.toString()));
 
35
        ZipFile zf = null;
 
36
        try {
 
37
            zf = new ZipFile(file);
 
38
            ZipArchiveEntry zae = zf.getEntry("LICENSE.txt");
 
39
            assertTrue(zae.getGeneralPurposeBit().usesEncryption());
 
40
            assertFalse(zae.getGeneralPurposeBit().usesStrongEncryption());
 
41
            assertFalse(zf.canReadEntryData(zae));
 
42
            try {
 
43
                zf.getInputStream(zae);
 
44
                fail("expected an exception");
 
45
            } catch (UnsupportedZipFeatureException ex) {
 
46
                assertSame(UnsupportedZipFeatureException.Feature.ENCRYPTION,
 
47
                           ex.getFeature());
 
48
            }
 
49
        } finally {
 
50
            ZipFile.closeQuietly(zf);
 
51
        }
 
52
    }
 
53
 
 
54
    public void testReadPasswordEncryptedEntryViaStream()
 
55
        throws IOException, URISyntaxException {
 
56
        URL zip = getClass().getResource("/password-encrypted.zip");
 
57
        File file = new File(new URI(zip.toString()));
 
58
        ZipArchiveInputStream zin = null;
 
59
        try {
 
60
            zin = new ZipArchiveInputStream(new FileInputStream(file));
 
61
            ZipArchiveEntry zae = zin.getNextZipEntry();
 
62
            assertEquals("LICENSE.txt", zae.getName());
 
63
            assertTrue(zae.getGeneralPurposeBit().usesEncryption());
 
64
            assertFalse(zae.getGeneralPurposeBit().usesStrongEncryption());
 
65
            assertFalse(zin.canReadEntryData(zae));
 
66
            try {
 
67
                byte[] buf = new byte[1024];
 
68
                zin.read(buf, 0, buf.length);
 
69
                fail("expected an exception");
 
70
            } catch (UnsupportedZipFeatureException ex) {
 
71
                assertSame(UnsupportedZipFeatureException.Feature.ENCRYPTION,
 
72
                           ex.getFeature());
 
73
            }
 
74
        } finally {
 
75
            if (zin != null) {
 
76
                zin.close();
 
77
            }
 
78
        }
 
79
    }
 
80
}