+package jalview.util;
+
+import static org.testng.AssertJUnit.assertEquals;
+
+import org.testng.annotations.Test;
+
+public class ParseHtmlBodyAndLinksTest
+{
+ @Test(groups = { "Functional" })
+ public void testParseHtml_noLinks()
+ {
+ ParseHtmlBodyAndLinks testee = new ParseHtmlBodyAndLinks(
+ "<html>something here</html>", false, "\n");
+ assertEquals("something here", testee.getContent());
+ assertEquals("something here", testee.getNonHtmlContent());
+
+ // second argument makes no difference??
+ testee = new ParseHtmlBodyAndLinks("<html>something here</html>", true,
+ "\n");
+ assertEquals("something here", testee.getContent());
+ assertEquals("something here", testee.getNonHtmlContent());
+ }
+
+ @Test(groups = { "Functional" })
+ public void testParseHtml_withLinks()
+ {
+ ParseHtmlBodyAndLinks testee = new ParseHtmlBodyAndLinks(
+ "<html>Please click <a href=\"http://www.nowhere.com\">on this</a> to learn more about <a href=\"http://www.somewhere.com/here\">this</a></html>",
+ false, "\n");
+ assertEquals(
+ "Please click on this%LINK% to learn more about this%LINK%",
+ testee.getContent());
+ assertEquals(
+ "Please click on this%LINK% to learn more about this%LINK%",
+ testee.getNonHtmlContent());
+ assertEquals(2, testee.getLinks().size());
+ assertEquals("on this|http://www.nowhere.com", testee.getLinks().get(0));
+ assertEquals("this|http://www.somewhere.com/here", testee.getLinks()
+ .get(1));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testParseHtml_withLinksWithParameters()
+ {
+ ParseHtmlBodyAndLinks testee = new ParseHtmlBodyAndLinks(
+ "<html>Please click <a href=\"http://www.nowhere.com?id=234&taxon=human\">on this</a> to learn more</html>",
+ false, "\n");
+ assertEquals("Please click on this%LINK% to learn more",
+ testee.getContent());
+ assertEquals("Please click on this%LINK% to learn more",
+ testee.getNonHtmlContent());
+ assertEquals(1, testee.getLinks().size());
+ assertEquals("on this|http://www.nowhere.com?id=234&taxon=human",
+ testee.getLinks().get(0));
+ }
+
+ @Test(groups = { "Functional" })
+ public void testParseHtml_withLinksWithEncoding()
+ {
+ ParseHtmlBodyAndLinks testee = new ParseHtmlBodyAndLinks(
+ "<html>Please click <a href=\"http://www.nowhere.com?id=234&taxon=human&id>3&id<10\">on this</a> to learn &<>more</html>",
+ false, "\n");
+ // html encoding in the text body is translated
+ assertEquals("Please click on this%LINK% to learn &<>more",
+ testee.getContent());
+ assertEquals("Please click on this%LINK% to learn &<>more",
+ testee.getNonHtmlContent());
+ assertEquals(1, testee.getLinks().size());
+ // html encoding in the url links is not translated
+ assertEquals(
+ "on this|http://www.nowhere.com?id=234&taxon=human&id>3&id<10",
+ testee.getLinks().get(0));
+ }
+}