Java 类javax.swing.text.html.parser.ParserDelegator 实例源码

项目:WikiParser    文件:ArticleExtractor.java   
private String cleanWikiTest(String markup) throws IOException
{

    StringWriter writer = new StringWriter();

    HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);
    builder.setEmitAsDocument(false);

    MarkupParser parser = new MarkupParser(new MediaWikiDialect());
    parser.setBuilder(builder);
    parser.parse(markup);

    final String html = writer.toString();
    final StringBuilder cleaned = new StringBuilder();

    HTMLEditorKit.ParserCallback callback = new HTMLEditorKit.ParserCallback()
    {
    public void handleText(char[] data, int pos)
    {
        cleaned.append(new String(data)).append(' ');
    }
    };
    new ParserDelegator().parse(new StringReader(html), callback, false);

    return cleaned.toString();
}
项目:ChAsE    文件:UrlCrawler.java   
public void processFileHierarchy(String urlString) {
    try {   
        System.out.println(urlString);
        URL url = new URL(urlString);
        InputStream in = url.openStream();
        InputStreamReader reader = new InputStreamReader(in);
        // ParserCallback class to handle the href tags
        LinkHandler callback = new LinkHandler();
        // key step to enable recursion
        callback.setCurrentPath(urlString);
        // parse the HTML document
        new ParserDelegator().parse(reader, callback, false);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertAfterEnd(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 4);

    listener.reset();
    htmlDoc.insertAfterEnd(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 12);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    Element leaf = p.getElement(0);

    try {
        htmlDoc.insertAfterEnd(leaf, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.insertAfterEnd(null, "<a>link</a>");
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterStart_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterStart(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(1, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterStart_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertAfterStart(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(p, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);

    listener.reset();
    htmlDoc.insertAfterStart(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertBeforeEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(1, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeEnd_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertBeforeEnd(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(p, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 4);

    listener.reset();
    htmlDoc.insertBeforeEnd(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 13);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertBeforeStart(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertBeforeStart(branch2, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }

    listener.reset();
    htmlDoc.insertBeforeStart(branch1, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    try {
        htmlDoc.insertBeforeStart(branch3, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.insertBeforeStart(null, "<a>link</a>");
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.setInnerHTML(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(4, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[]{'\n'});
    checkEndTagSpec(specs[2]);
    checkEndTagSpec(specs[3]);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Events() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    final Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.setInnerHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals(2, listener.getNumEvents());
    checkEvent(branch2, listener.getEvent(0), DocumentEvent.EventType.INSERT, 4, 9, 0);
    checkEvent(branch2, listener.getEvent(1), DocumentEvent.EventType.REMOVE, 4, 14, 8);

    listener.reset();
    htmlDoc.setInnerHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals(2, listener.getNumEvents());
    checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 4, 9, 0);
    checkEvent(branch1, listener.getEvent(1), DocumentEvent.EventType.REMOVE, 2, 10, 8);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Structure() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    assertEquals(4, branch2.getElementCount());
    htmlDoc.setInnerHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch2.getElementCount());

    htmlDoc.setInnerHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch1.getElementCount());

    htmlDoc.setInnerHTML(root, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, root.getElementCount());
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.setOuterHTML(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(4, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
    assertSpec(specs[2], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[]{'\n'});
    checkEndTagSpec(specs[3]);
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Structure() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    assertEquals(1, branch1.getElementCount());
    htmlDoc.setOuterHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch1.getElementCount());

    htmlDoc.setOuterHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, root.getElementCount());

    htmlDoc.setOuterHTML(root, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, htmlDoc.getDefaultRootElement().getElementCount());
}
项目:cn1    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    try {
        htmlDoc.setOuterHTML(branch3, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setOuterHTML(null, "<a>link</a>");
}
项目:classpath    文件:Parser_Test.java   
public String verify(String html, String trace)
              throws Exception
{
  out.setLength(0);

  HTMLEditorKit.ParserCallback callback = this;
  ParserDelegator delegator = new ParserDelegator();
  delegator.parse(new StringReader(html), callback, true);

  String ou = out.toString();
  if (trace != null)
    {
      if (!ou.equals(trace))
        {
          System.err.println("Unable to parse '" + html + "':");
          System.err.println("    expected: '" + trace + "',");
          System.out.println("    returned: '" + ou + "'.");
          throw new Exception("'" + html + "' -> '" + ou + "' expected '" +
                              trace + "'"
                             );
        }
    }
  return ou;
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertAfterEnd(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 4);

    listener.reset();
    htmlDoc.insertAfterEnd(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 12);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    Element leaf = p.getElement(0);

    try {
        htmlDoc.insertAfterEnd(leaf, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.insertAfterEnd(null, "<a>link</a>");
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterStart_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterStart(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(1, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterStart_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertAfterStart(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(p, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);

    listener.reset();
    htmlDoc.insertAfterStart(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertBeforeEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(1, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeEnd_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertBeforeEnd(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(p, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 4);

    listener.reset();
    htmlDoc.insertBeforeEnd(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 13);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertBeforeStart(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertBeforeStart(branch2, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }

    listener.reset();
    htmlDoc.insertBeforeStart(branch1, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    if (!isHarmony()) {
        checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 0);
    } else {
        checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 2, 8, 0);
    }
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertBeforeStart_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    try {
        htmlDoc.insertBeforeStart(branch3, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.insertBeforeStart(null, "<a>link</a>");
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.setInnerHTML(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(4, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[]{'\n'});
    checkEndTagSpec(specs[2]);
    checkEndTagSpec(specs[3]);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Events() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    final Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.setInnerHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals(2, listener.getNumEvents());
    checkEvent(branch2, listener.getEvent(0), DocumentEvent.EventType.INSERT, 4, 9, 0);
    checkEvent(branch2, listener.getEvent(1), DocumentEvent.EventType.REMOVE, 4, 14, 8);

    listener.reset();
    htmlDoc.setInnerHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals(2, listener.getNumEvents());
    checkEvent(branch1, listener.getEvent(0), DocumentEvent.EventType.INSERT, 4, 9, 0);
    checkEvent(branch1, listener.getEvent(1), DocumentEvent.EventType.REMOVE, 2, 10, 8);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetInnerHTML_Structure() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    assertEquals(4, branch2.getElementCount());
    htmlDoc.setInnerHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch2.getElementCount());

    htmlDoc.setInnerHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch1.getElementCount());

    htmlDoc.setInnerHTML(root, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, root.getElementCount());
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.setOuterHTML(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(4, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
    assertSpec(specs[2], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, new char[]{'\n'});
    checkEndTagSpec(specs[3]);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Structure() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);

    htmlDoc.setParser(new ParserDelegator());
    assertEquals(1, branch1.getElementCount());
    htmlDoc.setOuterHTML(branch2, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, branch1.getElementCount());

    htmlDoc.setOuterHTML(branch1, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, root.getElementCount());

    htmlDoc.setOuterHTML(root, "<a>link</a><b>bold</b>");
    assertEquals("linkbold", htmlDoc.getText(0, htmlDoc.getLength()));
    assertEquals(3, htmlDoc.getDefaultRootElement().getElementCount());
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testSetOuterHTML_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element branch1 = root.getElement(0);
    Element branch2 = branch1.getElement(0);
    Element branch3 = branch2.getElement(0);

    try {
        htmlDoc.setOuterHTML(branch3, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setOuterHTML(null, "<a>link</a>");
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterEnd(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(2, specs.length);
    checkEndTagSpec(specs[0]);
    assertSpec(specs[1], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[1].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Events() throws Exception {
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    addElement();

    htmlDoc.setParser(new ParserDelegator());
    DocumentController listener = new DocumentController();
    htmlDoc.addDocumentListener(listener);
    htmlDoc.insertAfterEnd(p, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(body, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 4);

    listener.reset();
    htmlDoc.insertAfterEnd(body, "<a>link</a><b>bold</b>");
    assertEquals(1, listener.getNumEvents());
    checkEvent(root, listener.getEvent(0), DocumentEvent.EventType.INSERT, 3, 8, 12);
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterEnd_Exceptions() throws Exception {
    addElements();
    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);
    Element leaf = p.getElement(0);

    try {
        htmlDoc.insertAfterEnd(leaf, "<a>link</a>");
        fail("IllegalStateException should be thrown");
    } catch (IllegalStateException e) {
    }

    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.insertAfterEnd(null, "<a>link</a>");
}
项目:freeVM    文件:HTMLDocument_InsertsTest.java   
public void testInsertAfterStart_Specs2() throws Exception {
    htmlDoc.setParser(new ParserDelegator());
    htmlDoc.setEditable(false);

    Element root = htmlDoc.getDefaultRootElement();
    Element body = root.getElement(0);
    Element p = body.getElement(0);

    htmlDoc.insertAfterStart(p, "<a>link</a>");
    Marker insertMarker = htmlDoc.getInsertMarker();
    assertEquals(new Integer(0), getInsertInfo(insertMarker).get(1));
    ElementSpec[] specs = (ElementSpec[])(getInsertInfo(insertMarker).get(0));
    insertMarker.reset();
    assertEquals(1, specs.length);
    assertSpec(specs[0], ElementSpec.ContentType, ElementSpec.OriginateDirection, 0, "link".toCharArray());
    AttributeSet specAttr = specs[0].getAttributes();
    assertEquals(2, specAttr.getAttributeCount());
    checkAttributes(specAttr, StyleConstants.NameAttribute, Tag.CONTENT);
}