Lines 47-53
Link Here
|
47 |
import java.lang.reflect.Field; |
47 |
import java.lang.reflect.Field; |
48 |
import java.util.Map; |
48 |
import java.util.Map; |
49 |
import java.util.Set; |
49 |
import java.util.Set; |
|
|
50 |
import org.netbeans.junit.MockServices; |
50 |
import org.netbeans.junit.NbTestCase; |
51 |
import org.netbeans.junit.NbTestCase; |
|
|
52 |
import org.netbeans.modules.versioning.spi.VersioningSupport; |
51 |
import org.netbeans.modules.versioning.util.Utils; |
53 |
import org.netbeans.modules.versioning.util.Utils; |
52 |
|
54 |
|
53 |
/** |
55 |
/** |
Lines 231-236
Link Here
|
231 |
} |
233 |
} |
232 |
|
234 |
|
233 |
public void testExcludeUserDir () throws Exception { |
235 |
public void testExcludeUserDir () throws Exception { |
|
|
236 |
MockServices.setServices(new Class[] { |
237 |
MercurialVCS.class}); |
238 |
|
234 |
Field f = Utils.class.getDeclaredField("unversionedFolders"); |
239 |
Field f = Utils.class.getDeclaredField("unversionedFolders"); |
235 |
f.setAccessible(true); |
240 |
f.setAccessible(true); |
236 |
f.set(Utils.class, null); |
241 |
f.set(Utils.class, null); |
Lines 246-252
Link Here
|
246 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1)); |
251 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1)); |
247 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1f1)); |
252 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1f1)); |
248 |
|
253 |
|
249 |
Mercurial.getInstance().clearAncestorCaches(); |
254 |
Mercurial.getInstance().versionedFilesChanged(); |
250 |
f.set(Utils.class, null); |
255 |
f.set(Utils.class, null); |
251 |
// version also the userdir |
256 |
// version also the userdir |
252 |
System.setProperty("versioning.netbeans.user.versioned", "true"); |
257 |
System.setProperty("versioning.netbeans.user.versioned", "true"); |
Lines 259-269
Link Here
|
259 |
File r1fld1 = createFolder(r1, "folder1"); |
264 |
File r1fld1 = createFolder(r1, "folder1"); |
260 |
File r1fld1f1 = createFile(r1fld1, "f1"); |
265 |
File r1fld1f1 = createFile(r1fld1, "f1"); |
261 |
System.setProperty("netbeans.user", r1fld1.getAbsolutePath()); |
266 |
System.setProperty("netbeans.user", r1fld1.getAbsolutePath()); |
262 |
Mercurial.getInstance().clearAncestorCaches(); |
267 |
Mercurial.getInstance().versionedFilesChanged(); |
263 |
assertEquals(r1, Mercurial.getInstance().getRepositoryRoot(r1)); |
268 |
assertEquals(r1, Mercurial.getInstance().getRepositoryRoot(r1)); |
264 |
assertEquals(r1, Mercurial.getInstance().getRepositoryRoot(r1f1)); |
269 |
assertEquals(r1, Mercurial.getInstance().getRepositoryRoot(r1f1)); |
265 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1fld1)); |
270 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1fld1)); |
266 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1fld1f1)); |
271 |
assertNull(Mercurial.getInstance().getRepositoryRoot(r1fld1f1)); |
|
|
272 |
|
273 |
// logic in VersioningManager used to mark all parents of an excluded tree as unversioned too - that's obviously wrong |
274 |
// we want to exclude only userdir, not the whole disk |
275 |
assertNull(VersioningSupport.getOwner(r1fld1f1)); |
276 |
assertNull(VersioningSupport.getOwner(r1fld1)); |
277 |
// only subtree is unversioned, r1 itself is versioned |
278 |
assertEquals(MercurialVCS.class, VersioningSupport.getOwner(r1).getClass()); |
279 |
assertEquals(MercurialVCS.class, VersioningSupport.getOwner(r1f1).getClass()); |
267 |
} |
280 |
} |
268 |
|
281 |
|
269 |
private void clearCachedValues() throws Exception { |
282 |
private void clearCachedValues() throws Exception { |