diff options
Diffstat (limited to 'tests/org.eclipse.team.tests.cvs.core')
-rw-r--r-- | tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/RepositoriesViewTests.java | 508 |
1 files changed, 254 insertions, 254 deletions
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/RepositoriesViewTests.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/RepositoriesViewTests.java index 78f7d9cd6..3ebc90b65 100644 --- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/RepositoriesViewTests.java +++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/RepositoriesViewTests.java @@ -1,257 +1,257 @@ -/*******************************************************************************
- * Copyright (c) 2011, 2012 IBM Corporation and others.
+/******************************************************************************* + * Copyright (c) 2011, 2012 IBM Corporation and others. * - * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
+ * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * - * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.tests.ccvs.ui;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder;
-import org.eclipse.team.internal.ccvs.core.resources.RemoteResource;
-import org.eclipse.team.internal.ccvs.ui.model.AllRootsElement;
-import org.eclipse.team.internal.ccvs.ui.model.BranchCategory;
-import org.eclipse.team.internal.ccvs.ui.model.CVSTagElement;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider;
-import org.eclipse.team.internal.ccvs.ui.model.RemoteModule;
-import org.eclipse.team.internal.ccvs.ui.model.VersionCategory;
-import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot;
-import org.eclipse.team.tests.ccvs.core.CVSTestSetup;
-import org.eclipse.team.tests.ccvs.core.EclipseTest;
-
-public class RepositoriesViewTests extends EclipseTest {
-
- public RepositoriesViewTests(String testName) {
- super(testName);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- // clear repository root cache
- RepositoryRoot repositoryRoot = getRepositoryRoot();
- String remotePaths[] = repositoryRoot.getKnownRemotePaths();
- for (int i = 0; i < remotePaths.length; i++) {
- repositoryRoot.removeTags(remotePaths[i],
- repositoryRoot.getAllKnownTags(remotePaths[i]));
- }
- }
-
- private RepositoryRoot getRepositoryRoot() {
- RemoteContentProvider rcp = new RemoteContentProvider();
- AllRootsElement are = new AllRootsElement();
- Object[] repositoryRoots = rcp.getElements(are);
- for (int i = 0; i < repositoryRoots.length; i++) {
- RepositoryRoot repositoryRoot = (RepositoryRoot) repositoryRoots[i];
- if (getRepository().equals(repositoryRoot.getRoot())) {
- return repositoryRoot;
- }
- }
- fail(getRepository() + " not found");
- return null;
- }
-
- public static Test suite() {
- String testName = System.getProperty("eclipse.cvs.testName");
- if (testName == null) {
- TestSuite suite = new TestSuite(RepositoriesViewTests.class);
- return new CVSTestSetup(suite);
- } else {
- return new CVSTestSetup(new RepositoriesViewTests(testName));
- }
- }
-
- public void testBranchSubmoduleChildren() throws TeamException,
- CoreException {
-
- String time = Long.toString(System.currentTimeMillis());
- String moduleName = "TestBranchSubmoduleChildrenTestModule" + time;
- String branchName = "TestBranchSubmoduleChildrenBranch" + time;
- String versionName = "Root_" + branchName;
-
- // create project
- IProject project = getUniqueTestProject("TestBranchSubmoduleChildrenProject");
- // share project under module
- shareProject(getRepository(), project,
- moduleName + "/" + project.getName(), DEFAULT_MONITOR);
- assertValidCheckout(project);
-
- // add some files
- addResources(project, new String[] { "file1.txt" }, true);
-
- // make branch
- CVSTag version = new CVSTag(versionName, CVSTag.VERSION);
- CVSTag branch = new CVSTag(branchName, CVSTag.BRANCH);
-
- makeBranch(new IResource[] { project }, version, branch, true);
-
- // check if module is the only branch child
- RemoteContentProvider rcp = new RemoteContentProvider();
- Object[] categories = rcp.getChildren(getRepositoryRoot());
- assertEquals(4, categories.length);
- assertTrue(categories[1] instanceof BranchCategory);
- Object[] branches = rcp.getChildren(categories[1]);
- assertEquals(1, branches.length);
- assertEquals(branchName, ((CVSTagElement) (branches[0])).getTag()
- .getName());
- Object[] modules = rcp.getChildren(branches[0]);
- assertEquals(1, modules.length);
- assertEquals(moduleName, ((RemoteResource) modules[0]).getName());
-
- // check if after refresh module is still the only branch child
- branches = rcp.getChildren(categories[1]);
- assertEquals(1, branches.length);
- assertEquals(branchName, ((CVSTagElement) (branches[0])).getTag()
- .getName());
- modules = rcp.getChildren(branches[0]);
- assertEquals(1, modules.length);
- assertEquals(moduleName, ((RemoteResource) modules[0]).getName());
- }
-
- public void testTagSubmoduleChildren() throws TeamException, CoreException {
-
- String time = Long.toString(System.currentTimeMillis());
- String moduleName = "TestTagSubmoduleChildrenTestModule" + time;
- String versionName = "TestTagSubmoduleChildrenBranch" + time;
-
- // create project
- IProject project = getUniqueTestProject("TestTagSubmoduleChildrenProject");
- // share project under module
- shareProject(getRepository(), project,
- moduleName + "/" + project.getName(), DEFAULT_MONITOR);
- assertValidCheckout(project);
-
- // make some changes
- addResources(project, new String[] { "file1.txt" }, true);
-
- // tag project
- CVSTag tag = new CVSTag(versionName, CVSTag.VERSION);
-
- tagProject(project, tag, true);
-
-
- RemoteContentProvider rcp = new RemoteContentProvider();
- Object[] categories = rcp.getChildren(getRepositoryRoot());
- assertEquals(4, categories.length);
-
- // check if version exists for module
- assertTrue(categories[2] instanceof VersionCategory);
- Object[] modules = rcp.getChildren(categories[2]);
- for (int i = 0; i < modules.length; i++) {
- if (modules[i] instanceof RemoteModule
- && ((RemoteModule) (modules[i])).getCVSResource().getName()
- .equals(moduleName)) {
- Object folders[] = rcp.getChildren(modules[i]);
- assertEquals(1, folders.length);
- assertEquals(versionName, ((RemoteFolder) folders[0]).getTag()
- .getName());
- return;
- }
- }
- fail(moduleName + " not found");
- }
-
- public void testTagsOnDifferentLevels() throws CoreException {
- String time = Long.toString(System.currentTimeMillis());
- String firstModule = "Module_1" + time;
- String secondModule = "Module_2" + time;
- String secondModulePath = firstModule + "/" + secondModule;
- // Create repository data
- // Module_1/Project_1
- IProject project1 = getUniqueTestProject("Project_1");
- shareProject(getRepository(), project1,
- firstModule + "/" + project1.getName(), DEFAULT_MONITOR);
- // Module_1/Module_2/Project_2
- IProject project2 = getUniqueTestProject("Project_2");
- shareProject(getRepository(), project2, secondModulePath + "/"
- + project2.getName(), DEFAULT_MONITOR);
- // Module_1/Module_2/Project_3
- IProject project3 = getUniqueTestProject("Project_3");
- shareProject(getRepository(), project3, secondModulePath + "/"
- + project3.getName(), DEFAULT_MONITOR);
- // Module_1/Project_4
- IProject project4 = getUniqueTestProject("Project_4");
- shareProject(getRepository(), project4,
- firstModule + "/" + project4.getName(), DEFAULT_MONITOR);
-
- // Create branches
- String branch1 = "Branch_1" + time;
- String version1 = "Root_" + branch1;
- String branch2 = "Branch_2" + time;
- String version2 = "Root_" + branch2;
-
- // Tag projects:
- // Module_1/Project_1 -> [Branch_1][Branch_2]
- // Module_1/Module_2/Project_2 -> [Branch_1][Branch_2]
- // Module_1/Module_2/Project_3 -> [Branch_2]
- // Module_1/Project_4 -> [Branch_4]
- makeBranch(new IResource[] { project1, project2 }, new CVSTag(version1,
- CVSTag.VERSION), new CVSTag(branch1, CVSTag.BRANCH), true);
- makeBranch(new IResource[] { project1, project2, project2, project4 },
- new CVSTag(version2, CVSTag.VERSION), new CVSTag(branch2,
- CVSTag.BRANCH), true);
-
- // verify if tree structure is built from cache
- RemoteContentProvider rcp = new RemoteContentProvider();
- Object[] categories = rcp.getChildren(getRepositoryRoot());
- assertEquals(4, categories.length);
- assertTrue(categories[1] instanceof BranchCategory);
- Object[] branches = rcp.getChildren(categories[1]);
- assertEquals(2, branches.length); // should be [Branch_1] and [Branch_2]
- CVSTagElement branch1Element;
- CVSTagElement branch2Element;
- if (((CVSTagElement) branches[0]).getTag().getName().equals(branch1)) {
- branch1Element = (CVSTagElement) branches[0];
- branch2Element = (CVSTagElement) branches[1];
- } else {
- branch1Element = (CVSTagElement) branches[1];
- branch2Element = (CVSTagElement) branches[0];
- }
- Object[] modules = rcp.getChildren(branch1Element);
- assertEquals(1, modules.length); // should be [Branch_1]/Module_1
- assertEquals(firstModule, ((RemoteResource) modules[0]).getName());
- modules = rcp.getChildren(modules[0]);
- // should contain:
- // [Branch_1]/Module_1/Project_1
- // [Branch_1]/Module_1/Module_2
- assertEquals(2, modules.length);
- for (int i = 0; i < modules.length; i++) {
- if (((RemoteResource) (modules[i])).getName().equals(
- project1.getName())) {
- // Project_1 should have contents retrieved from CVS
- assertTrue(rcp.hasChildren(modules[i]));
- } else if (((RemoteResource) (modules[i])).getName().equals(
- secondModule)) {
- // should be only [Branch_1]/Module_1/Module_2/Project_2.
- // [Branch_1]/Module_1/Module_2/Project_3 should NOT be on the
- // list, it is not branched with Branch_1
- Object[] module2Children = rcp.getChildren(modules[i]);
- assertEquals(1, module2Children.length);
- assertEquals(project2.getName(),
- ((RemoteResource) module2Children[0]).getName());
- }
- }
- modules = rcp.getChildren(branch2Element);
- assertEquals(1, modules.length); // should be [Branch_2]/Module_1
- assertEquals(firstModule, ((RemoteResource) modules[0]).getName());
- // should contain:
- // [Branch_2]/Module_1/Project_1
- // [Branch_2]/Module_1/Module_2
- // [Branch_2]/Module_1/Project_4
- modules = rcp.getChildren(modules[0]);
- assertEquals(3, modules.length);
- }
-}
+ * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.team.tests.ccvs.ui; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.team.core.TeamException; +import org.eclipse.team.internal.ccvs.core.CVSTag; +import org.eclipse.team.internal.ccvs.core.resources.RemoteFolder; +import org.eclipse.team.internal.ccvs.core.resources.RemoteResource; +import org.eclipse.team.internal.ccvs.ui.model.AllRootsElement; +import org.eclipse.team.internal.ccvs.ui.model.BranchCategory; +import org.eclipse.team.internal.ccvs.ui.model.CVSTagElement; +import org.eclipse.team.internal.ccvs.ui.model.RemoteContentProvider; +import org.eclipse.team.internal.ccvs.ui.model.RemoteModule; +import org.eclipse.team.internal.ccvs.ui.model.VersionCategory; +import org.eclipse.team.internal.ccvs.ui.repo.RepositoryRoot; +import org.eclipse.team.tests.ccvs.core.CVSTestSetup; +import org.eclipse.team.tests.ccvs.core.EclipseTest; + +public class RepositoriesViewTests extends EclipseTest { + + public RepositoriesViewTests(String testName) { + super(testName); + } + + protected void setUp() throws Exception { + super.setUp(); + // clear repository root cache + RepositoryRoot repositoryRoot = getRepositoryRoot(); + String remotePaths[] = repositoryRoot.getKnownRemotePaths(); + for (int i = 0; i < remotePaths.length; i++) { + repositoryRoot.removeTags(remotePaths[i], + repositoryRoot.getAllKnownTags(remotePaths[i])); + } + } + + private RepositoryRoot getRepositoryRoot() { + RemoteContentProvider rcp = new RemoteContentProvider(); + AllRootsElement are = new AllRootsElement(); + Object[] repositoryRoots = rcp.getElements(are); + for (int i = 0; i < repositoryRoots.length; i++) { + RepositoryRoot repositoryRoot = (RepositoryRoot) repositoryRoots[i]; + if (getRepository().equals(repositoryRoot.getRoot())) { + return repositoryRoot; + } + } + fail(getRepository() + " not found"); + return null; + } + + public static Test suite() { + String testName = System.getProperty("eclipse.cvs.testName"); + if (testName == null) { + TestSuite suite = new TestSuite(RepositoriesViewTests.class); + return new CVSTestSetup(suite); + } else { + return new CVSTestSetup(new RepositoriesViewTests(testName)); + } + } + + public void testBranchSubmoduleChildren() throws TeamException, + CoreException { + + String time = Long.toString(System.currentTimeMillis()); + String moduleName = "TestBranchSubmoduleChildrenTestModule" + time; + String branchName = "TestBranchSubmoduleChildrenBranch" + time; + String versionName = "Root_" + branchName; + + // create project + IProject project = getUniqueTestProject("TestBranchSubmoduleChildrenProject"); + // share project under module + shareProject(getRepository(), project, + moduleName + "/" + project.getName(), DEFAULT_MONITOR); + assertValidCheckout(project); + + // add some files + addResources(project, new String[] { "file1.txt" }, true); + + // make branch + CVSTag version = new CVSTag(versionName, CVSTag.VERSION); + CVSTag branch = new CVSTag(branchName, CVSTag.BRANCH); + + makeBranch(new IResource[] { project }, version, branch, true); + + // check if module is the only branch child + RemoteContentProvider rcp = new RemoteContentProvider(); + Object[] categories = rcp.getChildren(getRepositoryRoot()); + assertEquals(4, categories.length); + assertTrue(categories[1] instanceof BranchCategory); + Object[] branches = rcp.getChildren(categories[1]); + assertEquals(1, branches.length); + assertEquals(branchName, ((CVSTagElement) (branches[0])).getTag() + .getName()); + Object[] modules = rcp.getChildren(branches[0]); + assertEquals(1, modules.length); + assertEquals(moduleName, ((RemoteResource) modules[0]).getName()); + + // check if after refresh module is still the only branch child + branches = rcp.getChildren(categories[1]); + assertEquals(1, branches.length); + assertEquals(branchName, ((CVSTagElement) (branches[0])).getTag() + .getName()); + modules = rcp.getChildren(branches[0]); + assertEquals(1, modules.length); + assertEquals(moduleName, ((RemoteResource) modules[0]).getName()); + } + + public void testTagSubmoduleChildren() throws TeamException, CoreException { + + String time = Long.toString(System.currentTimeMillis()); + String moduleName = "TestTagSubmoduleChildrenTestModule" + time; + String versionName = "TestTagSubmoduleChildrenBranch" + time; + + // create project + IProject project = getUniqueTestProject("TestTagSubmoduleChildrenProject"); + // share project under module + shareProject(getRepository(), project, + moduleName + "/" + project.getName(), DEFAULT_MONITOR); + assertValidCheckout(project); + + // make some changes + addResources(project, new String[] { "file1.txt" }, true); + + // tag project + CVSTag tag = new CVSTag(versionName, CVSTag.VERSION); + + tagProject(project, tag, true); + + + RemoteContentProvider rcp = new RemoteContentProvider(); + Object[] categories = rcp.getChildren(getRepositoryRoot()); + assertEquals(4, categories.length); + + // check if version exists for module + assertTrue(categories[2] instanceof VersionCategory); + Object[] modules = rcp.getChildren(categories[2]); + for (int i = 0; i < modules.length; i++) { + if (modules[i] instanceof RemoteModule + && ((RemoteModule) (modules[i])).getCVSResource().getName() + .equals(moduleName)) { + Object folders[] = rcp.getChildren(modules[i]); + assertEquals(1, folders.length); + assertEquals(versionName, ((RemoteFolder) folders[0]).getTag() + .getName()); + return; + } + } + fail(moduleName + " not found"); + } + + public void testTagsOnDifferentLevels() throws CoreException { + String time = Long.toString(System.currentTimeMillis()); + String firstModule = "Module_1" + time; + String secondModule = "Module_2" + time; + String secondModulePath = firstModule + "/" + secondModule; + // Create repository data + // Module_1/Project_1 + IProject project1 = getUniqueTestProject("Project_1"); + shareProject(getRepository(), project1, + firstModule + "/" + project1.getName(), DEFAULT_MONITOR); + // Module_1/Module_2/Project_2 + IProject project2 = getUniqueTestProject("Project_2"); + shareProject(getRepository(), project2, secondModulePath + "/" + + project2.getName(), DEFAULT_MONITOR); + // Module_1/Module_2/Project_3 + IProject project3 = getUniqueTestProject("Project_3"); + shareProject(getRepository(), project3, secondModulePath + "/" + + project3.getName(), DEFAULT_MONITOR); + // Module_1/Project_4 + IProject project4 = getUniqueTestProject("Project_4"); + shareProject(getRepository(), project4, + firstModule + "/" + project4.getName(), DEFAULT_MONITOR); + + // Create branches + String branch1 = "Branch_1" + time; + String version1 = "Root_" + branch1; + String branch2 = "Branch_2" + time; + String version2 = "Root_" + branch2; + + // Tag projects: + // Module_1/Project_1 -> [Branch_1][Branch_2] + // Module_1/Module_2/Project_2 -> [Branch_1][Branch_2] + // Module_1/Module_2/Project_3 -> [Branch_2] + // Module_1/Project_4 -> [Branch_4] + makeBranch(new IResource[] { project1, project2 }, new CVSTag(version1, + CVSTag.VERSION), new CVSTag(branch1, CVSTag.BRANCH), true); + makeBranch(new IResource[] { project1, project2, project2, project4 }, + new CVSTag(version2, CVSTag.VERSION), new CVSTag(branch2, + CVSTag.BRANCH), true); + + // verify if tree structure is built from cache + RemoteContentProvider rcp = new RemoteContentProvider(); + Object[] categories = rcp.getChildren(getRepositoryRoot()); + assertEquals(4, categories.length); + assertTrue(categories[1] instanceof BranchCategory); + Object[] branches = rcp.getChildren(categories[1]); + assertEquals(2, branches.length); // should be [Branch_1] and [Branch_2] + CVSTagElement branch1Element; + CVSTagElement branch2Element; + if (((CVSTagElement) branches[0]).getTag().getName().equals(branch1)) { + branch1Element = (CVSTagElement) branches[0]; + branch2Element = (CVSTagElement) branches[1]; + } else { + branch1Element = (CVSTagElement) branches[1]; + branch2Element = (CVSTagElement) branches[0]; + } + Object[] modules = rcp.getChildren(branch1Element); + assertEquals(1, modules.length); // should be [Branch_1]/Module_1 + assertEquals(firstModule, ((RemoteResource) modules[0]).getName()); + modules = rcp.getChildren(modules[0]); + // should contain: + // [Branch_1]/Module_1/Project_1 + // [Branch_1]/Module_1/Module_2 + assertEquals(2, modules.length); + for (int i = 0; i < modules.length; i++) { + if (((RemoteResource) (modules[i])).getName().equals( + project1.getName())) { + // Project_1 should have contents retrieved from CVS + assertTrue(rcp.hasChildren(modules[i])); + } else if (((RemoteResource) (modules[i])).getName().equals( + secondModule)) { + // should be only [Branch_1]/Module_1/Module_2/Project_2. + // [Branch_1]/Module_1/Module_2/Project_3 should NOT be on the + // list, it is not branched with Branch_1 + Object[] module2Children = rcp.getChildren(modules[i]); + assertEquals(1, module2Children.length); + assertEquals(project2.getName(), + ((RemoteResource) module2Children[0]).getName()); + } + } + modules = rcp.getChildren(branch2Element); + assertEquals(1, modules.length); // should be [Branch_2]/Module_1 + assertEquals(firstModule, ((RemoteResource) modules[0]).getName()); + // should contain: + // [Branch_2]/Module_1/Project_1 + // [Branch_2]/Module_1/Module_2 + // [Branch_2]/Module_1/Project_4 + modules = rcp.getChildren(modules[0]); + assertEquals(3, modules.length); + } +} |