diff options
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java')
-rw-r--r-- | tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java deleted file mode 100644 index 22731aab6..000000000 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/CompareOperationTests.java +++ /dev/null @@ -1,184 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 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.ui; - -import java.util.*; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.team.core.TeamException; -import org.eclipse.team.internal.ccvs.core.*; -import org.eclipse.team.internal.ccvs.core.resources.CVSWorkspaceRoot; -import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder; -import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo; -import org.eclipse.team.internal.ccvs.ui.operations.RemoteCompareOperation; -import org.eclipse.team.tests.ccvs.core.CVSTestSetup; -import org.eclipse.ui.IWorkbenchPart; - -public class CompareOperationTests extends CVSOperationTest { - - public class TestRemoteCompareOperation extends RemoteCompareOperation { - private ICVSRemoteFolder leftTree, rightTree; - - public TestRemoteCompareOperation(IWorkbenchPart part, ICVSRemoteResource resource, CVSTag tag) { - super(part, resource, tag); - } - - /* - * Override to prevent compare editor from opening and to capture the results - */ - protected void openCompareEditor(CompareTreeBuilder builder) { - this.leftTree = builder.getLeftTree(); - this.rightTree = builder.getRightTree(); - } - - public ICVSRemoteFolder getLeftTree() { - return leftTree; - } - - public ICVSRemoteFolder getRightTree() { - return rightTree; - } - - } - - public CompareOperationTests() { - super(); - } - - public CompareOperationTests(String name) { - super(name); - } - - public static Test suite() { - String testName = System.getProperty("eclipse.cvs.testName"); - if (testName == null) { - TestSuite suite = new TestSuite(CompareOperationTests.class); - return new CVSTestSetup(suite); - } else { - return new CVSTestSetup(new CompareOperationTests(testName)); - } - } - - - /** - * Assert that the revisions of any files in the remote tree match the revisions in the local tree - */ - - private void assertRevisionsMatch(ICVSRemoteFolder folder, IProject project, String[] filePathsWithRevisions, String[] filePathsWithoutRevisions) throws CoreException { - if (filePathsWithRevisions == null) filePathsWithRevisions = new String[0]; - if (filePathsWithoutRevisions == null) filePathsWithoutRevisions = new String[0]; - IResource[] filesWithRevisions = getResources(project, filePathsWithRevisions); - IResource[] filesWithoutRevisions = getResources(project, filePathsWithoutRevisions); - ICVSRemoteFile[] files= getAllFiles(folder); - assertTrue("The number of remote files with differences does not match the expected number", files.length == (filePathsWithoutRevisions.length + filePathsWithRevisions.length)); - for (int i = 0; i < files.length; i++) { - ICVSRemoteFile remoteFile = files[i]; - for (int j = 0; j < filesWithRevisions.length; j++) { - IResource local = filesWithRevisions[j]; - ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)local); - if (cvsFile.getRepositoryRelativePath().equals(remoteFile.getRepositoryRelativePath())) { - ResourceSyncInfo info = cvsFile.getSyncInfo(); - assertNotNull(info); - String localRevision = info.getRevision(); - assertNotNull(localRevision); - String remoteRevision = files[i].getRevision(); - assertNotNull(remoteRevision); - assertEquals("Revisions do not match for " + local.getProjectRelativePath(), localRevision, remoteRevision); - } - } - for (int j = 0; j < filesWithoutRevisions.length; j++) { - IResource local = filesWithoutRevisions[j]; - ICVSFile cvsFile = CVSWorkspaceRoot.getCVSFileFor((IFile)local); - if (cvsFile.getRepositoryRelativePath().equals(remoteFile.getRepositoryRelativePath())) { - ResourceSyncInfo info = cvsFile.getSyncInfo(); - assertNotNull(info); - String localRevision = info.getRevision(); - assertNotNull(localRevision); - // Cannot assert anything about the remote revision - } - } - } - } - - private ICVSRemoteFile[] getAllFiles(ICVSRemoteFolder folder) { - List result = new ArrayList(); - ICVSRemoteResource[] children = ((RemoteFolder)folder).getChildren(); - if (children != null) { - for (int i = 0; i < children.length; i++) { - ICVSRemoteResource resource = children[i]; - if (resource.isContainer()) { - result.addAll(Arrays.asList(getAllFiles((ICVSRemoteFolder)resource))); - } else { - result.add(resource); - } - } - } - return (ICVSRemoteFile[]) result.toArray(new ICVSRemoteFile[result.size()]); - } - - public void testCompareWithLatest() throws TeamException, CoreException { - // Create a test project - IProject project = createProject(new String[] { "file1.txt", "folder1/", "folder1/a.txt", "folder1/b.txt"}); - CVSTag v1 = new CVSTag("v1", CVSTag.VERSION); - tagProject(project, v1, false); - - // Checkout and modify a copy (and commit the changes) - IProject copy = checkoutCopy(project, "-copy"); - setContentsAndEnsureModified(copy.getFile("folder1/a.txt")); - addResources(copy, new String[] { "folder1/newFile", "folder2/folder3/add.txt" }, false); - deleteResources(copy, new String[] {"folder1/b.txt"}, false); - commitResources(new IResource[] {copy}, IResource.DEPTH_INFINITE); - - // Run the compare operation of the project folder - ICVSRemoteResource remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project); - TestRemoteCompareOperation op = new TestRemoteCompareOperation(null, remoteResource, v1); - run(op); - assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt", "folder1/b.txt"}, null); - assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, new String[] {"folder1/newFile", "folder2/folder3/add.txt" } /* files with no revision */); - - - // Run the compare operation of the project folder the other way - remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project); - remoteResource = ((ICVSRemoteFolder)remoteResource).forTag(v1); - op = new TestRemoteCompareOperation(null, remoteResource, CVSTag.DEFAULT); - run(op); - assertRevisionsMatch(op.getLeftTree(), project, new String[] {"folder1/a.txt"}, new String[] {"folder1/b.txt"}); - assertRevisionsMatch(op.getRightTree(), copy, new String[] {"folder1/a.txt", "folder1/newFile", "folder2/folder3/add.txt" }, null /* files with no revision */); - - // Run the compare operation of a subfolder - remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(project.getFolder("folder1")); - op = new TestRemoteCompareOperation(null, remoteResource, v1); - run(op); - assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt", "folder1/b.txt"}, null); - assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt"}, new String[] {"folder1/newFile" } /* files with no revision */); - - // Run the operation on a single file - remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(copy.getFile("folder1/a.txt")); - op = new TestRemoteCompareOperation(null, remoteResource, v1); - run(op); - assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt"}, null); - assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, null /* files with no revision */); - - // Run the operation on a single file using RemoteCompareOperation.getTag - // to determine the tag - remoteResource = CVSWorkspaceRoot.getRemoteResourceFor(copy.getFile("folder1/a.txt")); - op = new TestRemoteCompareOperation(null, remoteResource, RemoteCompareOperation.getTag(CVSWorkspaceRoot.getRemoteResourceFor(project.getFile("folder1/a.txt")))); - run(op); - assertRevisionsMatch(op.getRightTree(), project, new String[] {"folder1/a.txt"}, null); - assertRevisionsMatch(op.getLeftTree(), copy, new String[] {"folder1/a.txt" }, null /* files with no revision */); - - } - -} |