/* * 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.testframework.sm.runner.ui.statistics; import com.intellij.execution.testframework.sm.runner.SMTestProxy; import com.intellij.execution.testframework.sm.runner.ui.TestsPresentationUtil; import com.intellij.execution.testframework.sm.UITestUtil; import com.intellij.ui.SimpleTextAttributes; import com.intellij.util.ui.ColumnInfo; import org.jetbrains.annotations.NotNull; /** * @author Roman Chernyatchik */ public class ColumnResultsTest extends BaseColumnRenderingTest { public void testPresentation_TestNotRun() { doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(1, myFragmentsContainer.getFragments().size()); assertEquals(SimpleTextAttributes.GRAYED_BOLD_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Not run", myFragmentsContainer.getTextAt(0)); } public void testPresentation_TestInProgress() { mySimpleTest.setStarted(); doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Running...", myFragmentsContainer.getTextAt(0)); } public void testPresentation_TestFailure() { mySimpleTest.setStarted(); mySimpleTest.setTestFailed("", "", false); doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Assertion failed", myFragmentsContainer.getTextAt(0)); } public void testPresentation_TestPassed() { mySimpleTest.setStarted(); mySimpleTest.setFinished(); doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Passed", myFragmentsContainer.getTextAt(0)); } public void testPresentation_TestError() { mySimpleTest.setStarted(); mySimpleTest.setTestFailed("", "", true); doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Error", myFragmentsContainer.getTextAt(0)); } public void testPresentation_TestTerminated() { mySimpleTest.setStarted(); mySimpleTest.setTerminated(); doRender(mySimpleTest); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.TERMINATED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("Terminated", myFragmentsContainer.getTextAt(0)); } public void testValueOf_Test() { assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySimpleTest)); mySimpleTest.setStarted(); assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySimpleTest)); mySimpleTest.setFinished(); assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySimpleTest)); } public void testValueOf_Suite() { assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySuite)); mySuite.setStarted(); assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySuite)); createTestProxy(mySuite); assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySuite)); mySuite.setFinished(); assertEquals(ColumnResults.UNDEFINED, myColumn.valueOf(mySuite)); } public void testPresentation_SuiteNotRun() { doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("<NO TESTS>", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteEmpty() { doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("<NO TESTS>", myFragmentsContainer.getTextAt(0)); myFragmentsContainer.clear(); mySuite.setStarted(); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("<NO TESTS>", myFragmentsContainer.getTextAt(0)); myFragmentsContainer.clear(); mySuite.setFinished(); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("<NO TESTS>", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteTestProgress() { mySuite.setStarted(); final SMTestProxy test1 = createTestProxy(mySuite); assertEmpty(myFragmentsContainer.getFragments()); test1.setStarted(); assertEmpty(myFragmentsContainer.getFragments()); } public void testPresentation_SuiteTestPassed() { mySuite.setStarted(); final SMTestProxy test1 = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); test1.setStarted(); test1.setFinished(); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("P:1", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteTestFailed() { mySuite.setStarted(); final SMTestProxy test1 = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); test1.setStarted(); test1.setTestFailed("", "", false); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("F:1 ", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteTestError() { mySuite.setStarted(); final SMTestProxy test1 = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); test1.setStarted(); test1.setTestFailed("", "", true); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("E:1 ", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteTerminated() { mySuite.setStarted(); final SMTestProxy test1 = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); test1.setStarted(); mySuite.setTerminated(); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); } public void testPresentation_SuiteTerminated_WithResults() { mySuite.setStarted(); final SMTestProxy passedTest = createTestProxy(mySuite); final SMTestProxy failedTest = createTestProxy(mySuite); final SMTestProxy errorTest = createTestProxy(mySuite); final SMTestProxy inProgressTest = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); passedTest.setStarted(); passedTest.setFinished(); failedTest.setStarted(); failedTest.setTestFailed("", "", false); failedTest.setFinished(); errorTest.setStarted(); errorTest.setTestFailed("", "", true); errorTest.setFinished(); inProgressTest.setStarted(); mySuite.setTerminated(); doRender(mySuite); assertFragmentsSize(3); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("F:1 ", myFragmentsContainer.getTextAt(0)); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(1)); assertEquals("E:1 ", myFragmentsContainer.getTextAt(1)); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(2)); assertEquals("P:1", myFragmentsContainer.getTextAt(2)); } public void testPresentation_SuiteStarted_DifferentResults() { mySuite.setStarted(); final SMTestProxy passedTest1 = createTestProxy(mySuite); final SMTestProxy passedTest2 = createTestProxy(mySuite); final SMTestProxy passedTest3 = createTestProxy(mySuite); final SMTestProxy failedTest = createTestProxy(mySuite); final SMTestProxy errorTest1 = createTestProxy(mySuite); final SMTestProxy errorTest2 = createTestProxy(mySuite); final SMTestProxy inProgressTest = createTestProxy(mySuite); doRender(mySuite); assertEmpty(myFragmentsContainer.getFragments()); passedTest1.setStarted(); passedTest1.setFinished(); passedTest2.setStarted(); passedTest2.setFinished(); passedTest3.setStarted(); passedTest3.setFinished(); failedTest.setStarted(); failedTest.setTestFailed("", "", false); failedTest.setFinished(); errorTest1.setStarted(); errorTest1.setTestFailed("", "", true); errorTest1.setFinished(); errorTest2.setStarted(); errorTest2.setTestFailed("", "", true); errorTest2.setFinished(); inProgressTest.setStarted(); doRender(mySuite); assertFragmentsSize(3); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("F:1 ", myFragmentsContainer.getTextAt(0)); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(1)); assertEquals("E:2 ", myFragmentsContainer.getTextAt(1)); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(2)); assertEquals("P:3", myFragmentsContainer.getTextAt(2)); } public void testPresentation_SuitePassed() { mySuite.setStarted(); final SMTestProxy passedTest = createTestProxy(mySuite); final SMTestProxy failedTest = createTestProxy(mySuite); passedTest.setStarted(); passedTest.setFinished(); mySuite.setFinished(); doRender(mySuite); assertFragmentsSize(1); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("P:1", myFragmentsContainer.getTextAt(0)); } public void testPresentation_SuiteFailed() { mySuite.setStarted(); final SMTestProxy passedTest = createTestProxy(mySuite); final SMTestProxy failedTest = createTestProxy(mySuite); passedTest.setStarted(); passedTest.setFinished(); failedTest.setStarted(); failedTest.setTestFailed("", "", false); failedTest.setFinished(); mySuite.setFinished(); doRender(mySuite); assertFragmentsSize(2); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("F:1 ", myFragmentsContainer.getTextAt(0)); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(1)); assertEquals("P:1", myFragmentsContainer.getTextAt(1)); } public void testPresentation_SuiteError() { mySuite.setStarted(); final SMTestProxy passedTest = createTestProxy(mySuite); final SMTestProxy failedTest = createTestProxy(mySuite); passedTest.setStarted(); passedTest.setFinished(); failedTest.setStarted(); failedTest.setTestFailed("", "", true); failedTest.setFinished(); mySuite.setFinished(); doRender(mySuite); assertFragmentsSize(2); assertEquals(TestsPresentationUtil.DEFFECT_ATTRIBUTES, myFragmentsContainer.getAttribsAt(0)); assertEquals("E:1 ", myFragmentsContainer.getTextAt(0)); assertEquals(TestsPresentationUtil.PASSED_ATTRIBUTES, myFragmentsContainer.getAttribsAt(1)); assertEquals("P:1", myFragmentsContainer.getTextAt(1)); } @Override protected ColoredRenderer createRenderer(final SMTestProxy testProxy, final UITestUtil.FragmentsContainer fragmentsContainer) { return new MyRenderer(testProxy, fragmentsContainer); } @Override protected ColumnInfo<SMTestProxy, String> createColumn() { return new ColumnResults(); } private class MyRenderer extends ColumnResults.ResultsCellRenderer { private final UITestUtil.FragmentsContainer myFragmentsContainer; private MyRenderer(final SMTestProxy proxy, final UITestUtil.FragmentsContainer fragmentsContainer) { super(proxy); myFragmentsContainer = fragmentsContainer; } @Override public void append(@NotNull final String fragment, @NotNull final SimpleTextAttributes attributes, final boolean isMainText) { myFragmentsContainer.append(fragment, attributes); } } }