package org.jabref.logic.layout.format;
import org.jabref.logic.layout.LayoutFormatter;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class HTMLCharsTest {
private LayoutFormatter layout;
@Before
public void setUp() {
layout = new HTMLChars();
}
@Test
public void testBasicFormat() {
assertEquals("", layout.format(""));
assertEquals("hallo", layout.format("hallo"));
assertEquals("Réflexions sur le timing de la quantité",
layout.format("Réflexions sur le timing de la quantité"));
assertEquals("hállo", layout.format("h\\'allo"));
assertEquals("ı ı", layout.format("\\i \\i"));
assertEquals("ı", layout.format("\\i"));
assertEquals("ı", layout.format("\\{i}"));
assertEquals("ıı", layout.format("\\i\\i"));
assertEquals("ä", layout.format("{\\\"{a}}"));
assertEquals("ä", layout.format("{\\\"a}"));
assertEquals("ä", layout.format("\\\"a"));
assertEquals("Ç", layout.format("{\\c{C}}"));
assertEquals("&Oogon;ı", layout.format("\\k{O}\\i"));
assertEquals("ñ ñ í ı ı", layout.format("\\~{n} \\~n \\'i \\i \\i"));
}
@Test
public void testLaTeXHighlighting() {
assertEquals("<em>hallo</em>", layout.format("\\emph{hallo}"));
assertEquals("<em>hallo</em>", layout.format("{\\emph hallo}"));
assertEquals("<em>hallo</em>", layout.format("{\\em hallo}"));
assertEquals("<i>hallo</i>", layout.format("\\textit{hallo}"));
assertEquals("<i>hallo</i>", layout.format("{\\textit hallo}"));
assertEquals("<i>hallo</i>", layout.format("{\\it hallo}"));
assertEquals("<b>hallo</b>", layout.format("\\textbf{hallo}"));
assertEquals("<b>hallo</b>", layout.format("{\\textbf hallo}"));
assertEquals("<b>hallo</b>", layout.format("{\\bf hallo}"));
assertEquals("<sup>hallo</sup>", layout.format("\\textsuperscript{hallo}"));
assertEquals("<sub>hallo</sub>", layout.format("\\textsubscript{hallo}"));
assertEquals("<u>hallo</u>", layout.format("\\underline{hallo}"));
assertEquals("<s>hallo</s>", layout.format("\\sout{hallo}"));
assertEquals("<tt>hallo</tt>", layout.format("\\texttt{hallo}"));
}
@Test
public void testEquations() {
assertEquals("$", layout.format("\\$"));
assertEquals("σ", layout.format("$\\sigma$"));
assertEquals("A 32 mA ΣΔ-modulator",
layout.format("A 32~{mA} {$\\Sigma\\Delta$}-modulator"));
}
@Test
public void testNewLine() {
assertEquals("a<br>b", layout.format("a\nb"));
assertEquals("a<p>b", layout.format("a\n\nb"));
}
/*
* Is missing a lot of test cases for the individual chars...
*/
@Test
public void unknownCommandIsKept() {
assertEquals("aaaa", layout.format("\\aaaa"));
}
@Test
public void unknownCommandKeepsArgument() {
assertEquals("bbbb", layout.format("\\aaaa{bbbb}"));
}
@Test
public void unknownCommandWithEmptyArgumentIsKept() {
assertEquals("aaaa", layout.format("\\aaaa{}"));
}
}