diff options
author | Jean Michel-Lemieux | 2002-03-22 16:34:49 +0000 |
---|---|---|
committer | Jean Michel-Lemieux | 2002-03-22 16:34:49 +0000 |
commit | e0404c13f28184c7203e32ba1ab39ad2f6c3f6fd (patch) | |
tree | 7224108c455df28fe57d468cd53d1865384e297a /tests | |
parent | 98bdb5fd8623c6a5f6c6f8d0603e7756bfcb2ec7 (diff) | |
download | eclipse.platform.team-e0404c13f28184c7203e32ba1ab39ad2f6c3f6fd.tar.gz eclipse.platform.team-e0404c13f28184c7203e32ba1ab39ad2f6c3f6fd.tar.xz eclipse.platform.team-e0404c13f28184c7203e32ba1ab39ad2f6c3f6fd.zip |
Bug 11609: Disconnecting a project is slow
Diffstat (limited to 'tests')
3 files changed, 98 insertions, 2 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java index d5e21d1c5..932fbf69c 100644 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java +++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/EclipseTest.java @@ -147,7 +147,7 @@ public class EclipseTest extends EclipseWorkspaceTest { public void unmanageResources(IContainer container, String[] hierarchy) throws CoreException, TeamException { IResource[] resources = getResources(container, hierarchy); for (int i=0;i<resources.length;i++) { - CVSWorkspaceRoot.getCVSResourceFor(resources[i]).unmanage(); + CVSWorkspaceRoot.getCVSResourceFor(resources[i]).unmanage(null); } } diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java index 50ba24c33..e4e41a51c 100644 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java +++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/AllTestsCVSResources.java @@ -11,7 +11,8 @@ public class AllTestsCVSResources extends EclipseTest { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(ResourceSyncInfoTest.suite()); - //suite.addTest(EclipseSynchronizerTest.suite()); + suite.addTest(EclipseSynchronizerTest.suite()); + suite.addTest(EclipseFolderTest.suite()); return suite; } diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java new file mode 100644 index 000000000..42662c4c6 --- /dev/null +++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/cvsresources/EclipseFolderTest.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright (c) 2002 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM - Initial API and implementation + ******************************************************************************/ +package org.eclipse.team.tests.ccvs.core.cvsresources; + +import junit.framework.Test; +import junit.framework.TestSuite; +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceVisitor; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.team.ccvs.core.ICVSFolder; +import org.eclipse.team.ccvs.core.ICVSResource; +import org.eclipse.team.ccvs.core.ICVSRunnable; +import org.eclipse.team.core.TeamException; +import org.eclipse.team.internal.ccvs.core.CVSException; +import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; +import org.eclipse.team.tests.ccvs.core.CVSTestSetup; +import org.eclipse.team.tests.ccvs.core.EclipseTest; + +/** + * What does this class do? + */ +public class EclipseFolderTest extends EclipseTest { + public EclipseFolderTest() { + super(); + } + + public EclipseFolderTest(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite = new TestSuite(); + suite.addTestSuite(EclipseFolderTest.class); + return new CVSTestSetup(suite); + } + + protected void assertChildrenHaveSync(IContainer root, final boolean hasSync) throws CoreException, CVSException { + root.accept(new IResourceVisitor() { + public boolean visit(IResource resource) throws CoreException { + try { + ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource); + if(!cvsResource.isIgnored()) { + if(resource.getType()==IResource.FILE) { + assertTrue((cvsResource.getSyncInfo()!=null) == hasSync); + } else { + assertTrue((((ICVSFolder)cvsResource).getFolderSyncInfo()!=null) == hasSync); + } + } + } catch(CVSException e) { + throw new CoreException(e.getStatus()); + } + return true; + } + }); + } + + public void testUnmanageFolder() throws CoreException, TeamException { + IProject project = createProject("testUnmanageFolder_A", new String[] {"a.txt", "folder1/", "folder1/b.txt", "folder1/folder2/", "folder1/folder2/c.txt"}); + ICVSFolder cvsProject = CVSWorkspaceRoot.getCVSFolderFor(project); + assertChildrenHaveSync(project, true); + + // test that unmanaging the project flushes sync info + cvsProject.unmanage(null); + assertChildrenHaveSync(project, false); + + final IProject projectB = createProject("testUnmanageFolder_B", new String[] {"a.txt", "folder1/", "folder1/b.txt", "folder1/folder2/", "folder1/folder2/c.txt"}); + final ICVSFolder cvsProjectB = CVSWorkspaceRoot.getCVSFolderFor(projectB); + assertChildrenHaveSync(projectB, true); + + // test that unmanaging in a CVS runnable flushes too + cvsProjectB.run(new ICVSRunnable() { + public void run(IProgressMonitor monitor) throws CVSException { + try { + assertChildrenHaveSync(projectB, true); + cvsProjectB.unmanage(null); + assertChildrenHaveSync(projectB, false); + } catch(CoreException e) { + throw CVSException.wrapException(e); + } + } + }, null); + assertChildrenHaveSync(projectB, false); + } +}
\ No newline at end of file |