Author: ggregory Date: Thu May 31 21:56:53 2012 New Revision: 1344924 URL: http://svn.apache.org/viewvc?rev=1344924&view=rev Log: Test attributes for [VFS-419] JarFileSystem incorrectly resolves file if it has been removed from the cache.
Added: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java (with props) Modified: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java Added: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java?rev=1344924&view=auto ============================================================================== --- commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java (added) +++ commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java Thu May 31 21:56:53 2012 @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.vfs2.provider.jar.test; + +import java.util.Map; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.commons.vfs2.FileObject; +import org.apache.commons.vfs2.VFS; +import org.junit.Test; + +/** + * Tests JAR attributes. + * + * @version $Id$ + */ +public class JarAttributesTestCase extends TestCase +{ + private void printAttributes(final Map<String, Object> attributes) + { + for (final Map.Entry<String, Object> e : attributes.entrySet()) + { + System.out.println("Key: " + e.getKey() + ", Value: " + e.getValue()); + } + } + + @Test + public void testAttributes() throws Exception + { + final FileObject file = JarProviderTestCase.getTestJar(VFS.getManager(), "test.jar"); + + final Map<String, Object> attributes = file.getContent().getAttributes(); + Assert.assertEquals("1.0", attributes.get("Manifest-Version")); + // Debugging: + // this.printAttributes(attributes); + } + + @Test + public void testNestedAttributes() throws Exception + { + final FileObject nested = JarProviderTestCase.getTestJar(VFS.getManager(), "nested.jar"); + final FileObject file = nested.resolveFile("test.jar"); + + final Map<String, Object> attributes = file.getContent().getAttributes(); + Assert.assertEquals("1.0", attributes.get("Manifest-Version")); + // Debugging: + // this.printAttributes(attributes); + } +} Propchange: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarAttributesTestCase.java ------------------------------------------------------------------------------ svn:keywords = Id Modified: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java?rev=1344924&r1=1344923&r2=1344924&view=diff ============================================================================== --- commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java (original) +++ commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/jar/test/JarProviderTestCase.java Thu May 31 21:56:53 2012 @@ -32,10 +32,15 @@ import org.apache.commons.vfs2.test.Prov /** * Tests for the Jar file system. */ -public class JarProviderTestCase - extends AbstractProviderTestConfig - implements ProviderTestConfig +public class JarProviderTestCase extends AbstractProviderTestConfig implements ProviderTestConfig { + static FileObject getTestJar(final FileSystemManager manager, String name) throws Exception + { + final File jarFile = AbstractVfsTestCase.getTestResourceFile(name); + final String uri = "jar:file:" + jarFile.getAbsolutePath() + "!/"; + return manager.resolveFile(uri); + } + /** * Creates the test suite for the jar file system. */ @@ -45,23 +50,20 @@ public class JarProviderTestCase } /** - * Prepares the file system manager. + * Returns the base folder for tests. */ @Override - public void prepare(final DefaultFileSystemManager manager) - throws Exception + public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - manager.addProvider("jar", new JarFileProvider()); + return JarProviderTestCase.getTestJar(manager, "test.jar"); } /** - * Returns the base folder for tests. + * Prepares the file system manager. */ @Override - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception + public void prepare(final DefaultFileSystemManager manager) throws Exception { - final File jarFile = AbstractVfsTestCase.getTestResourceFile("test.jar"); - final String uri = "jar:file:" + jarFile.getAbsolutePath() + "!/"; - return manager.resolveFile(uri); + manager.addProvider("jar", new JarFileProvider()); } } Modified: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java?rev=1344924&r1=1344923&r2=1344924&view=diff ============================================================================== --- commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java (original) +++ commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/test/ContentTests.java Thu May 31 21:56:53 2012 @@ -93,6 +93,13 @@ public class ContentTests } /** + * Tests attributes + */ + public void testAttributes() throws FileSystemException { + this.getReadFolder().getContent().getAttributes(); + } + + /** * Tests root of file system exists. */ public void testRootURI() throws FileSystemException