package fitnesse.testsystems.slim; import fitnesse.testsystems.slim.HtmlDiffUtil; import org.junit.Assert; import org.junit.Test; public class HtmlDiffUtilTest { @Test public void testCompletelyDifferentTexts() { String actual = "abc"; String expected = "xyz"; String htmlDiff = null; htmlDiff = HtmlDiffUtil.buildActual(actual, expected); Assert.assertEquals("<span class=\"diff\">abc</span>", htmlDiff); htmlDiff = HtmlDiffUtil.buildExpected(actual, expected); Assert.assertEquals("<span class=\"diff\">xyz</span>", htmlDiff); } @Test public void testOneDifferentCharInMiddleOfText() { String actual = "abc"; String expected = "axc"; String htmlDiff = null; htmlDiff = HtmlDiffUtil.buildActual(actual, expected); Assert.assertEquals("a<span class=\"diff\">b</span>c", htmlDiff); htmlDiff = HtmlDiffUtil.buildExpected(actual, expected); Assert.assertEquals("a<span class=\"diff\">x</span>c", htmlDiff); } @Test public void testOneDifferentCharAtTheBeginningOfText() { String actual = "abc"; String expected = "xbc"; String htmlDiff = null; htmlDiff = HtmlDiffUtil.buildActual(actual, expected); Assert.assertEquals("<span class=\"diff\">a</span>bc", htmlDiff); htmlDiff = HtmlDiffUtil.buildExpected(actual, expected); Assert.assertEquals("<span class=\"diff\">x</span>bc", htmlDiff); } @Test public void testOneDifferentCharAtTheEndOfText() { String actual = "abc"; String expected = "abx"; String htmlDiff = null; htmlDiff = HtmlDiffUtil.buildActual(actual, expected); Assert.assertEquals("ab<span class=\"diff\">c</span>", htmlDiff); htmlDiff = HtmlDiffUtil.buildExpected(actual, expected); Assert.assertEquals("ab<span class=\"diff\">x</span>", htmlDiff); } @Test public void testBuilderOpeningTag() { String actual = "abc"; String expected = "axc"; String htmlDiff = null; htmlDiff = new HtmlDiffUtil.ActualBuilder(actual, expected) .setOpeningTag("<span style=\"font-weight: bold;\">").build(); Assert.assertEquals("a<span style=\"font-weight: bold;\">b</span>c", htmlDiff); htmlDiff = new HtmlDiffUtil.ExpectedBuilder(actual, expected) .setOpeningTag("<span style=\"font-weight: bold;\">").build(); Assert.assertEquals("a<span style=\"font-weight: bold;\">x</span>c", htmlDiff); } @Test public void testBuilderClosingTag() { String actual = "abc"; String expected = "axc"; String htmlDiff = null; htmlDiff = new HtmlDiffUtil.ActualBuilder(actual, expected) .setClosingTag("</span><em>extra</em>").build(); Assert.assertEquals("a<span class=\"diff\">b</span><em>extra</em>c", htmlDiff); htmlDiff = new HtmlDiffUtil.ExpectedBuilder(actual, expected) .setClosingTag("</span><em>extra</em>").build(); Assert.assertEquals("a<span class=\"diff\">x</span><em>extra</em>c", htmlDiff); } @Test public void testEscapeHtmlCharacters() { String actual = "1 > 2"; String expected = "1 < 2"; String htmlDiff = null; htmlDiff = HtmlDiffUtil.buildActual(actual, expected); Assert.assertEquals("1 <span class=\"diff\">></span> 2", htmlDiff); htmlDiff = HtmlDiffUtil.buildExpected(actual, expected); Assert.assertEquals("1 <span class=\"diff\"><</span> 2", htmlDiff); } }