blob: 0a78366485883e72898496ffdece12d9767758f2 [file] [log] [blame]
/*
* Copyright 2000-2009 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.execution.junit2.ui;
import com.intellij.execution.junit2.TestProxy;
import com.intellij.execution.junit2.info.TestInfo;
import com.intellij.execution.junit2.ui.model.SpecialNode;
import com.intellij.execution.testframework.PoolOfTestIcons;
import com.intellij.execution.testframework.TestsUIUtil;
import com.intellij.icons.AllIcons;
import com.intellij.rt.execution.junit.states.PoolOfTestStates;
import com.intellij.ui.SimpleColoredComponent;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.util.containers.HashMap;
import javax.swing.*;
import java.util.Map;
class TestRenderer {
private static final Map<Integer,Icon> ourIcons = new HashMap<Integer, Icon>();
public static Icon getIconFor(final TestProxy testProxy, final boolean isPaused) {
final int magnitude = testProxy.getState().getMagnitude();
if (magnitude == PoolOfTestStates.RUNNING_INDEX)
return isPaused ? AllIcons.RunConfigurations.TestPaused : Animator.getCurrentFrame();
else
return ourIcons.get(new Integer(magnitude));
}
private static SimpleTextAttributes getSpecialAttributes() {
return new SimpleTextAttributes(SimpleTextAttributes.STYLE_BOLD, TestsUIUtil.PASSED_COLOR);
}
static {
mapIcon(PoolOfTestStates.SKIPPED_INDEX, PoolOfTestIcons.SKIPPED_ICON);
mapIcon(PoolOfTestStates.NOT_RUN_INDEX, PoolOfTestIcons.NOT_RAN);
mapIcon(PoolOfTestStates.PASSED_INDEX, PoolOfTestIcons.PASSED_ICON);
mapIcon(PoolOfTestStates.TERMINATED_INDEX, PoolOfTestIcons.TERMINATED_ICON);
mapIcon(PoolOfTestStates.FAILED_INDEX, PoolOfTestIcons.FAILED_ICON);
mapIcon(PoolOfTestStates.COMPARISON_FAILURE, PoolOfTestIcons.FAILED_ICON);
mapIcon(PoolOfTestStates.ERROR_INDEX, PoolOfTestIcons.ERROR_ICON);
mapIcon(PoolOfTestStates.IGNORED_INDEX, PoolOfTestIcons.IGNORED_ICON);
}
private static void mapIcon(final int index, final Icon icon) {
ourIcons.put(new Integer(index), icon);
}
public static void renderTest(final TestProxy test, final SimpleColoredComponent renderer) {
final TestInfo info = test.getInfo();
if (test instanceof SpecialNode) {
renderer.append(info.getName(), getSpecialAttributes());
} else {
renderer.append(info.getName(), SimpleTextAttributes.REGULAR_ATTRIBUTES);
renderer.append(Formatters.sensibleCommentFor(test), SimpleTextAttributes.GRAY_ATTRIBUTES);
}
}
}