| /******************************************************************************* |
| * Copyright (c) 2007 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.team.tests.ccvs.ui; |
| |
| import java.util.Arrays; |
| import java.util.List; |
| |
| 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.ui.SelectionPropertyTester; |
| import org.eclipse.team.internal.ccvs.ui.actions.BranchAction; |
| import org.eclipse.team.internal.ccvs.ui.actions.CommitAction; |
| import org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction; |
| import org.eclipse.team.tests.ccvs.core.CVSTestSetup; |
| import org.eclipse.ui.IActionDelegate; |
| |
| public class SelectionPropertyTesterTest extends EnablementTest { |
| |
| /** |
| * Constructor for CVSProviderTest |
| */ |
| public SelectionPropertyTesterTest() { |
| super(); |
| } |
| |
| /** |
| * Constructor for CVSProviderTest |
| */ |
| public SelectionPropertyTesterTest(String name) { |
| super(name); |
| } |
| |
| public static Test suite() { |
| TestSuite suite = new TestSuite(SelectionPropertyTesterTest.class); |
| return new CVSTestSetup(suite); |
| } |
| |
| // |
| // tests for corner cases |
| // |
| public void testSelectionPropertyTester_allNulls() { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| assertEquals(false, tester.test(null, null, null, null)); |
| } |
| |
| public void testSelectionPropertyTester_nullSelection() { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| assertEquals( |
| false, |
| tester |
| .test( |
| null, |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction", }, |
| null)); |
| } |
| |
| public void testSelectionPropertyTester_invalidClassForSelection() |
| throws TeamException, CoreException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| assertEquals( |
| false, |
| tester |
| .test( |
| resources, |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction", }, |
| null)); |
| } |
| |
| public void testSelectionPropertyTester_toManyArgs() throws TeamException, |
| CoreException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| assertEquals( |
| false, |
| tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { |
| "org.eclipse.team.internal.ccvs.ui.actions.CommitAction", |
| "org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction" }, |
| null)); |
| } |
| |
| public void testSelectionPropertyTester_unknownProperty() |
| throws TeamException, CoreException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| assertEquals( |
| false, |
| tester |
| .test( |
| asSelection(resources), |
| "unknownProperty", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction" }, |
| null)); |
| } |
| |
| // enablement for resources from a shared project |
| |
| public void testSelectionPropertyTester_commitActionManaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction" }, |
| null); |
| assertEquals(true, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_ignoreActionManaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new IgnoreAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction" }, |
| null); |
| assertEquals(false, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_branchActionManaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new BranchAction(); |
| IProject project = createTestProject(action); |
| List resources = getManagedResources(project, false, false); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.BranchAction" }, |
| null); |
| assertEquals(true, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_commitActionUnmanaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| IProject project = createTestProject(action); |
| List resources = getUnmanagedResources(project); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction" }, |
| null); |
| assertEquals(true, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_ignoreActionUnmanaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new IgnoreAction(); |
| IProject project = createTestProject(action); |
| List resources = getUnmanagedResources(project); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction" }, |
| null); |
| assertEquals(true, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_branchActionUnmanaged() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new BranchAction(); |
| IProject project = createTestProject(action); |
| List resources = getUnmanagedResources(project); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.BranchAction" }, |
| null); |
| assertEquals(false, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| // enablement for resources from an unshared project |
| |
| public void testSelectionPropertyTester_commitActionUnshared() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new CommitAction(); |
| String actionName = getName(action); |
| String[] resourcesNames = new String[] { "file.txt", "folder1/", |
| "folder1/a.txt" }; |
| IProject project = getUniqueTestProject(actionName); |
| IResource[] buildResources = buildResources(project, resourcesNames, |
| true); |
| List resources = Arrays.asList(buildResources); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.CommitAction" }, |
| null); |
| assertEquals(false, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_ignoreActionUnshared() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new IgnoreAction(); |
| String actionName = getName(action); |
| String[] resourcesNames = new String[] { "file.txt", "folder1/", |
| "folder1/a.txt" }; |
| IProject project = getUniqueTestProject(actionName); |
| IResource[] buildResources = buildResources(project, resourcesNames, |
| true); |
| List resources = Arrays.asList(buildResources); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction" }, |
| null); |
| assertEquals(false, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| public void testSelectionPropertyTester_branchActionUnshared() |
| throws CoreException, TeamException { |
| SelectionPropertyTester tester = new SelectionPropertyTester(); |
| IActionDelegate action = new BranchAction(); |
| String actionName = getName(action); |
| String[] resourcesNames = new String[] { "file.txt", "folder1/", |
| "folder1/a.txt" }; |
| IProject project = getUniqueTestProject(actionName); |
| IResource[] buildResources = buildResources(project, resourcesNames, |
| true); |
| List resources = Arrays.asList(buildResources); |
| boolean testResult = tester |
| .test( |
| asSelection(resources), |
| "isEnabled", |
| new Object[] { "org.eclipse.team.internal.ccvs.ui.actions.BranchAction" }, |
| null); |
| assertEquals(false, testResult); |
| assertEnablement(action, asSelection(resources), testResult); |
| } |
| |
| } |