From: Dmitry Trofimov Date: Wed, 22 Jun 2011 12:34:27 +0000 (+0400) Subject: Env tests: added test for django conditional breakpoint. X-Git-Tag: rubymine/108.520~1^2~4^2~3 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=86519d97ccfcc8433761c3f54341c30ae7cf42a2 Env tests: added test for django conditional breakpoint. --- diff --git a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java index bba37ad71587..4773798a5a5b 100644 --- a/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java +++ b/platform/xdebugger-impl/testSrc/com/intellij/xdebugger/XDebuggerTestUtil.java @@ -21,15 +21,14 @@ import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.testFramework.UsefulTestCase; import com.intellij.util.ui.UIUtil; -import com.intellij.xdebugger.breakpoints.XBreakpoint; -import com.intellij.xdebugger.breakpoints.XBreakpointManager; -import com.intellij.xdebugger.breakpoints.XBreakpointType; -import com.intellij.xdebugger.breakpoints.XLineBreakpointType; +import com.intellij.xdebugger.breakpoints.*; import com.intellij.xdebugger.evaluation.XDebuggerEvaluator; import com.intellij.xdebugger.frame.*; +import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil; import com.intellij.xdebugger.impl.breakpoints.XLineBreakpointImpl; import com.intellij.xdebugger.ui.DebuggerIcons; import junit.framework.Assert; @@ -212,6 +211,45 @@ public class XDebuggerTestUtil { return consoleView.getEditor().getDocument().getText(); } + public static XBreakpoint addBreakpoint(@NotNull final Project project, + @NotNull final Class exceptionType, + @NotNull final XBreakpointProperties properties) { + final XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager(); + XBreakpointType[] types = XBreakpointUtil.getBreakpointTypes(); + final Ref breakpoint = Ref.create(null); + for (XBreakpointType type : types) { + if (exceptionType.isInstance(type)) { + final T breakpointType = exceptionType.cast(type); + new WriteAction() { + @Override + protected void run(Result result) throws Throwable { + breakpoint.set(breakpointManager.addBreakpoint(breakpointType, properties)); + } + }.execute(); + break; + } + } + return breakpoint.get(); + } + + public static void setBreakpointCondition(Project project, int line, final String condition) { + XBreakpointManager breakpointManager = XDebuggerManager.getInstance(project).getBreakpointManager(); + for (XBreakpoint breakpoint : breakpointManager.getAllBreakpoints()) { + if (breakpoint instanceof XLineBreakpoint) { + final XLineBreakpoint lineBreakpoint = (XLineBreakpoint)breakpoint; + + if (lineBreakpoint.getLine() == line) { + new WriteAction() { + @Override + protected void run(Result result) throws Throwable { + lineBreakpoint.setCondition(condition); + } + }.execute(); + } + } + } + } + public static class XTestStackFrameContainer extends XTestContainer implements XExecutionStack.XStackFrameContainer { public void addStackFrames(@NotNull List stackFrames, boolean last) { addChildren(stackFrames, last);