Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.wst.jsdt.debug.core.tests/src/org/eclipse/wst/debug/core/tests/AbstractBreakpointTest.java')
-rw-r--r--tests/org.eclipse.wst.jsdt.debug.core.tests/src/org/eclipse/wst/debug/core/tests/AbstractBreakpointTest.java253
1 files changed, 0 insertions, 253 deletions
diff --git a/tests/org.eclipse.wst.jsdt.debug.core.tests/src/org/eclipse/wst/debug/core/tests/AbstractBreakpointTest.java b/tests/org.eclipse.wst.jsdt.debug.core.tests/src/org/eclipse/wst/debug/core/tests/AbstractBreakpointTest.java
deleted file mode 100644
index e3940c7..0000000
--- a/tests/org.eclipse.wst.jsdt.debug.core.tests/src/org/eclipse/wst/debug/core/tests/AbstractBreakpointTest.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 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.wst.debug.core.tests;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointListener;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.actions.ToggleBreakpointAction;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.source.IVerticalRulerInfo;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.progress.WorkbenchJob;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.debug.core.breakpoints.IJavaScriptFunctionBreakpoint;
-import org.eclipse.wst.jsdt.debug.core.breakpoints.IJavaScriptLineBreakpoint;
-import org.eclipse.wst.jsdt.debug.core.breakpoints.IJavaScriptLoadBreakpoint;
-import org.eclipse.wst.jsdt.debug.core.model.JavaScriptDebugModel;
-
-/**
- * Abstract test that has delegate methods to create various kinds of breakpoints with the ability
- * to auto remove them after tests complete
- *
- * @since 1.0
- */
-public abstract class AbstractBreakpointTest extends AbstractDebugTest {
-
- /**
- * Test project name for testing breakpoints
- */
- protected static final String BP_PROJECT = "BpProject"; //$NON-NLS-1$
-
- private ArrayList breakpoints = new ArrayList();
-
- /**
- * Constructor
- * @param name
- */
- public AbstractBreakpointTest(String name) {
- super(name);
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- try {
- if(breakpoints.size() > 0) {
- getBreakpointManager().removeBreakpoints((IBreakpoint[]) breakpoints.toArray(new IBreakpoint[breakpoints.size()]), true);
- breakpoints.clear();
- }
- }
- finally {
- super.tearDown();
- }
- }
-
- /* (non-Javadoc)
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception {
- super.setUp();
- assertTestProject(AbstractBreakpointTest.BP_PROJECT);
- }
-
- /**
- * Creates a line breakpoint in the given script at the given line number.
- *
- * @param scriptpath the absolute path to the script to create the breakpoint in
- * @param line line number to install the breakpoint at
- * @param condition the optional condition for the breakpoint
- * @return line breakpoint
- * @throws Exception
- */
- protected IJavaScriptLineBreakpoint createLineBreakpoint(String scriptpath, int line, String condition) throws Exception {
- assertNotNull("script path cannot be null creating a line breakpoint", scriptpath); //$NON-NLS-1$
- assertTrue("the line number must be greater than -1 to create a line breakpoint", line > -1); //$NON-NLS-1$
- IResource res = getBreakpointResource(scriptpath);
- assertNotNull("failed creating line breakpoint: the breakpoint resource could not be found for ["+scriptpath+"]", res); //$NON-NLS-1$ //$NON-NLS-2$
- IJavaScriptUnit element = (IJavaScriptUnit) JavaScriptCore.create(res);
- assertNotNull("failed creating line breakpoint: the javascript element could not be computed for ["+scriptpath+"]", element); //$NON-NLS-1$ //$NON-NLS-2$
- Document doc = new Document(element.getSource());
- IRegion region = doc.getLineInformation(line);
- HashMap attr = new HashMap();
- int offset = region.getOffset();
- IJavaScriptLineBreakpoint bp = JavaScriptDebugModel.createLineBreakpoint(res, line, offset, offset+region.getLength(), attr, true);
- bp.setCondition(condition);
- breakpoints.add(bp);
- forceDeltas(res.getProject());
- return bp;
- }
-
- /**
- * Creates JavaScript line breakpoints on the given array of lines
- * @param resource
- * @param lines
- * @return the list of created breakpoints
- * @throws Exception
- */
- protected List createLineBreakpoints(String path, int[] lines) throws Exception {
- List bps = new ArrayList(lines.length);
- for (int i = 0; i < lines.length; i++) {
- IBreakpoint bp = createLineBreakpoint(path, lines[i], null);
- bps.add(bp);
- breakpoints.add(bp);
- }
- return bps;
- }
-
- /**
- * Creates a new function breakpoint
- *
- * @param scriptpath the full absolute workspace path to the script to create a function breakpoint for
- * @param fname function name
- * @param sig function signature
- * @param condition the optional condition for the breakpoint
- * @param entry whether to break on entry
- * @param exit whether to break on exit
- */
- protected IJavaScriptFunctionBreakpoint createFunctionBreakpoint(String scriptpath, String fname, String sig, String condition, boolean entry, boolean exit) throws Exception {
- assertNotNull("script path cannot be null creating a function breakpoint", scriptpath); //$NON-NLS-1$
- assertNotNull("function name cannot be null creating a function breakpoint", fname); //$NON-NLS-1$
- assertNotNull("function signature cannot be null creating a function breakpoint", sig); //$NON-NLS-1$
- IResource res = getBreakpointResource(scriptpath);
- assertNotNull("failed creating function breakpoint: the breakpoint resource could not be found for ["+scriptpath+"]", res); //$NON-NLS-1$ //$NON-NLS-2$
- IJavaScriptElement element = JavaScriptCore.create(res);
- assertNotNull("failed creating line breakpoint: the javascript element could not be computed for ["+scriptpath+"]", element); //$NON-NLS-1$ //$NON-NLS-2$
- //TODO find the function
- HashMap attr = new HashMap();
- IJavaScriptFunctionBreakpoint bp = JavaScriptDebugModel.createFunctionBreakpoint(res, fname, sig, -1, -1, attr, false);
- bp.setEntry(entry);
- bp.setExit(exit);
- bp.setCondition(condition);
- breakpoints.add(bp);
- forceDeltas(res.getProject());
- return bp;
- }
-
- /**
- * Creates a script load breakpoint for the given script path
- *
- * @param scriptpath the full absolute workspace path to the script to create a load breakpoint for
- *
- * @return class prepare breakpoint
- * @throws Exception
- */
- protected IJavaScriptLoadBreakpoint createScriptloadBreakpoint(String scriptpath) throws Exception {
- assertNotNull("script path cannot be null creating a script load breakpoint", scriptpath); //$NON-NLS-1$
- IResource res = getBreakpointResource(scriptpath);
- assertNotNull("failed creating script load breakpoint: the breakpoint resource could not be found for ["+scriptpath+"]", res); //$NON-NLS-1$ //$NON-NLS-2$
- IJavaScriptElement element = JavaScriptCore.create(res);
- assertNotNull("failed creating line breakpoint: the javascript element could not be computed for ["+scriptpath+"]", element); //$NON-NLS-1$ //$NON-NLS-2$
- HashMap attr = new HashMap();
- IJavaScriptLoadBreakpoint bp = JavaScriptDebugModel.createScriptLoadBreakpoint(res, -1, -1, attr, false);
- breakpoints.add(bp);
- forceDeltas(res.getProject());
- return bp;
- }
-
- /**
- * Returns the workspace resource for the given script path or <code>null</code>
- * @param scriptpath the absolute workspace path
- *
- * @return the {@link IResource} backing the path or <code>null</code>
- */
- protected IResource getBreakpointResource(String scriptpath) {
- return ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(scriptpath));
- }
-
- /**
- * Deletes all existing breakpoints
- *
- * @throws Exception
- */
- protected void removeAllBreakpoints() throws Exception {
- IBreakpoint[] bps = getBreakpointManager().getBreakpoints();
- if(bps.length > 0) {
- getBreakpointManager().removeBreakpoints(bps, true);
- }
- }
-
- /**
- * Toggles a breakpoint in the editor at the given line number returning the breakpoint
- * or <code>null</code> if none.
- *
- * @param editor
- * @param lineNumber
- * @return returns the created breakpoint or <code>null</code> if none.
- * @throws InterruptedException
- */
- protected IBreakpoint toggleBreakpoint(final IEditorPart editor, int lineNumber) throws InterruptedException {
- final IVerticalRulerInfo info = new VerticalRulerInfoStub(lineNumber-1); // sub 1, as the doc lines start at 0
- WorkbenchJob job = new WorkbenchJob("toggle javascript breakpoint") { //$NON-NLS-1$
- public IStatus runInUIThread(IProgressMonitor monitor) {
- ToggleBreakpointAction action = new ToggleBreakpointAction(editor, null, info);
- action.run();
- return Status.OK_STATUS;
- }
- };
- final Object lock = new Object();
- final IBreakpoint[] bps = new IBreakpoint[1];
- IBreakpointListener listener = new IBreakpointListener() {
- public void breakpointRemoved(IBreakpoint breakpoint, IMarkerDelta delta) {
- synchronized (lock) {
- lock.notifyAll();
- }
- }
- public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta) {
- }
- public void breakpointAdded(IBreakpoint breakpoint) {
- synchronized (lock) {
- bps[0] = breakpoint;
- lock.notifyAll();
- }
- }
- };
- IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager();
- manager.addBreakpointListener(listener);
- synchronized (lock) {
- job.setPriority(Job.INTERACTIVE);
- job.schedule();
- lock.wait(10000);
- }
- manager.removeBreakpointListener(listener);
- if(bps[0] != null) {
- breakpoints.add(bps[0]);
- }
- return bps[0];
- }
-}

Back to the top