package org.jabref.logic.bibtex; import java.util.Collections; import org.jabref.logic.util.OS; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; public class FieldContentParserTest { private FieldContentParser parser; private FieldContentParserPreferences prefs; @Before public void setUp() throws Exception { prefs = new FieldContentParserPreferences(Collections.emptyList()); parser = new FieldContentParser(prefs); } @Test public void unifiesLineBreaks() { String original = "I\r\nunify\nline\rbreaks."; String expected = "I\nunify\nline\nbreaks.".replace("\n", OS.NEWLINE); String processed = parser.format(new StringBuilder(original), "abstract").toString(); assertEquals(expected, processed); } @Test public void retainsWhitespaceForMultiLineFields() { String original = "I\nkeep\nline\nbreaks\nand\n\ttabs."; String formatted = original.replace("\n", OS.NEWLINE); String abstrakt = parser.format(new StringBuilder(original), "abstract").toString(); String review = parser.format(new StringBuilder(original), "review").toString(); assertEquals(formatted, abstrakt); assertEquals(formatted, review); } @Test public void removeWhitespaceFromNonMultiLineFields() { String original = "I\nshould\nnot\ninclude\nadditional\nwhitespaces \nor\n\ttabs."; String expected = "I should not include additional whitespaces or tabs."; String abstrakt = parser.format(new StringBuilder(original), "title").toString(); String any = parser.format(new StringBuilder(original), "anyotherfield").toString(); assertEquals(expected, abstrakt); assertEquals(expected, any); } }