void () { File top = tempDir.newDirectory("top"); File sub1 = createTestDir(top, "sub1"); File link = createSymLink(top.getPath(), sub1.getPath() + "/link"); VirtualFile vLink = refreshAndFind(link); assertNotNull(link.getPath(), vLink); String path = sub1.getPath() + StringUtil.repeat("/" + link.getName() + "/" + sub1.getName(), 10); VirtualFile f = LocalFileSystem.getInstance().findFileByPath(path); assertNotNull(f); while (!VfsUtilCore.pathEqualsTo(f, sub1.getPath())) { if (f.getName().equals(link.getName())) { assertTrue(f.getPath(),f.is(VFileProperty.SYMLINK)); assertTrue(f.getPath(), f.isRecursiveOrCircularSymlink()); } else { assertEquals(f.getPath(), sub1.getName(), f.getName()); assertFalse(f.getPath(),f.is(VFileProperty.SYMLINK)); assertFalse(f.isRecursiveOrCircularSymlink()); } f = f.getParent(); } }