diff options
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java')
-rw-r--r-- | tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java | 544 |
1 files changed, 0 insertions, 544 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java deleted file mode 100644 index 707cd0d9d..000000000 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/core/provider/IsModifiedTests.java +++ /dev/null @@ -1,544 +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.core.provider; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.*; - -import junit.framework.Test; -import junit.framework.TestSuite; - -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.*; -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.util.ResourceStateChangeListeners; -import org.eclipse.team.tests.ccvs.core.CVSTestSetup; -import org.eclipse.team.tests.ccvs.core.EclipseTest; - -/** - * Test isModified on file, folders and projects. - */ -public class IsModifiedTests extends EclipseTest { - - Set previouslyModified = new HashSet(); - Map changedResources = new HashMap(); - IResourceStateChangeListener listener = new IResourceStateChangeListener() { - public void resourceSyncInfoChanged(IResource[] changedResources) { - try { - for (int i = 0; i < changedResources.length; i++) { - IResource resource = changedResources[i]; - ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource); - recordModificationState(cvsResource); - recordParents(cvsResource); - if (cvsResource.isFolder()) { - recordChildren((ICVSFolder)cvsResource); - } - } - } catch (CVSException e) { - fail(e.getMessage()); - } - } - public void externalSyncInfoChange(IResource[] changedResources) { - resourceSyncInfoChanged(changedResources); - } - private void recordChildren(ICVSFolder folder) { - try { - folder.accept(new ICVSResourceVisitor() { - public void visitFile(ICVSFile file) throws CVSException { - recordModificationState(file); - } - public void visitFolder(ICVSFolder folder) throws CVSException { - recordModificationState(folder); - folder.acceptChildren(this); - } - }); - } catch (CVSException e) { - fail(e.getMessage()); - } - } - private void recordParents(ICVSResource cvsResource) throws CVSException { - if (cvsResource.getIResource().getType() == IResource.ROOT) return; - recordModificationState(cvsResource); - recordParents(cvsResource.getParent()); - } - private void recordModificationState(ICVSResource cvsResource) throws CVSException { - IsModifiedTests.this.changedResources.put(cvsResource.getIResource(), cvsResource.isModified(null) ? Boolean.TRUE : Boolean.FALSE); - } - public void resourceModified(IResource[] changedResources) { - try { - for (int i = 0; i < changedResources.length; i++) { - IResource resource = changedResources[i]; - ICVSResource cvsResource = CVSWorkspaceRoot.getCVSResourceFor(resource); - IsModifiedTests.this.changedResources.put(resource, cvsResource.isModified(null) ? Boolean.TRUE : Boolean.FALSE); - recordParents(cvsResource); - if (cvsResource.isFolder()) { - recordChildren((ICVSFolder)cvsResource); - } - } - } catch (CVSException e) { - fail(e.getMessage()); - } - } - public void projectConfigured(IProject project) { - } - public void projectDeconfigured(IProject project) { - } - }; - - /** - * Constructor for CVSProviderTest - */ - public IsModifiedTests() { - super(); - } - - /** - * Constructor for CVSProviderTest - */ - public IsModifiedTests(String name) { - super(name); - } - - public static Test suite() { - String testName = System.getProperty("eclipse.cvs.testName"); - if (testName == null) { - TestSuite suite = new TestSuite(IsModifiedTests.class); - return new CVSTestSetup(suite); - } else { - return new CVSTestSetup(new IsModifiedTests(testName)); - } - } - - /** - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception { - super.setUp(); - previouslyModified.clear(); - changedResources.clear(); - ResourceStateChangeListeners.getListener().addResourceStateChangeListener(listener); - } - - /** - * @see junit.framework.TestCase#tearDown() - */ - protected void tearDown() throws Exception { - previouslyModified.clear(); - changedResources.clear(); - ResourceStateChangeListeners.getListener().removeResourceStateChangeListener(listener); - super.tearDown(); - } - - /* - * Assert that the modification state of the provided resources matches the - * provided state and that the other are the opposite state. - */ - private void assertModificationState(IContainer container, String[] resources, final boolean listedResourcesShouldBeModified) throws CVSException { - final ICVSFolder rootFolder = CVSWorkspaceRoot.getCVSFolderFor(container); - final List resourceList = new ArrayList(); - final Set modifiedResources = new HashSet(); - if (resources != null) { - for (int i = 0; i < resources.length; i++) { - String string = resources[i]; - resourceList.add(new Path(string)); - } - } - waitForIgnoreFileHandling(); - rootFolder.accept(new ICVSResourceVisitor() { - public void visitFile(ICVSFile file) throws CVSException { - assertModificationState(file); - } - public void visitFolder(ICVSFolder folder) throws CVSException { - // find the deepest mistake - folder.acceptChildren(this); - assertModificationState(folder); - } - public void assertModificationState(ICVSResource resource) throws CVSException { - IPath relativePath = new Path(resource.getRelativePath(rootFolder)); - boolean resourceModified = resource.isModified(null); - boolean resourceListed = resourceList.contains(relativePath); - assertTrue(resource.getIResource().getFullPath().toString() - + (resourceModified ? " should not be modified but is" : " should be modified but isn't"), - (listedResourcesShouldBeModified && (resourceModified == resourceListed)) || - (!listedResourcesShouldBeModified && (!resourceModified == resourceListed))); - -// Commented because the CVS core doesn't rely on resourceModify to be called. -// IResource iResource = resource.getIResource(); -// if (resource.isModified()) { -// modifiedResources.add(iResource); -// if (!wasPreviouslyModified(iResource)) { -// // the state has changed, make sure we got a notification -// Boolean b = (Boolean)changedResources.get(iResource); -// assertTrue("No notification received for state change of " + iResource.getFullPath().toString(), -// b == Boolean.TRUE); -// } -// } else { -// if (wasPreviouslyModified(iResource)) { -// // the state has changed, make sure we got a notification -// Boolean b = (Boolean)changedResources.get(iResource); -// assertTrue("No notification received for state change of " + iResource.getFullPath().toString(), -// b == Boolean.FALSE); -// } -// } - } - public boolean wasPreviouslyModified(IResource iResource) { - return previouslyModified.contains(iResource); - } - }); - changedResources.clear(); - previouslyModified.clear(); - previouslyModified.addAll(modifiedResources); - } - - /** - * Assert that a project (and all it's children) is clean after it is - * created and shared. - * - * @see org.eclipse.team.tests.ccvs.core.EclipseTest#createProject(java.lang.String, java.lang.String) - */ - protected IProject createProject(String prefix, String[] resources) throws CoreException, TeamException { - IProject project = super.createProject(prefix, resources); - assertModificationState(project, null, true); - return project; - } - - - public void testFileModifications() throws CoreException, TeamException { - IProject project = createProject("testFileModifications", new String[] { "changed.txt", "deleted.txt", "folder1/", "folder1/a.txt" }); - // change two files, commit one and revert the other - setContentsAndEnsureModified(project.getFile("changed.txt")); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - setContentsAndEnsureModified(project.getFile(new Path("folder1/a.txt"))); - assertModificationState(project, new String[] {".", "changed.txt", "folder1/", "folder1/a.txt"}, true); - commitResources(project, new String[] {"folder1/a.txt"}); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - replace(new IResource[] {project.getFile("changed.txt")}, null, true); - assertModificationState(project, null, true); - } - - public void testFileDeletions() throws CoreException, TeamException { - IProject project = createProject("testFileDeletions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" }); - // delete and commit a file - project.getFile("folder1/deleted.txt").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt"}, true); - commitResources(project, new String[] {"folder1/deleted.txt"}); - assertModificationState(project, null, true); - // modify, delete and revert a file - setContentsAndEnsureModified(project.getFile("changed.txt")); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - project.getFile("changed.txt").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - replace(new IResource[] {project.getFile("changed.txt")}, null, true); - assertModificationState(project, null, true); - // modify, delete and commit a file - setContentsAndEnsureModified(project.getFile("changed.txt")); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - project.getFile("changed.txt").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - commitResources(project, new String[] {"changed.txt"}); - assertModificationState(project, null, true); - // delete, recreate and commit - project.getFile("folder1/a.txt").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt"}, true); - IResource[] addedResources = buildResources(project, new String[] {"folder1/a.txt"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt"}, true); - commitResources(project, new String[] {"folder1/a.txt"}); - assertModificationState(project, null, true); - - } - - public void testFileAdditions() throws CoreException, TeamException { - IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" }); - // create, add and commit a file - IResource[] addedResources = buildResources(project, new String[] {"folder1/added.txt"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/added.txt"}, true); - addResources(addedResources); - assertModificationState(project, new String[] {".", "folder1/", "folder1/added.txt"}, true); - commitResources(project, new String[] {"folder1/added.txt"}); - assertModificationState(project, null, true); - // create, add and delete a file - addResources(project, new String[] {"added.txt"}, false); - assertModificationState(project, new String[] {".", "added.txt"}, true); - project.getFile("added.txt").delete(false, false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - // create and delete a file - addedResources = buildResources(project, new String[] {"folder1/another.txt"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/another.txt"}, true); - project.getFile("folder1/another.txt").delete(false, false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - // create and ignore a file - addedResources = buildResources(project, new String[] {"ignored.txt"}, false); - assertModificationState(project, new String[] {".", "ignored.txt"}, true); - project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored.txt".getBytes()), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", ".cvsignore"}, true); - addResources(new IResource[] {project.getFile(".cvsignore")}); - assertModificationState(project, new String[] {".", ".cvsignore"}, true); - commitResources(project, new String[] {".cvsignore"}); - assertModificationState(project, null, true); - // delete the .cvsignore to see the modification come back - project.getFile(".cvsignore").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "ignored.txt", ".cvsignore"}, true); - commitResources(project, new String[] {".cvsignore"}); - assertModificationState(project, new String[] {".", "ignored.txt"}, true); - // re-add the ignore and then delete the ignored - project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored.txt".getBytes()), false, DEFAULT_MONITOR); - addResources(new IResource[] {project.getFile(".cvsignore")}); - assertModificationState(project, new String[] {".", ".cvsignore"}, true); - commitResources(project, new String[] {".cvsignore"}); - assertModificationState(project, null, true); - project.getFile("ignored.txt").delete(false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - // add the ignored file to version control - buildResources(project, new String[] {"ignored.txt"}, false); - assertModificationState(project, null, true); - addResources(new IResource[] {project.getFile("ignored.txt")}); - assertModificationState(project, new String[] {".", "ignored.txt"}, true); - commitProject(project); - assertModificationState(project, null, true); - } - - public void testFileMoveAndCopy() throws CoreException, TeamException { - IProject project = createProject("testFileMoveAndCopy", new String[] { "changed.txt", "folder1/", "folder2/", "folder1/a.txt" }); - // move a file - project.getFile("folder1/a.txt").move(project.getFile("folder2/a.txt").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true); - // commit the source - commitResources(project, new String[] {"folder1/a.txt"}); - assertModificationState(project, new String[] {".", "folder2/", "folder2/a.txt"}, true); - // copy the destination back to the source - project.getFolder("folder1").create(false, true, DEFAULT_MONITOR); - project.getFile("folder2/a.txt").copy(project.getFile("folder1/a.txt").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true); - // add the source, delete the destination and commit - addResources(new IResource[] {project.getFile("folder1/a.txt")}); - project.getFile("folder2/a.txt").delete(false, DEFAULT_MONITOR); - commitProject(project); - assertModificationState(project, null, true); - // Do the above without committing the source - project.getFile("folder1/a.txt").move(project.getFile("folder2/a.txt").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/a.txt", "folder2/", "folder2/a.txt"}, true); - // copy the destination back to the source - project.getFile("folder2/a.txt").copy(project.getFile("folder1/a.txt").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder2/", "folder2/a.txt"}, true); - addResources(new IResource[] {project.getFile("folder2/a.txt")}); - commitProject(project); - assertModificationState(project, null, true); - } - - public void testFolderAdditions() throws CoreException, TeamException { - IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" }); - // create a folder - project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true); - addResources(new IResource[] {project.getFolder("folder1/folder2/")}); - assertModificationState(project, null, true); - - // create a folder - project.getFolder("folder1/folder2/folder3").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3"}, true); - // add some children - buildResources(project, new String[] { - "folder1/folder2/folder3/add1.txt", - "folder1/folder2/folder3/add2.txt", - "folder1/folder2/folder3/folder4/", - "folder1/folder2/folder3/folder5/"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3", - "folder1/folder2/folder3/add1.txt", - "folder1/folder2/folder3/add2.txt", - "folder1/folder2/folder3/folder4/", - "folder1/folder2/folder3/folder5/"}, true); - // delete some children - project.getFile("folder1/folder2/folder3/add2.txt").delete(false, DEFAULT_MONITOR); - project.getFolder("folder1/folder2/folder3/folder5/").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3", - "folder1/folder2/folder3/add1.txt", - "folder1/folder2/folder3/folder4/"}, true); - // add to version control - addResources(new IResource[] { - project.getFile("folder1/folder2/folder3/add1.txt"), - project.getFolder("folder1/folder2/folder3/folder4/")}); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/folder3", - "folder1/folder2/folder3/add1.txt"}, true); - // commit - commitResources(project, new String[] {"folder1/folder2/folder3/add1.txt"}); - assertModificationState(project, null, true); - - // create a folder - project.getFolder("folder1/ignored").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/"}, true); - // add some files - buildResources(project, new String[] {"folder1/ignored/file.txt"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true); - // ignore the folder - project.getFile("folder1/.cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true); - addResources(new IResource[] {project.getFile("folder1/.cvsignore")}); - assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true); - commitResources(project, new String[] {"folder1/.cvsignore"}); - assertModificationState(project, null, true); - // delete the .cvsignore to see the modification come back - project.getFile("folder1/.cvsignore").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore", "folder1/ignored/", "folder1/ignored/file.txt"}, true); - commitResources(project, new String[] {"folder1/.cvsignore"}); - assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true); - // re-add the .cvsignore and then delete the ignored - project.getFile("folder1/.cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/.cvsignore"}, true); - addResources(new IResource[] {project.getFile("folder1/.cvsignore")}); - commitResources(project, new String[] {"folder1/.cvsignore"}); - assertModificationState(project, null, true); - project.getFolder("folder/ignored").delete(false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - // add the ignored file to version control - buildResources(project, new String[] {"folder1/ignored/file.txt"}, false); - assertModificationState(project, null, true); - addResources(new IResource[] {project.getFile("folder1/ignored/file.txt")}); - assertModificationState(project, new String[] {".", "folder1/", "folder1/ignored/", "folder1/ignored/file.txt"}, true); - commitProject(project); - assertModificationState(project, null, true); - } - - public void testFolderDeletions() throws CoreException, TeamException { - IProject project = createProject("testFileAdditions", new String[] { "changed.txt", "folder1/", "folder1/deleted.txt", "folder1/a.txt" }); - // create a folder - project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true); - // delete the folder - project.getFolder("folder1/folder2").delete(false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - - // create a folder - project.getFolder("folder1/folder2").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/"}, true); - // add some children - buildResources(project, new String[] {"folder1/folder2/file.txt"}, false); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder2/", "folder1/folder2/file.txt"}, true); - // delete the folder - project.getFolder("folder1/folder2").delete(false, DEFAULT_MONITOR); - assertModificationState(project, null, true); - - // delete a shared folder with files - project.getFolder("folder1").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true); - // recreate folders and files - project.getFolder("folder1").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true); - replace(new IResource[] {project.getFile("folder1/deleted.txt"), project.getFile("folder1/a.txt")}, null, true); - assertModificationState(project, null, true); - - // delete a shared folder with files - project.getFolder("folder1").delete(false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/deleted.txt", "folder1/a.txt"}, true); - // commit file deletions - commitProject(project); - assertModificationState(project, null, true); - } - - public void testFolderMoveAndCopy() throws CoreException, TeamException { - IProject project = createProject("testFolderMoveAndCopy", new String[] { "changed.txt", "folder1/", "folder2/", "folder1/a.txt" , "folder1/folder3/file.txt"}); - // move a file - project.getFolder("folder1/folder3").move(project.getFolder("folder2/folder3").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true); - // commit the source - commitResources(project, new String[] {"folder1/folder3"}); - assertModificationState(project, new String[] {".", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true); - // copy the destination back to the source - project.getFolder("folder2/folder3/").copy(project.getFolder("folder1/folder3").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true); - // add the source, delete the destination and commit - addResources(new IResource[] {project.getFile("folder1/folder3/file.txt")}); - project.getFolder("folder2/folder3").delete(false, DEFAULT_MONITOR); - commitProject(project); - assertModificationState(project, null, true); - // Do the above without committing the source - project.getFolder("folder1/folder3").move(project.getFolder("folder2/folder3").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder1/", "folder1/folder3", "folder1/folder3/file.txt", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true); - // copy the destination back to the source - project.getFolder("folder2/folder3/").copy(project.getFolder("folder1/folder3").getFullPath(), false, DEFAULT_MONITOR); - assertModificationState(project, new String[] {".", "folder2/", "folder2/folder3/", "folder2/folder3/file.txt"}, true); - addResources(new IResource[] {project.getFolder("folder2/folder3/")}); - commitProject(project); - assertModificationState(project, null, true); - } - - public void testUpdate() throws TeamException, CoreException, IOException { - // Create a test project, import it into cvs and check it out - IProject project = createProject("testUpdate", new String[] { "changed.txt", "merged.txt", "deleted.txt", "folder1/", "folder1/a.txt" }); - - // Check the project out under a different name - IProject copy = checkoutCopy(project, "-copy"); - assertModificationState(copy, null, true); - - // Perform some operations on the copy and commit - addResources(copy, new String[] { "added.txt", "folder2/", "folder2/added.txt" }, false); - setContentsAndEnsureModified(copy.getFile("changed.txt")); - setContentsAndEnsureModified(copy.getFile("merged.txt")); - deleteResources(new IResource[] {copy.getFile("deleted.txt")}); - assertModificationState(copy, new String[] {".", "added.txt", "folder2/", "folder2/added.txt", "changed.txt", "merged.txt", "deleted.txt"}, true); - commitResources(new IResource[] {copy}, IResource.DEPTH_INFINITE); - assertModificationState(copy, null, true); - - // update the project and check status - setContentsAndEnsureModified(project.getFile("merged.txt")); - updateProject(project, null, false); - assertModificationState(project, new String[] {".", "merged.txt"}, true); - // can't commit because of merge - // commitProject(project); - // assertModificationState(project, null, true); - } - - public void testUpdateIgnoreLocal() throws TeamException, CoreException, IOException { - // Create a test project, import it into cvs and check it out - IProject project = createProject("testUpdateIgnoreLocal", new String[] { "changed.txt", "merged.txt", "deleted.txt", "folder1/", "folder1/a.txt" }); - - // modifiy a file - setContentsAndEnsureModified(project.getFile("changed.txt")); - assertModificationState(project, new String[] {".", "changed.txt"}, true); - - // peform un update -C - updateProject(project, null, true /* ignore local changes */); - assertModificationState(project, null, true); - } - - 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/unmanaged.txt"); - file.create(new ByteArrayInputStream("stuff".getBytes()), false, DEFAULT_MONITOR); - file.getLocation().toFile().delete(); - file.refreshLocal(IResource.DEPTH_ZERO, DEFAULT_MONITOR); - assertTrue(!file.exists()); - assertModificationState(project, null, true); - } - - public void testIgnoredAfterCheckout() throws TeamException, CoreException { - // Bug 43938 - // Create a project and add a .cvsignore to it - IProject project = createProject("testIgnoredAfterCheckout", new String[] { ".changed.txt", "deleted.txt", "folder1/", "folder1/a.txt", "folder1/folder2/b.txt"}); - project.getFile(".cvsignore").create(new ByteArrayInputStream("ignored".getBytes()), false, DEFAULT_MONITOR); - addResources(new IResource[] {project.getFile(".cvsignore")}); - commitProject(project); - assertModificationState(project, null, true); - project.getFolder("ignored").create(false, true, DEFAULT_MONITOR); - assertModificationState(project, null, true); - - // Checkout a copy and add the file to ensure it is ignored - // Check the project out under a different name - IProject copy = checkoutCopy(project, "-copy"); - assertModificationState(copy, null, true); - copy.getFolder("ignored").create(false, true, DEFAULT_MONITOR); - assertModificationState(copy, null, true); - } - -} - |