package org.jabref.logic.util.strings; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; public class DiffHighlightingTest { @Test public void testGenerateDiffHighlightingBothNullReturnsNull() { assertNull(DiffHighlighting.generateDiffHighlighting(null, null, "")); } @Test(expected = NullPointerException.class) public void testNullSeparatorThrowsNPE() { assertNull(DiffHighlighting.generateDiffHighlighting("", "", null)); } @Test public void testGenerateDiffHighlightingNoDiff() { assertEquals("foo", DiffHighlighting.generateDiffHighlighting("foo", "foo", "")); } @Test public void testGenerateDiffHighlightingSingleWordAddTextWordDiff() { assertEquals("<span class=del>foo</span> <span class=add>foobar</span>", DiffHighlighting.generateDiffHighlighting("foo", "foobar", " ")); } @Test public void testGenerateDiffHighlightingSingleWordAddTextCharacterDiff() { assertEquals("foo<span class=add>bar</span>", DiffHighlighting.generateDiffHighlighting("foo", "foobar", "")); } @Test public void testGenerateDiffHighlightingSingleWordDeleteTextWordDiff() { assertEquals("<span class=del>foobar</span> <span class=add>foo</span>", DiffHighlighting.generateDiffHighlighting("foobar", "foo", " ")); } @Test public void testGenerateDiffHighlightingSingleWordDeleteTextCharacterDiff() { assertEquals("foo<span class=del>bar</span>", DiffHighlighting.generateDiffHighlighting("foobar", "foo", "")); } @Test public void generateSymmetricHighlightingSingleWordAddTextWordDiff() { assertEquals("<span class=change>foo</span>", DiffHighlighting.generateSymmetricHighlighting("foo", "foobar", " ")); } @Test public void generateSymmetricHighlightingSingleWordAddTextCharacterDiff() { assertEquals("foo", DiffHighlighting.generateSymmetricHighlighting("foo", "foobar", "")); } @Test public void generateSymmetricHighlightingSingleWordDeleteTextWordDiff() { assertEquals("<span class=change>foobar</span>", DiffHighlighting.generateSymmetricHighlighting("foobar", "foo", " ")); } @Test public void generateSymmetricHighlightingSingleWordDeleteTextCharacterDiff() { assertEquals("foo<span class=add>bar</span>", DiffHighlighting.generateSymmetricHighlighting("foobar", "foo", "")); } @Test public void generateSymmetricHighlightingMultipleWordsDeleteTextCharacterDiff() { assertEquals("foo<span class=add>bar</span> and <span class=add>some</span>thing", DiffHighlighting.generateSymmetricHighlighting("foobar and something", "foo and thing", "")); } @Test public void generateSymmetricHighlightingMultipleWordsDeleteTextWordDiff() { assertEquals("foo <span class=add>bar</span> and <span class=add>some</span> thing", DiffHighlighting.generateSymmetricHighlighting("foo bar and some thing", "foo and thing", " ")); } }