diff -r 7cb7f717f5d0 openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileSystemRefreshTest.java --- a/openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileSystemRefreshTest.java Mon Nov 14 16:21:41 2011 +0100 +++ b/openide.filesystems/test/unit/src/org/openide/filesystems/MultiFileSystemRefreshTest.java Mon Nov 14 21:45:47 2011 +0100 @@ -44,8 +44,8 @@ package org.openide.filesystems; +import java.io.File; import org.netbeans.junit.*; -import junit.textui.TestRunner; /** * Test that MultiFileSystem does not refresh more than it needs to @@ -59,11 +59,8 @@ super(name); } - public static void main(String[] args) { - TestRunner.run(new NbTestSuite(MultiFileSystemRefreshTest.class)); - } - private FileSystem fs1, fs2; + @Override protected void setUp() throws Exception { super.setUp(); fs1 = TestUtilHid.createLocalFileSystem("mfsrefresh1"+getName() + "1", new String[] { @@ -75,6 +72,7 @@ "e/g.txt", }); } + @Override protected void tearDown() throws Exception { TestUtilHid.destroyLocalFileSystem(getName() + "1"); TestUtilHid.destroyLocalFileSystem(getName() + "2"); @@ -117,6 +115,23 @@ assertEquals(1, e.getChildren().length); assertEquals(1, count); } + + public void testRefreshMissingRoot() throws Exception { + LocalFileSystem fs = new LocalFileSystem(); + clearWorkDir(); + fs.setRootDirectory(getWorkDir()); + + MultiFileSystem mfs = new MultiFileSystem(fs1, fs2, fs); + FileObject b = mfs.findResource("a/b"); + assertNotNull(b); + assertEquals(2, b.getChildren().length); + File x = new File(new File(new File(getWorkDir(), "a"), "b"), "x.txt"); + x.getParentFile().mkdirs(); + assertTrue("File created", x.createNewFile()); + b.refresh(); +// fixes the refresh: b.getFileSystem().refresh(true); + assertEquals("Three now", 3, b.getChildren().length); + } public void fileAttributeChanged(FileAttributeEvent fe) { System.err.println("attr changed: " + fe);