diff -r 1c052e32d725 openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileObjectTestHid.java --- a/openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileObjectTestHid.java Wed Mar 09 05:35:09 2011 +0100 +++ b/openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileObjectTestHid.java Mon Apr 04 18:02:53 2011 +0200 @@ -44,6 +44,7 @@ package org.openide.filesystems; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -61,6 +62,7 @@ } + @Override protected String[] getResources (String testName) { return resources; } @@ -219,4 +221,42 @@ assertEquals("1st test", "mal", t.getAttribute("x")); assertEquals("2nd test", "mal", t.getAttribute("x")); } + + public void testMultiFileSystemWithOverridenAttributes() throws Exception { + MultiFileSystem mfs = (MultiFileSystem)this.testedFS; + List all = new ArrayList(Arrays.asList(mfs.getDelegates())); + File f = writeFile("layer.xml", + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + ""); + XMLFileSystem xml = new XMLFileSystem(f.toURI().toURL()); + all.add(xml); + mfs.setDelegates(all.toArray(new FileSystem[0])); + + + FileObject folder = mfs.findResource("org-sepix/Panes/"); + + for (FileObject fileObject : folder.getChildren()) { + assertEquals("should be 100", 100, fileObject.getAttribute("position")); + + fileObject.setAttribute("position", 200); + assertEquals("should be 200", 200, fileObject.getAttribute("position")); + assertEquals("should be 200 still", 200, fileObject.getAttribute("position")); + } + } + + private File writeFile(String name, String content) throws IOException { + File f = new File(getWorkDir(), name); + java.io.FileWriter w = new java.io.FileWriter(f); + w.write(content); + w.close(); + return f; + } + } diff -r 1c052e32d725 openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java --- a/openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java Wed Mar 09 05:35:09 2011 +0100 +++ b/openide.filesystems/test/unit/src/org/openide/filesystems/XMLFileSystemTestHid.java Mon Apr 04 18:02:53 2011 +0200 @@ -333,6 +333,32 @@ assertNotNull("Returned", instance); assertEquals("Right class", Count.class, instance.getClass()); } + public void testMultiFileSystemWithOverridenAttributes() throws Exception { + File f = writeFile("layer.xml", + "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + ""); + + xfs = FileSystemFactoryHid.createXMLSystem(getName(), this, f.toURI().toURL()); + final LocalFileSystem lfs = new LocalFileSystem(); + lfs.setRootDirectory(getWorkDir()); + MultiFileSystem mfs = new MultiFileSystem(new FileSystem[] { lfs, xfs }); + FileObject folder = mfs.findResource("org-sepix/Panes/"); + + for (FileObject fileObject : folder.getChildren()) { + assertEquals("should be 100", 100, fileObject.getAttribute("position")); + + fileObject.setAttribute("position", 200); + assertEquals("should be 200", 200, fileObject.getAttribute("position")); + assertEquals("should be 200 still", 200, fileObject.getAttribute("position")); + } + } public void testGetAttributeDoesNotAccessAllAttributes() throws Exception { File f = writeFile("layer.xml",