diff options
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java')
-rw-r--r-- | tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java deleted file mode 100644 index 8cdcea0bf..000000000 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/ResourceDeltaTest.java +++ /dev/null @@ -1,272 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.team.tests.ccvs.core.provider; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceProxy; -import org.eclipse.core.resources.IResourceProxyVisitor; -import org.eclipse.core.resources.IResourceStatus; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.team.core.TeamException; -import org.eclipse.team.internal.ccvs.core.CVSException; -import org.eclipse.team.internal.ccvs.core.ICVSFile; -import org.eclipse.team.internal.ccvs.core.ICVSFolder; -import org.eclipse.team.internal.ccvs.core.ICVSResourceVisitor; -import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; -import org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer; -import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo; -import org.eclipse.team.tests.ccvs.core.CVSTestSetup; -import org.eclipse.team.tests.ccvs.core.EclipseTest; - -public class ResourceDeltaTest extends EclipseTest { - - /** - * Constructor for ResourceDeltaTest. - */ - public ResourceDeltaTest() { - super(); - } - - /** - * Constructor for ResourceDeltaTest. - * @param name - */ - public ResourceDeltaTest(String name) { - super(name); - } - - public static Test suite() { - String testName = System.getProperty("eclipse.cvs.testName"); - if (testName == null) { - TestSuite suite = new TestSuite(ResourceDeltaTest.class); - return new CVSTestSetup(suite); - } else { - return new CVSTestSetup(new ResourceDeltaTest(testName)); - } - } - - public void assertNotManaged(ICVSFile cvsFile) throws CVSException { - assertTrue("File " + cvsFile.getName() + " should not be managed", ! cvsFile.isManaged()); - } - - public void assertNotManaged(ICVSFolder cvsFolder) throws CVSException { - assertNotManaged(cvsFolder, false); - } - - public void assertNotManaged(ICVSFolder cvsFolder, boolean rootManaged) throws CVSException { - if (!rootManaged) - assertTrue("Folder " + cvsFolder.getName() + " should not be managed", ! cvsFolder.isManaged()); - assertTrue("Folder " + cvsFolder.getName() + " should not be a cvs folder", ! cvsFolder.isCVSFolder()); - cvsFolder.acceptChildren(new ICVSResourceVisitor() { - public void visitFile(ICVSFile file) throws CVSException { - assertNotManaged(file); - } - public void visitFolder(ICVSFolder folder) throws CVSException { - assertNotManaged(folder, false); - } - }); - } - - public void assertAdditionMarkerFor(IResource resource, boolean exists) throws CoreException { - // Addition markers are no longer used - } - - public void assertDeletionMarkerFor(IResource resource, boolean exists) throws CoreException { - } - - public void testOrphanedSubtree() throws TeamException, CoreException { - IProject project = createProject("testOrphanedSubtree", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - IFolder folder = project.getFolder(new Path("folder1")); - folder.move(new Path("moved"), false, false, null); - folder = project.getFolder(new Path("moved")); - ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder); - assertNotManaged(cvsFolder); - assertAdditionMarkerFor(folder, true); - } - - public void testOrphanedSubsubtree() throws TeamException, CoreException { - IProject project = createProject("testOrphanedSubsubtree", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - IFolder folder = project.getFolder(new Path("folder1")); - IFolder target = project.getFolder("sub"); - target.create(false, true, null); - folder.move(new Path("sub/moved"), false, false, null); - folder = project.getFolder(new Path("sub/moved")); - ICVSFolder cvsFolder = CVSWorkspaceRoot.getCVSFolderFor(folder); - assertNotManaged(cvsFolder); - assertAdditionMarkerFor(target, true); - assertAdditionMarkerFor(folder, false); - } - - public void testDeletionHandling() throws TeamException, CoreException { - IProject project = createProject("testDeletionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - addResources(project, new String[] {"added.txt"}, false); - assertAdditionMarkerFor(project.getFile("added.txt"), false); - deleteResources(project, new String[] {"added.txt", "deleted.txt"}, false); - ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("added.txt")); - assertNotManaged(file); - assertDeletionMarkerFor(project.getFile("added.txt"), false); - file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt")); - assertTrue("File " + file.getName() + " should be managed", file.isManaged()); - ResourceSyncInfo info = file.getSyncInfo(); - assertTrue("File " + file.getName() + " should be marked as deleted", info.isDeleted()); - assertDeletionMarkerFor(project.getFile("deleted.txt"), true); - } - - public void testFileAdditionHandling() throws TeamException, CoreException { - IProject project = createProject("testFileAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - deleteResources(project, new String[] {"deleted.txt"}, false); - assertDeletionMarkerFor(project.getFile("deleted.txt"), true); - addResources(project, new String[] {"deleted.txt"}, false); - ICVSFile file = CVSWorkspaceRoot.getCVSFileFor(project.getFile("deleted.txt")); - assertTrue("File " + file.getName() + " should be managed", file.isManaged()); - ResourceSyncInfo info = file.getSyncInfo(); - assertTrue("File " + file.getName() + " should not be marked as deleted", ! info.isDeleted()); - assertTrue("File " + file.getName() + " should not be marked as addition", ! info.isAdded()); - assertDeletionMarkerFor(project.getFile("deleted.txt"), false); - } - - public void testFolderAdditionHandling() throws TeamException, CoreException { - IProject project = createProject("testFolderAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - IFolder folder = project.getFolder("newfolder"); - folder.create(false, true, null); - assertAdditionMarkerFor(folder, true); - getProvider(project).add(new IResource[] {folder}, IResource.DEPTH_ZERO, DEFAULT_MONITOR); - assertAdditionMarkerFor(folder, false); - } - - /** - * Method setContents is used to set the contents of a java.io.File so we - * can test out-of-sync situations - * - * @param ioFile - */ - private void setContents(File ioFile) throws IOException { - // wait to ensure the timestamp differs from the one Core has - waitMsec(1500); - InputStream in = new BufferedInputStream(getRandomContents()); - OutputStream out = new BufferedOutputStream(new FileOutputStream(ioFile)); - try { - int next = in.read(); - while (next != -1) { - out.write(next); - next = in.read(); - } - } finally { - out.close(); - } - } - - /** - * This tests maks sure that performing a CVS operation on a file that is - * out-of-sync results in the proper exception. - */ - public void testOperationOnOutOfSync() throws CoreException, TeamException, IOException { - IProject project = createProject("testFolderAdditionHandling", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - IFile file = project.getFile("changed.txt"); - setContentsAndEnsureModified(file); - File ioFile = file.getLocation().toFile(); - setContents(ioFile); - try { - updateProject(project, null, false); - } catch (CVSException e) { - // We expect to get an out-of-sync exception - if (e.getStatus().getCode() != IResourceStatus.OUT_OF_SYNC_LOCAL) - throw e; - } - } - - public void testAllCVSFolderRemoval() throws CoreException, TeamException { - IProject project = createProject("testAllCVSFolderRemoval", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - // ensure that all th sync info is loaded - EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE); - // delete the CVS folders from the file system and refresh - String[] cvsFolders = new String[] {"CVS", "folder1/CVS", "folder1/folder2/CVS"}; - deleteIOFiles(project, cvsFolders); - // The project should no longer be managed - assertNotManaged(CVSWorkspaceRoot.getCVSFolderFor(project)); - } - - public void testSomeCVSFolderRemoval() throws CoreException, TeamException { - IProject project = createProject("testAllCVSFolderRemoval", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - // ensure that all th sync info is loaded - EclipseSynchronizer.getInstance().ensureSyncInfoLoaded(new IResource[] {project}, IResource.DEPTH_INFINITE); - // delete the CVS folders from the file system and refresh - String[] cvsFolders = new String[] {"folder1/CVS", "folder1/folder2/CVS"}; - deleteIOFiles(project, cvsFolders); - // The project should no longer be managed - assertNotManaged(CVSWorkspaceRoot.getCVSFolderFor(project.getFolder("folder1")), true); - } - - public void deleteIOFiles(IProject project, String[] cvsFolders) - throws CoreException { - IPath rootPath = project.getLocation(); - for (int i = 0; i < cvsFolders.length; i++) { - String childPath = cvsFolders[i]; - IPath fullPath = rootPath.append(childPath); - deepDelete(fullPath.toFile()); - } - project.refreshLocal(IResource.DEPTH_INFINITE, null); - } - - private static void deepDelete(File resource) { - if (resource.isDirectory()) { - File[] fileList = resource.listFiles(); - for (int i = 0; i < fileList.length; i++) { - deepDelete(fileList[i]); - } - } - resource.delete(); - } - - public void testCVSFodlersMarkedTeamPrivate() throws CoreException, TeamException { - IProject project = createProject("testTeamPrivatefolders", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - - project.delete(false /* preserve contents */, true, null); - project.create(null); - project.open(null); - project.accept(new IResourceProxyVisitor() { - public boolean visit(IResourceProxy proxy) throws CoreException { - if(proxy.getName().equals("CVS")) { - fail("all folders should be marked as team private. This one was not:" + proxy.requestResource().getFullPath()); - } - return true; - } - }, 0); - } - - public void testExternalDeletion() throws CoreException, TeamException { - IProject project = createProject("testExternalDeletion", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - IFile file = project.getFile("folder1/a.txt"); - deepDelete(file.getLocation().toFile()); - file.refreshLocal(IResource.DEPTH_ZERO, DEFAULT_MONITOR); - assertTrue(!file.exists()); - ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor(file); - assertTrue(cvsFile.isManaged()); - byte[] syncBytes = cvsFile.getSyncBytes(); - assertTrue(ResourceSyncInfo.isDeletion(syncBytes)); - } -} |