private void doOneTest(
      String fileName,
      String lookupObject,
      boolean testExternal,
      boolean testForElementUnderCaret,
      String... additional)
      throws Exception {

    configureByFiles(null, additional);
    final DocumentationTestContext context = new DocumentationTestContext(fileName);

    if (testForElementUnderCaret) {
      assertNotNull("inline help for " + fileName, context.generateDoc());
      if (testExternal) {
        assertNotNull(
            "external help",
            context.documentationProvider.getUrlFor(context.element, context.originalElement));
      }
    }

    if (lookupObject != null) {
      PsiElement docElement =
          context.documentationProvider.getDocumentationElementForLookupItem(
              context.psiFile.getManager(), lookupObject, context.originalElement);
      assertNotNull("no element for " + fileName, docElement);
      assertNotNull(
          "inline help for lookup",
          context.documentationProvider.generateDoc(docElement, context.originalElement));
      if (testExternal) {
        assertNotNull(
            "external help for lookup",
            context.documentationProvider.getUrlFor(docElement, context.originalElement));
      }
    }
  }
  private void doQuickDocGenerationTestWithCheckExpectedResult(
      Object completionVariant, final String... baseFileNames) throws Exception {
    final DocumentationTestContext context = new DocumentationTestContext(baseFileNames);
    String pathname = getTestDataPath() + baseFileNames[0] + ".expected.html";
    VirtualFile vfile = LocalFileSystem.getInstance().findFileByIoFile(new File(pathname));
    assertNotNull(pathname + " not found", vfile);
    String expectedText = StringUtil.convertLineSeparators(VfsUtilCore.loadText(vfile));
    assertEquals(expectedText, StringUtil.convertLineSeparators(context.generateDoc()));

    if (completionVariant != null) {
      vfile =
          LocalFileSystem.getInstance()
              .findFileByIoFile(
                  new File(getTestDataPath() + baseFileNames[0] + ".expected.completion.html"));
      expectedText = StringUtil.convertLineSeparators(VfsUtilCore.loadText(vfile), "\n");
      assertEquals(
          expectedText,
          StringUtil.convertLineSeparators(
              context.generateDocForCompletion(completionVariant), "\n"));
    }
  }
 public void testSchemaPrefix() throws Exception {
   DocumentationTestContext context = new DocumentationTestContext("SchemaPrefix.xml");
   assertEquals(
       "XML Namespace Prefix \"xs\" (http://www.w3.org/2001/XMLSchema)",
       context.getQuickNavigateInfo());
 }