public void testReadOnlyBelow()

in testSource/x/CCaseWriteableAndUnversionedTest.java [139:177]


  public void testReadOnlyBelow() 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(), "DL0N1/DL01N1/FL011N0.txt"));
      Assert.assertTrue(vFileRo != null);
      FileUtil.setReadOnlyAttribute(vFileRo.getPath(), true);
      vFileRo.refresh(false, false);

      final MockTransparent mockTransparent = new MockTransparent();

      final CCaseWriteableAndUnversionedCollector collector = new CCaseWriteableAndUnversionedCollector(myProject, mockTransparent);
      collector.collectWritableFiles(VcsUtil.getFilePath(myProject.getBaseDir()));

      final Set<String> ignored = collector.getFilesIgnored();
      Assert.assertEquals(0, ignored.size());

      final TreeSet<VirtualFile> dirs = collector.getDirs();
      //Assert.assertEquals(4, dirs.size());

      final VirtualFile vUnv1 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0"));
      final VirtualFile vUnv2 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0/DL00N0"));
      final VirtualFile vUnv3 = myLocalFileSystem.refreshAndFindFileByIoFile(new File(data.getBase().getPath(), "DL0N0/DL00N1"));
      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(vFileRo.getParent().getParent()));
      Assert.assertTrue(! dirs.contains(data.getBase()));
    } finally {
      data.clear();
    }
  }