From 7a345971ca2272a94fd7b74883bb21d23835a59c Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 16 Jul 2015 17:18:26 +0300 Subject: [PATCH] import test results: unescape xml entities --- .../history/ImportedTestContentHandler.java | 12 +++++++----- ...GeneralToSMTRunnerEventsConvertorTest.java | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/history/ImportedTestContentHandler.java b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/history/ImportedTestContentHandler.java index b949df18d78c..e542f7b21b81 100644 --- a/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/history/ImportedTestContentHandler.java +++ b/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/history/ImportedTestContentHandler.java @@ -43,17 +43,19 @@ public class ImportedTestContentHandler extends DefaultHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (TestResultsXmlFormatter.ELEM_SUITE.equals(qName)) { - final String suiteName = attributes.getValue(TestResultsXmlFormatter.ATTR_NAME); - myProcessor.onSuiteStarted(new TestSuiteStartedEvent(suiteName, attributes.getValue(TestResultsXmlFormatter.ATTR_LOCATION))); + final String suiteName = StringUtil.unescapeXml(attributes.getValue(TestResultsXmlFormatter.ATTR_NAME)); + myProcessor.onSuiteStarted(new TestSuiteStartedEvent(suiteName, + StringUtil.unescapeXml(attributes.getValue(TestResultsXmlFormatter.ATTR_LOCATION)))); mySuites.push(suiteName); } else if (TestResultsXmlFormatter.ELEM_TEST.equals(qName)) { - final String name = attributes.getValue(TestResultsXmlFormatter.ATTR_NAME); + final String name = StringUtil.unescapeXml(attributes.getValue(TestResultsXmlFormatter.ATTR_NAME)); myCurrentTest = name; myDuration = attributes.getValue(TestResultsXmlFormatter.ATTR_DURATION); myStatus = attributes.getValue(TestResultsXmlFormatter.ATTR_STATUS); final String isConfig = attributes.getValue(TestResultsXmlFormatter.ATTR_CONFIG); - final TestStartedEvent startedEvent = new TestStartedEvent(name, attributes.getValue(TestResultsXmlFormatter.ATTR_LOCATION)); + final TestStartedEvent startedEvent = new TestStartedEvent(name, + StringUtil.unescapeXml(attributes.getValue(TestResultsXmlFormatter.ATTR_LOCATION))); if (isConfig != null && Boolean.valueOf(isConfig)) { startedEvent.setConfig(true); } @@ -76,7 +78,7 @@ public class ImportedTestContentHandler extends DefaultHandler { @Override public void endElement(String uri, String localName, String qName) throws SAXException { - final String currentText = currentValue.toString(); + final String currentText = StringUtil.unescapeXml(currentValue.toString()); final boolean isTestOutput = myCurrentTest == null || TestResultsXmlFormatter.STATUS_PASSED.equals(myStatus) || !myErrorOutput; if (isTestOutput) { currentValue.setLength(0); diff --git a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java index 41f4b4b02665..2ce9b1695713 100644 --- a/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java +++ b/platform/smRunner/testSrc/com/intellij/execution/testframework/sm/runner/GeneralToSMTRunnerEventsConvertorTest.java @@ -447,4 +447,23 @@ public class GeneralToSMTRunnerEventsConvertorTest extends BaseSMTRunnerTestCase assertEquals(1, tests.size()); assertEquals("ATest", tests.get(0).getName()); } + + public void testEscapedImportTest() throws Exception { + myEventsProcessor.onStartTesting(); + ImportedToGeneralTestEventsConverter.parseTestResults(new StringReader("" + + "\n" + + " \n" + + " \n" + + " \n" + + "\n"), myEventsProcessor); + myEventsProcessor.onFinishTesting(); + + final List children = myResultsViewer.getTestsRootNode().getChildren(); + assertEquals(1, children.size()); + final SMTestProxy suite = children.get(0); + assertEquals("sui&te1", suite.getName()); + final List tests = suite.getChildren(); + assertEquals(1, tests.size()); + assertEquals("ATe&st", tests.get(0).getName()); + } }