Bug 110074 - Breakpoints are not added to default breakpoint working set
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
index f02570d..a741c0c 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AutomatedSuite.java
@@ -75,6 +75,7 @@
import org.eclipse.jdt.debug.tests.core.WatchExpressionTests;
import org.eclipse.jdt.debug.tests.core.WatchpointTests;
import org.eclipse.jdt.debug.tests.core.WorkspaceSourceContainerTests;
+import org.eclipse.jdt.debug.tests.ui.BreakpointWorkingSetTests;
import org.eclipse.jdt.debug.tests.ui.ImportBreakpointsTest;
/**
@@ -115,6 +116,7 @@
addTest(new TestSuite(SuspendVMBreakpointsTests.class));
addTest(new TestSuite(PreLaunchBreakpointTest.class));
addTest(new TestSuite(ImportBreakpointsTest.class));
+ addTest(new TestSuite(BreakpointWorkingSetTests.class));
addTest(new TestSuite(StepFilterTests.class));
addTest(new TestSuite(InstanceVariableTests.class));
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractBreakpointWorkingSetTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractBreakpointWorkingSetTest.java
new file mode 100644
index 0000000..482e63d
--- /dev/null
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/AbstractBreakpointWorkingSetTest.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2005 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.jdt.debug.tests.ui;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.debug.tests.AbstractDebugTest;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.IWorkingSetManager;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * Common code for breakpoint working set tests.
+ *
+ * @since 3.2
+ */
+public abstract class AbstractBreakpointWorkingSetTest extends AbstractDebugTest {
+
+ public AbstractBreakpointWorkingSetTest(String name) {
+ super(name);
+ }
+
+ /**
+ * Creates and returns a breakpoint working set with the given name if not
+ * already in existance.
+ *
+ * @param name working set name
+ */
+ protected IWorkingSet createSet(String name) {
+ IWorkingSetManager wsmanager = getWorkingSetManager();
+ IWorkingSet set = wsmanager.getWorkingSet(name);
+ if(set == null) {
+ set = wsmanager.createWorkingSet(name, new IAdaptable[] {});
+ set.setId(IDebugUIConstants.BREAKPOINT_WORKINGSET_ID);
+ wsmanager.addWorkingSet(set);
+ }//end if
+ return set;
+ }
+
+ /**
+ * Retruns the working set manager.
+ *
+ * @return working set manager
+ */
+ protected IWorkingSetManager getWorkingSetManager() {
+ return PlatformUI.getWorkbench().getWorkingSetManager();
+ }
+}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/BreakpointWorkingSetTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/BreakpointWorkingSetTests.java
new file mode 100644
index 0000000..67a9ef2
--- /dev/null
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/BreakpointWorkingSetTests.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2005 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.jdt.debug.tests.ui;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointSetOrganizer;
+import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
+import org.eclipse.ui.IWorkingSet;
+
+/**
+ * Tests adding breakpoints and automatic addition to working sets.
+ *
+ * @since 3.2
+ */
+public class BreakpointWorkingSetTests extends AbstractBreakpointWorkingSetTest {
+
+ public BreakpointWorkingSetTests(String name) {
+ super(name);
+ }
+
+ public void testAddToDefaultWorkingSet() throws Exception {
+ String name = "TEST DEFAULT";
+ IWorkingSet set = createSet(name);
+ try {
+ BreakpointSetOrganizer.setDefaultWorkingSet(set);
+ IJavaLineBreakpoint breakpoint = createLineBreakpoint(52, "Breakpoints");
+ IAdaptable[] elements = set.getElements();
+ assertEquals("Wrong number of breakpoints", 1, elements.length);
+ assertEquals("Wrong breakpoint", elements[0], breakpoint);
+ } finally {
+ removeAllBreakpoints();
+ getWorkingSetManager().removeWorkingSet(set);
+ }
+ }
+
+ public void testNoDefaultWorkingSet() throws Exception {
+ String name = "TEST DEFAULT";
+ IWorkingSet set = createSet(name);
+ try {
+ BreakpointSetOrganizer.setDefaultWorkingSet(null);
+ IJavaLineBreakpoint breakpoint = createLineBreakpoint(52, "Breakpoints");
+ IAdaptable[] elements = set.getElements();
+ assertEquals("Wrong number of breakpoints", 0, elements.length);
+ } finally {
+ removeAllBreakpoints();
+ getWorkingSetManager().removeWorkingSet(set);
+ }
+ }
+}
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ImportBreakpointsTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ImportBreakpointsTest.java
index ecdbb9d..a6b8d6d 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ImportBreakpointsTest.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/ui/ImportBreakpointsTest.java
@@ -17,25 +17,21 @@
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
-import org.eclipse.debug.core.model.IBreakpoint;
import org.eclipse.debug.internal.ui.importexport.breakpoints.ExportOperation;
import org.eclipse.debug.internal.ui.importexport.breakpoints.ImportOperation;
import org.eclipse.debug.internal.ui.views.breakpoints.BreakpointOrganizerManager;
import org.eclipse.debug.internal.ui.views.breakpoints.IBreakpointOrganizer;
import org.eclipse.debug.internal.ui.views.breakpoints.WorkingSetCategory;
-import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jdt.debug.testplugin.JavaTestPlugin;
-import org.eclipse.jdt.debug.tests.AbstractDebugTest;
import org.eclipse.ui.IWorkingSet;
import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
/**
* Tests the import operations of the breakpoint import export feature
*
* @since 3.2
*/
-public class ImportBreakpointsTest extends AbstractDebugTest {
+public class ImportBreakpointsTest extends AbstractBreakpointWorkingSetTest {
/**
* Default constructor
@@ -131,12 +127,10 @@
try {
//create the working set and add breakpoints to it
IBreakpointOrganizer bporg = BreakpointOrganizerManager.getDefault().getOrganizer("org.eclipse.debug.ui.breakpointWorkingSetOrganizer");
- IWorkingSetManager wsmanager = PlatformUI.getWorkbench().getWorkingSetManager();
+ IWorkingSetManager wsmanager = getWorkingSetManager();
String typeName = "DropTests";
String setName = "ws_name";
- IWorkingSet set = wsmanager.createWorkingSet(setName, new IAdaptable[] {});
- set.setId(IDebugUIConstants.BREAKPOINT_WORKINGSET_ID);
- wsmanager.addWorkingSet(set);
+ IWorkingSet set = createSet(setName);
assertNotNull("workingset does not exist", wsmanager.getWorkingSet(setName));
WorkingSetCategory category = new WorkingSetCategory(set);
@@ -193,22 +187,4 @@
}//end finally
}//end testBreakpointImportMissingResources
- /**
- * Creates a working set and sets the values
- * @param breakpoint the breakpoint to add to the workingset
- */
- private void createWorkingSet(String setname, IAdaptable element) {
- IWorkingSetManager wsmanager = PlatformUI.getWorkbench().getWorkingSetManager();
- IWorkingSet set = wsmanager.getWorkingSet(setname);
- if(set == null) {
- set = wsmanager.createWorkingSet(setname, new IAdaptable[] {});
- set.setId(IDebugUIConstants.BREAKPOINT_WORKINGSET_ID);
- wsmanager.addWorkingSet(set);
- }//end if
- IAdaptable[] elements = set.getElements();
- IAdaptable[] newElements = new IAdaptable[elements.length + 1];
- newElements[newElements.length-1] = (IBreakpoint)element;
- System.arraycopy(elements, 0, newElements, 0, elements.length);
- set.setElements(newElements);
- }//end createWorkingSet
}//end class