b5e986121ef820b9592f9196c755be3c3c54e8e6
[idea/community.git] / platform / smRunner / src / com / intellij / execution / testframework / sm / runner / history / ImportedTestConsoleProperties.java
1 /*
2  * Copyright 2000-2015 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.execution.testframework.sm.runner.history;
17
18 import com.intellij.execution.Executor;
19 import com.intellij.execution.Location;
20 import com.intellij.execution.configurations.RunProfile;
21 import com.intellij.execution.filters.Filter;
22 import com.intellij.execution.process.ProcessHandler;
23 import com.intellij.execution.testframework.TestConsoleProperties;
24 import com.intellij.execution.testframework.actions.AbstractRerunFailedTestsAction;
25 import com.intellij.execution.testframework.sm.SMCustomMessagesParsing;
26 import com.intellij.execution.testframework.sm.runner.OutputToGeneralTestEventsConverter;
27 import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties;
28 import com.intellij.execution.testframework.sm.runner.SMTestLocator;
29 import com.intellij.execution.testframework.sm.runner.TestProxyFilterProvider;
30 import com.intellij.execution.ui.ConsoleView;
31 import com.intellij.openapi.actionSystem.DefaultActionGroup;
32 import com.intellij.openapi.project.Project;
33 import com.intellij.pom.Navigatable;
34 import org.jetbrains.annotations.NotNull;
35 import org.jetbrains.annotations.Nullable;
36
37 import javax.swing.*;
38 import java.io.File;
39
40 public class ImportedTestConsoleProperties extends SMTRunnerConsoleProperties implements SMCustomMessagesParsing {
41   private final @Nullable SMTRunnerConsoleProperties myProperties;
42   private final File myFile;
43   private final ProcessHandler myHandler;
44
45   public ImportedTestConsoleProperties(@Nullable SMTRunnerConsoleProperties properties,
46                                        File file,
47                                        ProcessHandler handler,
48                                        Project project, RunProfile runConfiguration,
49                                        String frameworkName,
50                                        Executor executor) {
51     super(project, runConfiguration, frameworkName, executor);
52     myProperties = properties;
53     myFile = file;
54     myHandler = handler;
55   }
56
57   @Override
58   public OutputToGeneralTestEventsConverter createTestEventsConverter(@NotNull String testFrameworkName,
59                                                                       @NotNull TestConsoleProperties consoleProperties) {
60     return new ImportedToGeneralTestEventsConverter(testFrameworkName, consoleProperties, myFile, myHandler);
61   }
62
63   @Override
64   public boolean isIdBasedTestTree() {
65     return false;
66   }
67
68   @Override
69   public boolean isPrintTestingStartedTime() {
70     return false;
71   }
72
73   @Nullable
74   @Override
75   public Navigatable getErrorNavigatable(@NotNull Location<?> location,
76                                          @NotNull String stacktrace) {
77     return myProperties == null ? null : myProperties.getErrorNavigatable(location, stacktrace);
78   }
79
80   @Nullable
81   @Override
82   public Navigatable getErrorNavigatable(@NotNull Project project,
83                                          @NotNull String stacktrace) {
84     return myProperties == null ? null : myProperties.getErrorNavigatable(project, stacktrace);
85   }
86
87   @Override
88   public void addStackTraceFilter(Filter filter) {
89     if (myProperties != null) {
90       myProperties.addStackTraceFilter(filter);
91     }
92   }
93
94   @Override
95   public boolean fixEmptySuite() {
96     return myProperties != null && myProperties.fixEmptySuite();
97   }
98
99   @Override
100   @Nullable
101   public SMTestLocator getTestLocator() {
102     return myProperties == null ? null : myProperties.getTestLocator();
103   }
104
105   @Override
106   @Nullable
107   public TestProxyFilterProvider getFilterProvider() {
108     return myProperties == null ? null : myProperties.getFilterProvider();
109   }
110
111   @Override
112   @Nullable
113   public AbstractRerunFailedTestsAction createRerunFailedTestsAction(ConsoleView consoleView) {
114     return myProperties == null ? null : myProperties.createRerunFailedTestsAction(consoleView);
115   }
116
117   @Override
118   public void appendAdditionalActions(DefaultActionGroup actionGroup, JComponent parent, TestConsoleProperties target) {
119     if (myProperties != null) {
120       myProperties.appendAdditionalActions(actionGroup, parent, this);
121     }
122   }
123
124   @Override
125   public int getSelectionMode() {
126     return myProperties != null ? myProperties.getSelectionMode() : super.getSelectionMode();
127   }
128 }