package edu.harvard.iq.dataverse.util; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; /** * * @author rmp553 */ public class MarkupCheckerTest { public MarkupCheckerTest() { } @BeforeClass public static void setUpClass() { } @AfterClass public static void tearDownClass() { } @Before public void setUp() { } @After public void tearDown() { } private void msg(String s) { System.out.println(s); } private void msgu(String s) { msg("--------------------------------------"); msg(s); } /** * Test of sanitizeBasicHTML method, of class MarkupChecker. */ @Test public void testSanitizeBasicHTML() { System.out.println("sanitizeBasicHTML"); /*String safeStr = "<img src=\"some/png.png\" alt=\"bee\" class=\"some-class\">"; String sanitized = MarkupChecker.sanitizeBasicHTML(safeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); */ String safeStr = "<script>alert('hi')</script>"; String sanitized = MarkupChecker.sanitizeBasicHTML(safeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(sanitized.equals("")); String unsafeStr = "<map name=\"rtdcCO\">"; safeStr = "<map name=\"rtdcCO\"></map>"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "<area shape=\"rect\" coords=\"42,437,105,450\" href=\"/dvn/dv/rtdc/faces/study/StudyPage.xhtml?globalId=hdl:10904/10006\" title=\"Galactic Center (DHT02)\" alt=\"Galactic Center (DHT02)\">"; safeStr = unsafeStr;//"<map name=\"rtdcCO\"></map>"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "<map name=\"rtdcCO\"><area shape=\"rect\" coords=\"42,437,105,450\" href=\"/dvn/dv/rtdc/faces/study/StudyPage.xhtml?globalId=hdl:10904/10006\" title=\"Galactic Center (DHT02)\" alt=\"Galactic Center (DHT02)\"></map>"; safeStr = unsafeStr;//"<map name=\"rtdcCO\"></map>"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "<p>hello</"; safeStr = "<p>hello</</p>"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "<h1>hello</h2>"; safeStr = "<h1>hello</h1>"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "the <a href=\"http://dataverse.org\" target=\"_blank\">Dataverse project</a> in a new window"; safeStr = "the \n<a href=\"http://dataverse.org\" rel=\"nofollow\" target=\"_blank\">Dataverse project</a> in a new window"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); unsafeStr = "the <a href=\"http://dataverse.org\">Dataverse project</a> in a new window"; safeStr = "the \n<a href=\"http://dataverse.org\" rel=\"nofollow\" target=\"_blank\">Dataverse project</a> in a new window"; sanitized = MarkupChecker.sanitizeBasicHTML(unsafeStr); this.msgu("safeStr: " + safeStr + "\nsanitized: " + sanitized); assertTrue(safeStr.equals(sanitized)); } /** * Test of stripAllTags method, of class MarkupChecker. */ @Test public void testStripAllTags() { /* System.out.println("stripAllTags"); String unsafe = ""; String expResult = ""; String result = MarkupChecker.stripAllTags(unsafe); assertEquals(expResult, result); // TODO review the generated test code and remove the default call to fail. fail("The test case is a prototype."); */ } }