in testSource/x/CCaseWriteableAndUnversionedTest.java [48:98]
public void testReadOnlyFileAndIgnoredFolder() throws Exception {
final DirectoryData data = new DirectoryData(myProject.getBaseDir(), 3, 2, ".txt");
try {
data.clear();
data.create();
final VirtualFile vFileRo = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0/FL00N0.txt"));
Assert.assertTrue(vFileRo != null);
FileUtil.setReadOnlyAttribute(vFileRo.getPath(), true);
vFileRo.refresh(false, false);
final MockTransparent mockTransparent = new MockTransparent();
final VirtualFile vFolderIgnored = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N1/DL01N1"));
Assert.assertTrue(vFolderIgnored != null);
mockTransparent.addToIgnored(vFolderIgnored);
final VirtualFile vFUnder1 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N1/DL01N1/FL011N0.txt"));
final VirtualFile vFUnder2 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N1/DL01N1/FL011N1.txt"));
Assert.assertTrue(vFUnder1 != null);
Assert.assertTrue(vFUnder2 != null);
mockTransparent.addToNeverAsk(vFUnder1);
mockTransparent.addToNeverAsk(vFUnder2);
final CCaseWriteableAndUnversionedCollector collector = new CCaseWriteableAndUnversionedCollector(myProject, mockTransparent);
collector.collectWritableFiles(VcsUtil.getFilePath(myProject.getBaseDir()));
final Set<String> ignored = collector.getFilesIgnored();
Assert.assertEquals(1, ignored.size());
Assert.assertEquals(vFolderIgnored.getPath(), ignored.iterator().next());
final TreeSet<VirtualFile> dirs = collector.getDirs();
//Assert.assertEquals(4, dirs.size());
final VirtualFile vUnv1 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0/DL00N0"));
final VirtualFile vUnv2 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0/DL00N1"));
final VirtualFile vUnv3 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N1"));
final VirtualFile vUnv31 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N1/DL01N0"));
Assert.assertTrue(vUnv1 != null && vUnv2 != null && vUnv3 != null && vUnv31 != null);
Assert.assertTrue(dirs.contains(vUnv1));
Assert.assertTrue(dirs.contains(vUnv2));
Assert.assertTrue(dirs.contains(vUnv3));
Assert.assertTrue(dirs.contains(vUnv31));
Assert.assertTrue(! dirs.contains(vFileRo.getParent()));
Assert.assertTrue(! dirs.contains(vFolderIgnored));
Assert.assertTrue(! dirs.contains(data.getBase()));
} finally {
data.clear();
}
}