From 91be36a418ba1bd1e3e1b238ed504c401d051f27 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Thu, 5 May 2016 11:35:59 -0400 Subject: [PATCH] Bug 488348 - fix target remove. Change-Id: I50d08fcfc46d723aa59fc6cc2f909de73f74d3de --- .../internal/target/LaunchTargetManager.java | 2 +- .../core/internal/LaunchTargetTest.java | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchTargetTest.java diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java index 4345aa23f85..2ad11c32936 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTargetManager.java @@ -214,7 +214,7 @@ public class LaunchTargetManager implements ILaunchTargetManager { String typeId = target.getTypeId(); Map type = targets.get(typeId); if (type != null) { - type.remove(target); + type.remove(target.getId()); if (type.isEmpty()) { targets.remove(target.getTypeId()); } diff --git a/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchTargetTest.java b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchTargetTest.java new file mode 100644 index 00000000000..65c7209fa65 --- /dev/null +++ b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchTargetTest.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2016 QNX Software Systems 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 + *******************************************************************************/ +package org.eclipse.launchbar.core.internal; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.launchbar.core.target.ILaunchTarget; +import org.eclipse.launchbar.core.target.ILaunchTargetManager; +import org.junit.Test; + +@SuppressWarnings("nls") +public class LaunchTargetTest { + + @Test + public void testRemoveLaunchTarget() throws CoreException { + ILaunchTargetManager manager = Activator.getLaunchTargetManager(); + // Account for pre-populated targets + int baseSize = manager.getLaunchTargets().length; + ILaunchTarget target1 = manager.addLaunchTarget("mytype", "target1"); + ILaunchTarget target2 = manager.addLaunchTarget("mytype", "target2"); + Set targetSet = new HashSet<>(Arrays.asList(manager.getLaunchTargets())); + assertEquals(baseSize + 2, targetSet.size()); + assertTrue(targetSet.contains(target1)); + assertTrue(targetSet.contains(target2)); + manager.removeLaunchTarget(target2); + targetSet = new HashSet<>(Arrays.asList(manager.getLaunchTargets())); + assertEquals(baseSize + 1, targetSet.size()); + assertTrue(targetSet.contains(target1)); + assertFalse(targetSet.contains(target2)); + manager.removeLaunchTarget(target1); + targetSet = new HashSet<>(Arrays.asList(manager.getLaunchTargets())); + assertEquals(baseSize, targetSet.size()); + assertFalse(targetSet.contains(target1)); + assertFalse(targetSet.contains(target2)); + } + +}