From 51468443648f75d1da5f7e5fdf7a0f594c90f726 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Wed, 22 Feb 2017 12:54:46 +0300 Subject: [PATCH] automatically revert enabled/disabled renderers in tearDown --- .../intellij/debugger/DebuggerTestCase.java | 22 +++++++++++++++++++ .../debugger/impl/DescriptorTestCase.java | 10 +-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java index 99c8f23835cf..00b6742ad3db 100644 --- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java @@ -28,6 +28,7 @@ import com.intellij.debugger.jdi.StackFrameProxyImpl; import com.intellij.debugger.settings.DebuggerSettings; import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.ui.breakpoints.BreakpointManager; +import com.intellij.debugger.ui.tree.render.NodeRenderer; import com.intellij.execution.ExecutionException; import com.intellij.execution.Executor; import com.intellij.execution.configurations.*; @@ -68,6 +69,8 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; import java.util.StringTokenizer; import java.util.concurrent.atomic.AtomicInteger; @@ -77,6 +80,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas protected final AtomicInteger myRestart = new AtomicInteger(); private static final int MAX_RESTARTS = 3; private volatile TestDisposable myTestRootDisposable; + private final List myTearDownRunnables = new ArrayList<>(); @Override protected void initApplication() throws Exception { @@ -156,6 +160,8 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas myDebugProcess.stop(true); myDebugProcess.waitFor(); } + myTearDownRunnables.forEach(Runnable::run); + myTearDownRunnables.clear(); } finally { super.tearDown(); @@ -590,4 +596,20 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas @Override public void writeExternal(Element element) throws WriteExternalException { } } + + protected void disableRenderer(NodeRenderer renderer) { + setRendererEnabled(renderer, false); + } + + protected void enableRenderer(NodeRenderer renderer) { + setRendererEnabled(renderer, true); + } + + private void setRendererEnabled(NodeRenderer renderer, boolean state) { + boolean oldValue = renderer.isEnabled(); + if (oldValue != state) { + myTearDownRunnables.add(() -> renderer.setEnabled(oldValue)); + renderer.setEnabled(state); + } + } } diff --git a/java/testFramework/src/com/intellij/debugger/impl/DescriptorTestCase.java b/java/testFramework/src/com/intellij/debugger/impl/DescriptorTestCase.java index b90c0941a88d..33f34a6bc794 100644 --- a/java/testFramework/src/com/intellij/debugger/impl/DescriptorTestCase.java +++ b/java/testFramework/src/com/intellij/debugger/impl/DescriptorTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -131,14 +131,6 @@ public abstract class DescriptorTestCase extends DebuggerTestCase { } } - protected void disableRenderer(NodeRenderer renderer) { - renderer.setEnabled(false); - } - - protected void enableRenderer(NodeRenderer renderer) { - renderer.setEnabled(true); - } - protected LocalVariableDescriptorImpl localVar(DebuggerTree frameTree, EvaluationContextImpl evaluationContext, String name) {