001package edu.pdx.cs.joy.grader.poa.ui;
002
003import org.junit.jupiter.api.Test;
004
005import javax.swing.text.BadLocationException;
006import javax.swing.text.html.HTMLDocument;
007import javax.swing.text.html.HTMLEditorKit;
008import java.io.*;
009
010import static org.hamcrest.MatcherAssert.assertThat;
011import static org.hamcrest.Matchers.containsString;
012
013public class HTMLEditorKitTest {
014
015  @Test
016  public void canParseHtmlFromAnEmail() throws IOException, BadLocationException {
017    InputStream resource = getClass().getResourceAsStream("HtmlFromAnEmail.html");
018    Reader reader = new InputStreamReader(resource);
019
020    HTMLEditorKit kit = new HTMLEditorKit();
021    HTMLDocument document = new HTMLDocument();
022    document.getDocumentProperties().put("IgnoreCharsetDirective", true);
023    kit.read(reader, document, 0);
024
025    StringWriter writer = new StringWriter();
026    kit.write(writer, document, 0, document.getLength());
027
028    String renderedHtml = writer.toString();
029
030    assertThat(renderedHtml, containsString("short of one thing in particular"));
031  }
032}