From 98a6ef3a2342655a962c69ce84af7612563754f5 Mon Sep 17 00:00:00 2001 From: Alexander Doroshko Date: Tue, 20 Oct 2009 13:58:06 +0400 Subject: [PATCH] skip child nodes verification in case of element in verification resource --- .../hierarchy/HierarchyViewTestBase.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/java/testFramework/src/com/intellij/testFramework/codeInsight/hierarchy/HierarchyViewTestBase.java b/java/testFramework/src/com/intellij/testFramework/codeInsight/hierarchy/HierarchyViewTestBase.java index 249b5125bdd9..cb1945c6c2c9 100755 --- a/java/testFramework/src/com/intellij/testFramework/codeInsight/hierarchy/HierarchyViewTestBase.java +++ b/java/testFramework/src/com/intellij/testFramework/codeInsight/hierarchy/HierarchyViewTestBase.java @@ -16,6 +16,11 @@ import java.util.*; */ public abstract class HierarchyViewTestBase extends CodeInsightTestCase { + private static final String NODE_ELEMENT_NAME = "node"; + private static final String ANY_NODES_ELEMENT_NAME = "any"; + private static final String TEXT_ATTR_NAME = "text"; + private static final String BASE_ATTR_NAME = "base"; + protected abstract String getBasePath(); protected void doHierarchyTest(final Computable treeStructureComputable, final String... fileNames) @@ -33,7 +38,11 @@ public abstract class HierarchyViewTestBase extends CodeInsightTestCase { private static void checkHierarchyTreeStructure(final HierarchyTreeStructure treeStructure, final Document document) { final HierarchyNodeDescriptor rootNodeDescriptor = (HierarchyNodeDescriptor)treeStructure.getRootElement(); rootNodeDescriptor.update(); - checkNodeDescriptorRecursively(treeStructure, rootNodeDescriptor, document.getRootElement()); + final Element rootElement = document.getRootElement(); + if (rootElement == null || !NODE_ELEMENT_NAME.equals(rootElement.getName())) { + throw new IllegalArgumentException("Incorrect root element in verification resource"); + } + checkNodeDescriptorRecursively(treeStructure, rootNodeDescriptor, rootElement); } private static void checkNodeDescriptorRecursively(final HierarchyTreeStructure treeStructure, @@ -47,22 +56,26 @@ public abstract class HierarchyViewTestBase extends CodeInsightTestCase { private static void checkBaseNode(final HierarchyTreeStructure treeStructure, final HierarchyNodeDescriptor descriptor, final Element expectedElement) { - final String baseAttrValue = expectedElement.getAttributeValue("base"); + final String baseAttrValue = expectedElement.getAttributeValue(BASE_ATTR_NAME); final HierarchyNodeDescriptor baseDescriptor = treeStructure.getBaseDescriptor(); final boolean mustBeBase = "true".equalsIgnoreCase(baseAttrValue); assertTrue("Incorrect base node", mustBeBase ? baseDescriptor == descriptor : baseDescriptor != descriptor); } private static void checkContent(final HierarchyNodeDescriptor descriptor, final Element expectedElement) { - assertEquals(expectedElement.getAttributeValue("text"), descriptor.getHighlightedText().getText()); + assertEquals(expectedElement.getAttributeValue(TEXT_ATTR_NAME), descriptor.getHighlightedText().getText()); } private static void checkChildren(final HierarchyTreeStructure treeStructure, final HierarchyNodeDescriptor descriptor, final Element element) { + if (element.getChild(ANY_NODES_ELEMENT_NAME) != null) { + return; + } + final Object[] children = treeStructure.getChildElements(descriptor); //noinspection unchecked - final List expectedChildren = new ArrayList(element.getChildren()); + final List expectedChildren = new ArrayList(element.getChildren(NODE_ELEMENT_NAME)); assertEquals("Children of " + descriptor.getHighlightedText().getText(), expectedChildren.size(), children.length); for (Object child : children) { @@ -78,7 +91,7 @@ public abstract class HierarchyViewTestBase extends CodeInsightTestCase { Collections.sort(expectedChildren, new Comparator() { public int compare(final Element first, final Element second) { - return first.getAttributeValue("text").compareTo(second.getAttributeValue("text")); + return first.getAttributeValue(TEXT_ATTR_NAME).compareTo(second.getAttributeValue(TEXT_ATTR_NAME)); } }); @@ -90,5 +103,3 @@ public abstract class HierarchyViewTestBase extends CodeInsightTestCase { } } - -