ComponentWithBrowseButton - optional remove listener on hide
[fedora-idea.git] / platform / smRunner / testSrc / com / intellij / execution / testframework / sm / runner / ui / SMTRunnerUIActionsHandlerTest.java
blob7d7638e25ef849079af91746d269d446e34fec31
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package com.intellij.execution.testframework.sm.runner.ui;
18 import com.intellij.execution.testframework.AbstractTestProxy;
19 import com.intellij.execution.testframework.TestConsoleProperties;
20 import com.intellij.execution.testframework.sm.runner.BaseSMTRunnerTestCase;
21 import com.intellij.execution.testframework.sm.runner.SMTestProxy;
22 import com.intellij.openapi.util.Disposer;
23 import org.jetbrains.annotations.Nullable;
25 /**
26 * @author Roman Chernyatchik
28 public class SMTRunnerUIActionsHandlerTest extends BaseSMTRunnerTestCase {
29 private MockTestResultsViewer myResultsViewer;
30 private TestConsoleProperties myProperties;
31 private SMTRunnerUIActionsHandler myUIActionsHandler;
32 private AbstractTestProxy mySelectedTestProxy;
34 @Override
35 protected void setUp() throws Exception {
36 super.setUp();
38 myProperties = createConsoleProperties();
39 myResultsViewer = new MockTestResultsViewer(myProperties, mySuite) {
40 @Override
41 public void selectAndNotify(@Nullable final AbstractTestProxy proxy) {
42 super.selectAndNotify(proxy);
43 mySelectedTestProxy = proxy;
47 myUIActionsHandler = new SMTRunnerUIActionsHandler(myProperties);
49 TestConsoleProperties.HIDE_PASSED_TESTS.set(myProperties, false);
50 TestConsoleProperties.OPEN_FAILURE_LINE.set(myProperties, false);
51 TestConsoleProperties.SCROLL_TO_SOURCE.set(myProperties, false);
52 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, false);
53 TestConsoleProperties.TRACK_RUNNING_TEST.set(myProperties, false);
56 @Override
57 protected void tearDown() throws Exception {
58 Disposer.dispose(myResultsViewer);
60 super.tearDown();
63 public void testSelectFirstDeffect_Failed() {
64 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, true);
65 mySuite.setStarted();
67 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
68 testsSuite.setStarted();
70 // passed test
71 final SMTestProxy testPassed1 = createTestProxy("testPassed1", testsSuite);
72 testPassed1.setStarted();
74 //failed test
75 final SMTestProxy testFailed1 = createTestProxy("testFailed1", testsSuite);
76 testFailed1.setStarted();
77 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed1);
78 assertNull(mySelectedTestProxy);
80 testFailed1.setTestFailed("", "", false);
81 //myUIActionsHandler.onTestFinished(testFailed1);
82 assertNull(mySelectedTestProxy);
84 // passed test numer 2
85 mySelectedTestProxy = null;
86 final SMTestProxy testPassed2 = createTestProxy("testPassed2", testsSuite);
87 testPassed2.setStarted();
88 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPassed2);
89 assertNull(mySelectedTestProxy);
91 testPassed2.setFinished();
92 //myUIActionsHandler.onTestFinished(testPassed2);
93 assertNull(mySelectedTestProxy);
96 //failed test 2
97 final SMTestProxy testFailed2 = createTestProxy("testFailed1", testsSuite);
98 testFailed2.setStarted();
99 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed2);
100 assertNull(mySelectedTestProxy);
102 testFailed2.setTestFailed("", "", false);
103 //myUIActionsHandler.onTestFinished(testFailed2);
104 assertNull(mySelectedTestProxy);
106 // finish suite
107 testsSuite.setFinished();
108 assertNull(mySelectedTestProxy);
110 //testing finished
111 mySuite.setFinished();
112 assertNull(mySelectedTestProxy);
114 myUIActionsHandler.onTestingFinished(myResultsViewer);
115 assertEquals(testFailed1, mySelectedTestProxy);
118 public void testSelectFirstDeffect_Error() {
119 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, true);
120 mySuite.setStarted();
122 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
123 testsSuite.setStarted();
125 // passed test
126 final SMTestProxy testPassed1 = createTestProxy("testPassed1", testsSuite);
127 testPassed1.setStarted();
129 //failed test
130 final SMTestProxy testError = createTestProxy("testError", testsSuite);
131 testError.setStarted();
132 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testError);
133 assertNull(mySelectedTestProxy);
135 testError.setTestFailed("", "", true);
136 //myUIActionsHandler.onTestFinished(testFailed1);
137 assertNull(mySelectedTestProxy);
139 // passed test numer 2
140 mySelectedTestProxy = null;
141 final SMTestProxy testPassed2 = createTestProxy("testPassed2", testsSuite);
142 testPassed2.setStarted();
143 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPassed2);
144 assertNull(mySelectedTestProxy);
146 testPassed2.setFinished();
147 //myUIActionsHandler.onTestFinished(testPassed2);
148 assertNull(mySelectedTestProxy);
151 //failed test
152 final SMTestProxy testFailed2 = createTestProxy("testFailed1", testsSuite);
153 testFailed2.setStarted();
154 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed2);
155 assertNull(mySelectedTestProxy);
157 testFailed2.setTestFailed("", "", false);
158 //myUIActionsHandler.onTestFinished(testFailed2);
159 assertNull(mySelectedTestProxy);
161 // finish suite
162 testsSuite.setFinished();
163 assertNull(mySelectedTestProxy);
165 //testing finished
166 mySuite.setFinished();
167 assertNull(mySelectedTestProxy);
169 myUIActionsHandler.onTestingFinished(myResultsViewer);
170 assertEquals(testError, mySelectedTestProxy);
174 public void testSelectFirstDefect_Priority_Error() {
175 // Priority: error -> failure
176 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, true);
177 mySuite.setStarted();
179 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
180 testsSuite.setStarted();
182 // pending test
183 final SMTestProxy testPending = createTestProxy("testPending", testsSuite);
184 testPending.setStarted();
185 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPending);
186 testPending.setTestIgnored("", "");
188 //failed test
189 final SMTestProxy testFailed = createTestProxy("testFailed", testsSuite);
190 testFailed.setStarted();
191 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed);
192 testFailed.setTestFailed("", "", false);
194 //error test
195 final SMTestProxy testError = createTestProxy("testError", testsSuite);
196 testError.setStarted();
197 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testError);
198 testError.setTestFailed("", "", true);
200 // Second error test just to check that first failed will be selected
201 final SMTestProxy testError2 = createTestProxy("testError2", testsSuite);
202 testError2.setStarted();
203 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testError2);
204 testError2.setTestFailed("", "", true);
206 // finish suite
207 testsSuite.setFinished();
208 assertNull(mySelectedTestProxy);
210 //testing finished
211 mySuite.setFinished();
212 assertNull(mySelectedTestProxy);
214 myUIActionsHandler.onTestingFinished(myResultsViewer);
215 assertEquals(testError, mySelectedTestProxy);
218 public void testSelectFirstDefect_Priority_Failure() {
219 // Priority: error -> failure
220 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, true);
221 mySuite.setStarted();
223 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
224 testsSuite.setStarted();
226 // pending test
227 final SMTestProxy testPending = createTestProxy("testPending", testsSuite);
228 testPending.setStarted();
229 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPending);
230 testPending.setTestIgnored("", "");
232 //failed test
233 final SMTestProxy testFailed = createTestProxy("testFailed", testsSuite);
234 testFailed.setStarted();
235 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed);
236 testFailed.setTestFailed("", "", false);
238 // Second failed test just to check that first failed will be selected
239 final SMTestProxy testFailed2 = createTestProxy("testFailed2", testsSuite);
240 testFailed2.setStarted();
241 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed2);
242 testFailed2.setTestFailed("", "", false);
244 // finish suite
245 testsSuite.setFinished();
246 assertNull(mySelectedTestProxy);
248 //testing finished
249 mySuite.setFinished();
250 assertNull(mySelectedTestProxy);
252 myUIActionsHandler.onTestingFinished(myResultsViewer);
253 assertEquals(testFailed, mySelectedTestProxy);
256 public void testSelectFirstDefect_Priority_Pending() {
257 // Priority: error -> failure
258 TestConsoleProperties.SELECT_FIRST_DEFECT.set(myProperties, true);
259 mySuite.setStarted();
261 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
262 testsSuite.setStarted();
264 // pending test
265 final SMTestProxy testPending = createTestProxy("testPending", testsSuite);
266 testPending.setStarted();
267 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPending);
268 testPending.setTestIgnored("", "");
270 // finish suite
271 testsSuite.setFinished();
272 assertNull(mySelectedTestProxy);
274 //testing finished
275 mySuite.setFinished();
276 assertNull(mySelectedTestProxy);
278 myUIActionsHandler.onTestingFinished(myResultsViewer);
279 // pending tests shouldn't be considered as errors/failures
280 assertNull(mySelectedTestProxy);
283 public void testTrackRunningTest() {
284 TestConsoleProperties.TRACK_RUNNING_TEST.set(myProperties, true);
285 mySuite.setStarted();
287 final SMTestProxy testsSuite = createSuiteProxy("my suite", mySuite);
288 testsSuite.setStarted();
289 assertNull(mySelectedTestProxy);
291 // passed test
292 final SMTestProxy testPassed1 = createTestProxy("testPassed1", testsSuite);
293 testPassed1.setStarted();
294 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPassed1);
295 assertEquals(testPassed1, mySelectedTestProxy);
297 testPassed1.setFinished();
298 //myUIActionsHandler.onTestFinished(testPassed1);
299 assertEquals(testPassed1, mySelectedTestProxy);
301 //failed test
302 final SMTestProxy testFailed1 = createTestProxy("testFailed1", testsSuite);
303 testFailed1.setStarted();
304 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed1);
305 assertEquals(testFailed1, mySelectedTestProxy);
307 testFailed1.setTestFailed("", "", false);
308 //myUIActionsHandler.onTestFinished(testFailed1);
309 assertEquals(testFailed1, mySelectedTestProxy);
311 //error test
312 final SMTestProxy testError = createTestProxy("testError", testsSuite);
313 testError.setStarted();
314 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testError);
315 assertEquals(testError, mySelectedTestProxy);
317 testError.setTestFailed("", "", true);
318 //myUIActionsHandler.onTestFinished(testError);
319 assertEquals(testError, mySelectedTestProxy);
321 //terminated test
322 final SMTestProxy testTerminated = createTestProxy("testTerimated", testsSuite);
323 testTerminated.setStarted();
324 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testTerminated);
325 assertEquals(testTerminated, mySelectedTestProxy);
327 testTerminated.setTerminated();
328 //myUIActionsHandler.onTestFinished(testError);
329 assertEquals(testTerminated, mySelectedTestProxy);
331 // passed test numer 2
332 mySelectedTestProxy = null;
333 final SMTestProxy testPassed2 = createTestProxy("testPassed2", testsSuite);
334 testPassed2.setStarted();
335 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testPassed2);
336 assertEquals(testPassed2, mySelectedTestProxy);
338 testPassed2.setFinished();
339 //myUIActionsHandler.onTestFinished(testPassed2);
340 assertEquals(testPassed2, mySelectedTestProxy);
343 //failed test 2
344 final SMTestProxy testFailed2 = createTestProxy("testFailed2", testsSuite);
345 testFailed2.setStarted();
346 myUIActionsHandler.onTestNodeAdded(myResultsViewer, testFailed2);
347 assertEquals(testFailed2, mySelectedTestProxy);
348 final SMTestProxy lastSelectedTest = testFailed2;
350 testFailed2.setTestFailed("", "", false);
351 //myUIActionsHandler.onTestFinished(testFailed2);
352 assertEquals(lastSelectedTest, mySelectedTestProxy);
354 // finish suite
355 testsSuite.setFinished();
356 assertEquals(lastSelectedTest, mySelectedTestProxy);
358 // root suite finished
359 mySuite.setFinished();
360 assertEquals(lastSelectedTest, mySelectedTestProxy);
362 //testing finished
363 myUIActionsHandler.onTestingFinished(myResultsViewer);
364 assertEquals(lastSelectedTest, mySelectedTestProxy);