From bee341b00afcb5785bb2892f1d5eef4fff3b7e69 Mon Sep 17 00:00:00 2001 From: hugorochaffs <54285732+hugorochaffs@users.noreply.github.com> Date: Sat, 27 Aug 2022 21:33:28 -0300 Subject: [PATCH 01/12] Solving tilde error in author names --- .../logic/importer/AuthorListParser.java | 14 ++------ .../logic/integrity/PersonNamesChecker.java | 7 ++-- .../strings/HTMLUnicodeConversionMaps.java | 3 ++ .../jabref/logic/util/strings/RtfCharMap.java | 1 + .../jabref/logic/integrity/Teste_nomes.java | 33 +++++++++++++++++++ 5 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 src/test/java/org/jabref/logic/integrity/Teste_nomes.java diff --git a/src/main/java/org/jabref/logic/importer/AuthorListParser.java b/src/main/java/org/jabref/logic/importer/AuthorListParser.java index bc4835c92f2..03d429a04ef 100644 --- a/src/main/java/org/jabref/logic/importer/AuthorListParser.java +++ b/src/main/java/org/jabref/logic/importer/AuthorListParser.java @@ -1,18 +1,10 @@ package org.jabref.logic.importer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; - import org.jabref.model.entry.Author; import org.jabref.model.entry.AuthorList; +import java.util.*; + public class AuthorListParser { // Avoid partition where these values are contained @@ -447,7 +439,7 @@ private Token getToken() { if (c == '\\') { currentBackslash = tokenEnd; } - if ((bracesLevel == 0) && ((",;~-".indexOf(c) != -1) || Character.isWhitespace(c))) { + if ((bracesLevel == 0) && ((",;-".indexOf(c) != -1) || Character.isWhitespace(c))) { break; } tokenEnd++; diff --git a/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java b/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java index 59c39fea13e..a17c0a76bcd 100644 --- a/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java +++ b/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java @@ -1,8 +1,5 @@ package org.jabref.logic.integrity; -import java.util.Locale; -import java.util.Optional; - import org.jabref.logic.l10n.Localization; import org.jabref.logic.layout.format.RemoveBrackets; import org.jabref.model.database.BibDatabaseContext; @@ -10,6 +7,9 @@ import org.jabref.model.entry.AuthorList; import org.jabref.model.strings.StringUtil; +import java.util.Locale; +import java.util.Optional; + public class PersonNamesChecker implements ValueChecker { private final BibDatabaseMode bibMode; @@ -37,6 +37,7 @@ public Optional checkValue(String value) { // Last, First and ... // First Last and ... AuthorList authorList = AuthorList.parse(value); + if (!authorList.getAsLastFirstNamesWithAnd(false).equals(value) && !authorList.getAsFirstLastNamesWithAnd().equals(value)) { return Optional.of(Localization.lang("Names are not in the standard %0 format.", bibMode.getFormattedName())); diff --git a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java index 587f7197218..4e96a50ad49 100644 --- a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java +++ b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java @@ -762,6 +762,7 @@ public class HTMLUnicodeConversionMaps { {"119978", "Oscr", "$\\mathcal{O}$"}, // script capital O -- possibly use \mathscr {"119984", "Uscr", "$\\mathcal{U}$"}, // script capital U -- possibly use \mathscr {"120598", "", "$\\epsilon$"}, // mathematical italic epsilon U+1D716 -- requires amsmath + {"120599", "", "{{\\˜{n}}}"}, // n with tide }; // List of combining accents @@ -883,12 +884,14 @@ public class HTMLUnicodeConversionMaps { } // Manually added values which are killed by cleanLaTeX LATEX_HTML_CONVERSION_MAP.put("$", "$"); + LATEX_HTML_CONVERSION_MAP.put("~", "˜"); LATEX_UNICODE_CONVERSION_MAP.put("$", "$"); // Manual corrections LATEX_HTML_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Å which is less supported LATEX_UNICODE_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Ångstrom symbol LATEX_UNICODE_CONVERSION_MAP.put("'n", "ń"); + LATEX_UNICODE_CONVERSION_MAP.put("~n","abc"); // Manual additions // Support relax to the extent that it is simply removed diff --git a/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java b/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java index 46f49f37bfc..4f55785b9ba 100644 --- a/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java +++ b/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java @@ -68,6 +68,7 @@ public RtfCharMap() { put("DH", "\\u208D"); // "ETH" put("~N", "\\u209N"); // "Ntilde" + put("~n", "\\u210N"); // "ntilde" put("~O", "\\u213O"); // "Otilde" // According to ISO 8859-1 the "\times" symbol should be placed here diff --git a/src/test/java/org/jabref/logic/integrity/Teste_nomes.java b/src/test/java/org/jabref/logic/integrity/Teste_nomes.java new file mode 100644 index 00000000000..275b19c3f08 --- /dev/null +++ b/src/test/java/org/jabref/logic/integrity/Teste_nomes.java @@ -0,0 +1,33 @@ +package org.jabref.logic.integrity; + +import org.jabref.model.database.BibDatabaseContext; +import org.jabref.model.database.BibDatabaseMode; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class Teste_nomes { + + private PersonNamesChecker checker; + private PersonNamesChecker checkerb; + + @BeforeEach + public void setUp() throws Exception { + BibDatabaseContext databaseContext = new BibDatabaseContext(); + databaseContext.setMode(BibDatabaseMode.BIBTEX); + checker = new PersonNamesChecker(databaseContext); + BibDatabaseContext database = new BibDatabaseContext(); + database.setMode(BibDatabaseMode.BIBLATEX); + checkerb = new PersonNamesChecker(database); + } + + + @Test + public void validNameFirstnameAuthors() throws Exception { + String nome = "hugo Para{\\~n}os"; + assertEquals(Optional.empty(), checker.checkValue(nome)); + } +} From c736dbcd98cb4ca31bc94d7f89fbebb0a85f6a9a Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Date: Sat, 3 Sep 2022 10:27:58 +0200 Subject: [PATCH 02/12] Fixed checkstyle and removed superfluous new test class --- .../logic/importer/AuthorListParser.java | 14 ++++++-- .../logic/integrity/PersonNamesChecker.java | 7 ++-- .../integrity/PersonNamesCheckerTest.java | 7 ++++ .../jabref/logic/integrity/Teste_nomes.java | 33 ------------------- 4 files changed, 21 insertions(+), 40 deletions(-) delete mode 100644 src/test/java/org/jabref/logic/integrity/Teste_nomes.java diff --git a/src/main/java/org/jabref/logic/importer/AuthorListParser.java b/src/main/java/org/jabref/logic/importer/AuthorListParser.java index 03d429a04ef..41acfd2a503 100644 --- a/src/main/java/org/jabref/logic/importer/AuthorListParser.java +++ b/src/main/java/org/jabref/logic/importer/AuthorListParser.java @@ -1,10 +1,18 @@ package org.jabref.logic.importer; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; + import org.jabref.model.entry.Author; import org.jabref.model.entry.AuthorList; -import java.util.*; - public class AuthorListParser { // Avoid partition where these values are contained @@ -439,7 +447,7 @@ private Token getToken() { if (c == '\\') { currentBackslash = tokenEnd; } - if ((bracesLevel == 0) && ((",;-".indexOf(c) != -1) || Character.isWhitespace(c))) { + if ((bracesLevel == 0) && ((",;-".indexOf(c) != -1) || Character.isWhitespace(c))) { break; } tokenEnd++; diff --git a/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java b/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java index a17c0a76bcd..59c39fea13e 100644 --- a/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java +++ b/src/main/java/org/jabref/logic/integrity/PersonNamesChecker.java @@ -1,5 +1,8 @@ package org.jabref.logic.integrity; +import java.util.Locale; +import java.util.Optional; + import org.jabref.logic.l10n.Localization; import org.jabref.logic.layout.format.RemoveBrackets; import org.jabref.model.database.BibDatabaseContext; @@ -7,9 +10,6 @@ import org.jabref.model.entry.AuthorList; import org.jabref.model.strings.StringUtil; -import java.util.Locale; -import java.util.Optional; - public class PersonNamesChecker implements ValueChecker { private final BibDatabaseMode bibMode; @@ -37,7 +37,6 @@ public Optional checkValue(String value) { // Last, First and ... // First Last and ... AuthorList authorList = AuthorList.parse(value); - if (!authorList.getAsLastFirstNamesWithAnd(false).equals(value) && !authorList.getAsFirstLastNamesWithAnd().equals(value)) { return Optional.of(Localization.lang("Names are not in the standard %0 format.", bibMode.getFormattedName())); diff --git a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java index e6ed2c2b743..f4f72e1f417 100644 --- a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java @@ -93,4 +93,11 @@ private static Stream provideIncorrectFormats() { ", and Kurt Cobain and A. Einstein", "Donald E. Knuth and Kurt Cobain and ,", "and Kurt Cobain and A. Einstein", "Donald E. Knuth and Kurt Cobain and"); } + + @Test + public void validTildeInName() throws Exception { + String name = "hugo Para{\\~n}os"; + + assertEquals(Optional.empty(), checker.checkValue(name)); + } } diff --git a/src/test/java/org/jabref/logic/integrity/Teste_nomes.java b/src/test/java/org/jabref/logic/integrity/Teste_nomes.java deleted file mode 100644 index 275b19c3f08..00000000000 --- a/src/test/java/org/jabref/logic/integrity/Teste_nomes.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jabref.logic.integrity; - -import org.jabref.model.database.BibDatabaseContext; -import org.jabref.model.database.BibDatabaseMode; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import java.util.Optional; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class Teste_nomes { - - private PersonNamesChecker checker; - private PersonNamesChecker checkerb; - - @BeforeEach - public void setUp() throws Exception { - BibDatabaseContext databaseContext = new BibDatabaseContext(); - databaseContext.setMode(BibDatabaseMode.BIBTEX); - checker = new PersonNamesChecker(databaseContext); - BibDatabaseContext database = new BibDatabaseContext(); - database.setMode(BibDatabaseMode.BIBLATEX); - checkerb = new PersonNamesChecker(database); - } - - - @Test - public void validNameFirstnameAuthors() throws Exception { - String nome = "hugo Para{\\~n}os"; - assertEquals(Optional.empty(), checker.checkValue(nome)); - } -} From 1b12bc36fcca4613d436ea5d1d5fd37d42565fc1 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 10:35:33 +0200 Subject: [PATCH 03/12] remove laex html conversion and rtf chart --- .../jabref/logic/util/strings/HTMLUnicodeConversionMaps.java | 2 -- src/main/java/org/jabref/logic/util/strings/RtfCharMap.java | 3 +-- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java index 4e96a50ad49..26bb5c256b6 100644 --- a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java +++ b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java @@ -884,14 +884,12 @@ public class HTMLUnicodeConversionMaps { } // Manually added values which are killed by cleanLaTeX LATEX_HTML_CONVERSION_MAP.put("$", "$"); - LATEX_HTML_CONVERSION_MAP.put("~", "˜"); LATEX_UNICODE_CONVERSION_MAP.put("$", "$"); // Manual corrections LATEX_HTML_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Å which is less supported LATEX_UNICODE_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Ångstrom symbol LATEX_UNICODE_CONVERSION_MAP.put("'n", "ń"); - LATEX_UNICODE_CONVERSION_MAP.put("~n","abc"); // Manual additions // Support relax to the extent that it is simply removed diff --git a/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java b/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java index 4f55785b9ba..393f9685ffb 100644 --- a/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java +++ b/src/main/java/org/jabref/logic/util/strings/RtfCharMap.java @@ -4,7 +4,7 @@ public class RtfCharMap { - private HashMap rtfMap = new HashMap<>(); + private final HashMap rtfMap = new HashMap<>(); public RtfCharMap() { put("`a", "\\'e0"); @@ -68,7 +68,6 @@ public RtfCharMap() { put("DH", "\\u208D"); // "ETH" put("~N", "\\u209N"); // "Ntilde" - put("~n", "\\u210N"); // "ntilde" put("~O", "\\u213O"); // "Otilde" // According to ISO 8859-1 the "\times" symbol should be placed here From a76394f0537636904954b8eefb15017a05dc5847 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 10:40:15 +0200 Subject: [PATCH 04/12] add test to authorlist parser --- .../java/org/jabref/logic/importer/AuthorListParserTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java index 7c765d283f9..daf4c9ac3ee 100644 --- a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java +++ b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java @@ -25,7 +25,8 @@ private static Stream data() { Arguments.of("de la Vallée Poussin, Jean Charles Gabriel", new Author("Jean Charles Gabriel", "J. C. G.", "de la", "Vallée Poussin", null)), Arguments.of("de la Vallée Poussin, J. C. G.", new Author("J. C. G.", "J. C. G.", "de la", "Vallée Poussin", null)), Arguments.of("{K}ent-{B}oswell, E. S.", new Author("E. S.", "E. S.", null, "{K}ent-{B}oswell", null)), - Arguments.of("Uhlenhaut, N Henriette", new Author("N Henriette", "N. H.", null, "Uhlenhaut", null)) + Arguments.of("Uhlenhaut, N Henriette", new Author("N Henriette", "N. H.", null, "Uhlenhaut", null)), + Arguments.of("Nu{\\~{n}}ez, Jose", new Author("Jose", "J", null, "Nu{\\\\~{n}}ez", null)) ); } From 04739faaf60820324f7667ff4440461a83dbff1b Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Date: Sat, 3 Sep 2022 10:49:02 +0200 Subject: [PATCH 05/12] parameterized tests --- .../integrity/PersonNamesCheckerTest.java | 72 ++++++++----------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java index f4f72e1f417..3784958506a 100644 --- a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java @@ -29,48 +29,35 @@ public void setUp() throws Exception { checkerb = new PersonNamesChecker(database); } - @Test - public void validNameFirstnameAuthor() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("Kolb, Stefan")); + @ParameterizedTest + @MethodSource("provideValidNames") + public void validNames(String name) { + assertEquals(Optional.empty(), checker.checkValue(name)); } - @Test - public void validNameFirstnameAuthors() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("Kolb, Stefan and Harrer, Simon")); - } + private static Stream provideValidNames() { + return Stream.of( + "Kolb, Stefan", // single [Name, Firstname] + "Kolb, Stefan and Harrer, Simon", // multiple [Name, Firstname] + "Stefan Kolb", // single [Firstname Name] + "Stefan Kolb and Simon Harrer", // multiple [Firstname Name] - @Test - public void validFirstnameNameAuthor() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("Stefan Kolb")); - } + "M. J. Gotay", // second name in front - @Test - public void validFirstnameNameAuthors() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("Stefan Kolb and Simon Harrer")); + "{JabRef}", // corporate name in brackets + "{JabRef} and Stefan Kolb", // mixed corporate name with name + "{JabRef} and Kolb, Stefan", + + "hugo Para{\\~n}os" // tilde in name + ); } @Test - public void complainAboutPersonStringWithTwoManyCommas() throws Exception { + public void complainAboutPersonStringWithTwoManyCommas() { assertEquals(Optional.of("Names are not in the standard BibTeX format."), checker.checkValue("Test1, Test2, Test3, Test4, Test5, Test6")); } - @Test - public void doNotComplainAboutSecondNameInFront() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("M. J. Gotay")); - } - - @Test - public void validCorporateNameInBrackets() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("{JabRef}")); - } - - @Test - public void validCorporateNameAndPerson() throws Exception { - assertEquals(Optional.empty(), checker.checkValue("{JabRef} and Stefan Kolb")); - assertEquals(Optional.empty(), checker.checkValue("{JabRef} and Kolb, Stefan")); - } - @ParameterizedTest @MethodSource("provideCorrectFormats") public void authorNameInCorrectFormatsShouldNotComplain(String input) { @@ -84,20 +71,19 @@ public void authorNameInIncorrectFormatsShouldComplain(String input) { } private static Stream provideCorrectFormats() { - return Stream.of("", "Knuth", "Donald E. Knuth and Kurt Cobain and A. Einstein"); + return Stream.of( + "", + "Knuth", + "Donald E. Knuth and Kurt Cobain and A. Einstein"); } private static Stream provideIncorrectFormats() { - return Stream.of(" Knuth, Donald E. ", - "Knuth, Donald E. and Kurt Cobain and A. Einstein", - ", and Kurt Cobain and A. Einstein", "Donald E. Knuth and Kurt Cobain and ,", - "and Kurt Cobain and A. Einstein", "Donald E. Knuth and Kurt Cobain and"); - } - - @Test - public void validTildeInName() throws Exception { - String name = "hugo Para{\\~n}os"; - - assertEquals(Optional.empty(), checker.checkValue(name)); + return Stream.of( + " Knuth, Donald E. ", + "Knuth, Donald E. and Kurt Cobain and A. Einstein", + ", and Kurt Cobain and A. Einstein", + "Donald E. Knuth and Kurt Cobain and ,", + "and Kurt Cobain and A. Einstein", + "Donald E. Knuth and Kurt Cobain and"); } } From 62d7c7adec20d18fc33a362ead12807cee01e1db Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 10:52:27 +0200 Subject: [PATCH 06/12] fix test --- .../org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java index 26bb5c256b6..86973053a09 100644 --- a/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java +++ b/src/main/java/org/jabref/logic/util/strings/HTMLUnicodeConversionMaps.java @@ -889,7 +889,6 @@ public class HTMLUnicodeConversionMaps { // Manual corrections LATEX_HTML_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Å which is less supported LATEX_UNICODE_CONVERSION_MAP.put("AA", "Å"); // Overwritten by Ångstrom symbol - LATEX_UNICODE_CONVERSION_MAP.put("'n", "ń"); // Manual additions // Support relax to the extent that it is simply removed From 53d0db3e1bd97f33c0d35e54121596d44a76b443 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 11:06:54 +0200 Subject: [PATCH 07/12] fix test --- .../formatter/bibtexfields/HtmlToUnicodeFormatterTest.java | 2 ++ .../java/org/jabref/logic/importer/AuthorListParserTest.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java index 81997715f25..d8067029c15 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java @@ -39,6 +39,8 @@ public void testUmlauts() { assertEquals("ä", formatter.format("ä")); assertEquals("ä", formatter.format("ä")); assertEquals("ä", formatter.format("ä")); + assertEquals("ñ", formatter.format("ñ")); + } @Test diff --git a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java index daf4c9ac3ee..1ec4e02879c 100644 --- a/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java +++ b/src/test/java/org/jabref/logic/importer/AuthorListParserTest.java @@ -26,7 +26,7 @@ private static Stream data() { Arguments.of("de la Vallée Poussin, J. C. G.", new Author("J. C. G.", "J. C. G.", "de la", "Vallée Poussin", null)), Arguments.of("{K}ent-{B}oswell, E. S.", new Author("E. S.", "E. S.", null, "{K}ent-{B}oswell", null)), Arguments.of("Uhlenhaut, N Henriette", new Author("N Henriette", "N. H.", null, "Uhlenhaut", null)), - Arguments.of("Nu{\\~{n}}ez, Jose", new Author("Jose", "J", null, "Nu{\\\\~{n}}ez", null)) + Arguments.of("Nu{\\~{n}}ez, Jose", new Author("Jose", "J.", null, "Nu{\\~{n}}ez", null)) ); } From d1f3456b3195e2d3fb02f6b0174436d17d198215 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 11:32:35 +0200 Subject: [PATCH 08/12] Convert to parameterized test --- .../HtmlToUnicodeFormatterTest.java | 64 ++++++------------- 1 file changed, 21 insertions(+), 43 deletions(-) diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java index d8067029c15..80f3512bf48 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java @@ -1,12 +1,30 @@ package org.jabref.logic.formatter.bibtexfields; +import java.util.stream.Stream; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import static org.junit.jupiter.api.Assertions.assertEquals; public class HtmlToUnicodeFormatterTest { + private static Stream data() { + return Stream.of( + Arguments.of("abc", "abc"), + Arguments.of("åäö", "åäö"), + Arguments.of("í", "i"), + Arguments.of("Ε", "Ε"), + Arguments.of("ä", "ä"), + Arguments.of("ä", "ä"), + Arguments.of("ä", "ä"), + Arguments.of("ñ", "ñ"), + Arguments.of("aaa", "

aaa

"), + Arguments.of("bread & butter", "bread & butter")); + } + private HtmlToUnicodeFormatter formatter; @BeforeEach @@ -15,48 +33,8 @@ public void setUp() { } @Test - public void formatWithoutHtmlCharactersReturnsSameString() { - assertEquals("abc", formatter.format("abc")); - } - - @Test - public void formatMultipleHtmlCharacters() { - assertEquals("åäö", formatter.format("åäö")); - } - - @Test - public void formatCombinedAccent() { - assertEquals("í", formatter.format("í")); - } - - @Test - public void testBasic() { - assertEquals("aaa", formatter.format("aaa")); - } - - @Test - public void testUmlauts() { - assertEquals("ä", formatter.format("ä")); - assertEquals("ä", formatter.format("ä")); - assertEquals("ä", formatter.format("ä")); - assertEquals("ñ", formatter.format("ñ")); - - } - - @Test - public void testGreekLetter() { - assertEquals("Ε", formatter.format("Ε")); - } - - @Test - public void testHTMLRemoveTags() { - assertEquals("aaa", formatter.format("

aaa

")); - } - - @Test - public void formatExample() { - assertEquals("bread & butter", formatter.format(formatter.getExampleInput())); + @MethodSource("data") + void testFormatterWorksCorrectly(String expected, String input) { + assertEquals(expected, formatter.format(input)); } } - - From 890f475d3ce408044e4dd22e6e733665bd6b59d6 Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 11:49:20 +0200 Subject: [PATCH 09/12] fix test and checkstyle --- .../bibtexfields/HtmlToUnicodeFormatterTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java index 80f3512bf48..08c1efd199d 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java @@ -3,7 +3,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -11,11 +11,13 @@ public class HtmlToUnicodeFormatterTest { + private HtmlToUnicodeFormatter formatter; + private static Stream data() { return Stream.of( Arguments.of("abc", "abc"), - Arguments.of("åäö", "åäö"), - Arguments.of("í", "i"), + Arguments.of("åäö", "åäö"), + Arguments.of("i", "í"), Arguments.of("Ε", "Ε"), Arguments.of("ä", "ä"), Arguments.of("ä", "ä"), @@ -25,14 +27,13 @@ private static Stream data() { Arguments.of("bread & butter", "bread & butter")); } - private HtmlToUnicodeFormatter formatter; @BeforeEach public void setUp() { formatter = new HtmlToUnicodeFormatter(); } - @Test + @ParameterizedTest @MethodSource("data") void testFormatterWorksCorrectly(String expected, String input) { assertEquals(expected, formatter.format(input)); From b98354446b2cdb677e39bb09ba564f1e8914773c Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 12:02:13 +0200 Subject: [PATCH 10/12] fix checkstyle and tests --- .../formatter/bibtexfields/HtmlToUnicodeFormatterTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java index 08c1efd199d..64f14737bb9 100644 --- a/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java +++ b/src/test/java/org/jabref/logic/formatter/bibtexfields/HtmlToUnicodeFormatterTest.java @@ -17,17 +17,16 @@ private static Stream data() { return Stream.of( Arguments.of("abc", "abc"), Arguments.of("åäö", "åäö"), - Arguments.of("i", "í"), + Arguments.of("í", "í"), Arguments.of("Ε", "Ε"), Arguments.of("ä", "ä"), - Arguments.of("ä", "ä"), + Arguments.of("ä", "ä"), Arguments.of("ä", "ä"), Arguments.of("ñ", "ñ"), Arguments.of("aaa", "

aaa

"), Arguments.of("bread & butter", "bread & butter")); } - @BeforeEach public void setUp() { formatter = new HtmlToUnicodeFormatter(); From b75c1bcdb5072ec2182c2d3fc43fbf1219ee5fba Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Date: Sat, 3 Sep 2022 12:39:31 +0200 Subject: [PATCH 11/12] Fixed tabstop --- .../java/org/jabref/logic/integrity/PersonNamesCheckerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java index 3784958506a..b64900e6122 100644 --- a/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java +++ b/src/test/java/org/jabref/logic/integrity/PersonNamesCheckerTest.java @@ -37,7 +37,7 @@ public void validNames(String name) { private static Stream provideValidNames() { return Stream.of( - "Kolb, Stefan", // single [Name, Firstname] + "Kolb, Stefan", // single [Name, Firstname] "Kolb, Stefan and Harrer, Simon", // multiple [Name, Firstname] "Stefan Kolb", // single [Firstname Name] "Stefan Kolb and Simon Harrer", // multiple [Firstname Name] From 73deac754da84020ca035c8feed4109e2621995b Mon Sep 17 00:00:00 2001 From: Siedlerchr Date: Sat, 3 Sep 2022 12:49:19 +0200 Subject: [PATCH 12/12] add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dab8b181f7..46b33a21d20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve ### Fixed +- We fixed an issue where author names with tilde accents (for example ñ) were marked as "Names are not in the standard BibTex format" [#8071](https://github.com/JabRef/jabref/issues/8071) - We fixed an issue where the possibilty to generate a subdatabase from an aux file was writing empty files when called from the commandline [#9115](https://github.com/JabRef/jabref/issues/9115), [forum#3516](https://discourse.jabref.org/t/export-subdatabase-from-aux-file-on-macos-command-line/3516) - We fixed the display of issue, number, eid and pages fields in the entry preview. [#8607](https://github.com/JabRef/jabref/pull/8607), [#8372](https://github.com/JabRef/jabref/issues/8372), [Koppor#514](https://github.com/koppor/jabref/issues/514), [forum#2390](https://discourse.jabref.org/t/unable-to-edit-my-bibtex-file-that-i-used-before-vers-5-1/2390), [forum#3462](https://discourse.jabref.org/t/jabref-5-6-need-help-with-export-from-jabref-to-microsoft-word-entry-preview-of-apa-7-not-rendering-correctly/3462) - We fixed the page ranges checker to detect article numbers in the pages field (used at [Check Integrity](https://docs.jabref.org/finding-sorting-and-cleaning-entries/checkintegrity)). [#8607](https://github.com/JabRef/jabref/pull/8607)