package org.jabref.logic.layout.format; import org.jabref.logic.layout.LayoutFormatter; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class RTFCharsTest { private LayoutFormatter formatter; @Before public void setUp() { formatter = new RTFChars(); } @After public void tearDown() { formatter = null; } @Test public void testBasicFormat() { Assert.assertEquals("", formatter.format("")); Assert.assertEquals("hallo", formatter.format("hallo")); Assert.assertEquals("R\\u233eflexions sur le timing de la quantit\\u233e", formatter.format("Réflexions sur le timing de la quantité")); Assert.assertEquals("h\\'e1llo", formatter.format("h\\'allo")); Assert.assertEquals("h\\'e1llo", formatter.format("h\\'allo")); } @Test public void testLaTeXHighlighting() { Assert.assertEquals("{\\i hallo}", formatter.format("\\emph{hallo}")); Assert.assertEquals("{\\i hallo}", formatter.format("{\\emph hallo}")); Assert.assertEquals("An article title with {\\i a book title} emphasized", formatter.format("An article title with \\emph{a book title} emphasized")); Assert.assertEquals("{\\i hallo}", formatter.format("\\textit{hallo}")); Assert.assertEquals("{\\i hallo}", formatter.format("{\\textit hallo}")); Assert.assertEquals("{\\b hallo}", formatter.format("\\textbf{hallo}")); Assert.assertEquals("{\\b hallo}", formatter.format("{\\textbf hallo}")); } @Test public void testComplicated() { Assert.assertEquals("R\\u233eflexions sur le timing de la quantit\\u233e {\\u230ae} should be \\u230ae", formatter.format("Réflexions sur le timing de la quantité {\\ae} should be æ")); } @Test public void testComplicated2() { Assert.assertEquals("h\\'e1ll{\\u339oe}", formatter.format("h\\'all{\\oe}")); } @Test public void testComplicated3() { Assert.assertEquals("Le c\\u339oeur d\\u233e\\u231cu mais l'\\u226ame plut\\u244ot na\\u239ive, Lou\\u255ys r" + "\\u234eva de crapa\\u252?ter en cano\\u235e au del\\u224a des \\u238iles, pr\\u232es du m\\u228alstr" + "\\u246om o\\u249u br\\u251ulent les nov\\u230ae.", formatter.format("Le cœur déçu mais l'âme plutôt " + "naïve, Louÿs rêva de crapaüter en canoë au delà des îles, près du mälström où brûlent les novæ.")); } @Test public void testComplicated4() { Assert.assertEquals("l'\\u238ile exigu\\u235e\n" + " O\\u249u l'ob\\u232ese jury m\\u251ur\n" + " F\\u234ete l'ha\\u239i volap\\u252?k,\n" + " \\u194Ane ex a\\u233equo au whist,\n" + " \\u212Otez ce v\\u339oeu d\\u233e\\u231cu.", formatter.format("l'île exiguë\n" + " Où l'obèse jury mûr\n" + " Fête l'haï volapük,\n" + " Âne ex aéquo au whist,\n" + " Ôtez ce vœu déçu.")); } @Test public void testComplicated5() { Assert.assertEquals("\\u193Arv\\u237izt\\u369?r\\u337? t\\u252?k\\u246orf\\u250ur\\u243og\\u233ep", formatter.format("Árvíztűrő tükörfúrógép")); } @Test public void testComplicated6() { Assert.assertEquals("Pchn\\u261a\\u263c w t\\u281e \\u322l\\u243od\\u378z je\\u380za lub o\\u347sm skrzy\\u324n fig" ,formatter.format("Pchnąć w tę łódź jeża lub ośm skrzyń fig")); } @Test public void testSpecialCharacters() { Assert.assertEquals("\\'f3", formatter.format("\\'{o}")); // ó Assert.assertEquals("\\'f2", formatter.format("\\`{o}")); // ò Assert.assertEquals("\\'f4", formatter.format("\\^{o}")); // ô Assert.assertEquals("\\'f6", formatter.format("\\\"{o}")); // ö Assert.assertEquals("\\u245o", formatter.format("\\~{o}")); // õ Assert.assertEquals("\\u333o", formatter.format("\\={o}")); Assert.assertEquals("\\u335o", formatter.format("{\\uo}")); Assert.assertEquals("\\u231c", formatter.format("{\\cc}")); // ç Assert.assertEquals("{\\u339oe}", formatter.format("{\\oe}")); Assert.assertEquals("{\\u338OE}", formatter.format("{\\OE}")); Assert.assertEquals("{\\u230ae}", formatter.format("{\\ae}")); // æ Assert.assertEquals("{\\u198AE}", formatter.format("{\\AE}")); // Æ Assert.assertEquals("", formatter.format("\\.{o}")); // ??? Assert.assertEquals("", formatter.format("\\vo")); // ??? Assert.assertEquals("", formatter.format("\\Ha")); // ã // ??? Assert.assertEquals("", formatter.format("\\too")); Assert.assertEquals("", formatter.format("\\do")); // ??? Assert.assertEquals("", formatter.format("\\bo")); // ??? Assert.assertEquals("\\u229a", formatter.format("{\\aa}")); // å Assert.assertEquals("\\u197A", formatter.format("{\\AA}")); // Å Assert.assertEquals("\\u248o", formatter.format("{\\o}")); // ø Assert.assertEquals("\\u216O", formatter.format("{\\O}")); // Ø Assert.assertEquals("\\u322l", formatter.format("{\\l}")); Assert.assertEquals("\\u321L", formatter.format("{\\L}")); Assert.assertEquals("\\u223ss", formatter.format("{\\ss}")); // ß Assert.assertEquals("\\u191?", formatter.format("\\`?")); // ¿ Assert.assertEquals("\\u161!", formatter.format("\\`!")); // ¡ Assert.assertEquals("", formatter.format("\\dag")); Assert.assertEquals("", formatter.format("\\ddag")); Assert.assertEquals("\\u167S", formatter.format("{\\S}")); // § Assert.assertEquals("\\u182P", formatter.format("{\\P}")); // ¶ Assert.assertEquals("\\u169?", formatter.format("{\\copyright}")); // © Assert.assertEquals("\\u163?", formatter.format("{\\pounds}")); // £ } @Test public void testRTFCharacters(){ Assert.assertEquals("\\'e0",formatter.format("\\`{a}")); Assert.assertEquals("\\'e8",formatter.format("\\`{e}")); Assert.assertEquals("\\'ec",formatter.format("\\`{i}")); Assert.assertEquals("\\'f2",formatter.format("\\`{o}")); Assert.assertEquals("\\'f9",formatter.format("\\`{u}")); Assert.assertEquals("\\'e1",formatter.format("\\'a")); Assert.assertEquals("\\'e9",formatter.format("\\'e")); Assert.assertEquals("\\'ed",formatter.format("\\'i")); Assert.assertEquals("\\'f3",formatter.format("\\'o")); Assert.assertEquals("\\'fa",formatter.format("\\'u")); Assert.assertEquals("\\'e2",formatter.format("\\^a")); Assert.assertEquals("\\'ea",formatter.format("\\^e")); Assert.assertEquals("\\'ee",formatter.format("\\^i")); Assert.assertEquals("\\'f4",formatter.format("\\^o")); Assert.assertEquals("\\'fa",formatter.format("\\^u")); Assert.assertEquals("\\'e4",formatter.format("\\\"a")); Assert.assertEquals("\\'eb",formatter.format("\\\"e")); Assert.assertEquals("\\'ef",formatter.format("\\\"i")); Assert.assertEquals("\\'f6",formatter.format("\\\"o")); Assert.assertEquals("\\u252u",formatter.format("\\\"u")); Assert.assertEquals("\\'f1",formatter.format("\\~n")); } @Test public void testRTFCharactersCapital() { Assert.assertEquals("\\'c0",formatter.format("\\`A")); Assert.assertEquals("\\'c8",formatter.format("\\`E")); Assert.assertEquals("\\'cc",formatter.format("\\`I")); Assert.assertEquals("\\'d2",formatter.format("\\`O")); Assert.assertEquals("\\'d9",formatter.format("\\`U")); Assert.assertEquals("\\'c1",formatter.format("\\'A")); Assert.assertEquals("\\'c9",formatter.format("\\'E")); Assert.assertEquals("\\'cd",formatter.format("\\'I")); Assert.assertEquals("\\'d3",formatter.format("\\'O")); Assert.assertEquals("\\'da",formatter.format("\\'U")); Assert.assertEquals("\\'c2",formatter.format("\\^A")); Assert.assertEquals("\\'ca",formatter.format("\\^E")); Assert.assertEquals("\\'ce",formatter.format("\\^I")); Assert.assertEquals("\\'d4",formatter.format("\\^O")); Assert.assertEquals("\\'db",formatter.format("\\^U")); Assert.assertEquals("\\'c4",formatter.format("\\\"A")); Assert.assertEquals("\\'cb",formatter.format("\\\"E")); Assert.assertEquals("\\'cf",formatter.format("\\\"I")); Assert.assertEquals("\\'d6",formatter.format("\\\"O")); Assert.assertEquals("\\'dc",formatter.format("\\\"U")); } }