kopia lustrzana https://github.com/onthegomap/planetiler
Make valid language tag regex case sensitive (#1117)
rodzic
3d14afdd6b
commit
c2c8cbe6ef
|
@ -10,7 +10,7 @@ public class LanguageUtils {
|
||||||
// See https://wiki.openstreetmap.org/wiki/Multilingual_names
|
// See https://wiki.openstreetmap.org/wiki/Multilingual_names
|
||||||
public static final Predicate<String> VALID_NAME_TAGS =
|
public static final Predicate<String> VALID_NAME_TAGS =
|
||||||
Pattern
|
Pattern
|
||||||
.compile("^name:[a-z]{2,3}(-[a-z]{4})?([-_](x-)?[a-z]{2,})?(-([a-z]{2}|\\d{3}))?$", Pattern.CASE_INSENSITIVE)
|
.compile("^name:[a-z]{2,3}(-[A-Z][a-z]{3})?([-_](x-)?[a-z]{2,})?(-([A-Z]{2}|\\d{3}))?$")
|
||||||
.asMatchPredicate();
|
.asMatchPredicate();
|
||||||
// See https://github.com/onthegomap/planetiler/issues/86
|
// See https://github.com/onthegomap/planetiler/issues/86
|
||||||
// Match strings that only contain latin characters.
|
// Match strings that only contain latin characters.
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package com.onthegomap.planetiler.util;
|
package com.onthegomap.planetiler.util;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.CsvSource;
|
import org.junit.jupiter.params.provider.CsvSource;
|
||||||
|
import org.junit.jupiter.params.provider.ValueSource;
|
||||||
|
|
||||||
class LanguageUtilsTest {
|
class LanguageUtilsTest {
|
||||||
|
|
||||||
|
@ -26,28 +29,41 @@ class LanguageUtilsTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@CsvSource(value = {
|
@ValueSource(strings = {
|
||||||
"name:es, true",
|
"name:es",
|
||||||
"name:en-US, true",
|
"name:en-US",
|
||||||
"name:fr-x-gallo, true",
|
"name:en-001",
|
||||||
"name:ko-Latn, true",
|
"name:fr-x-gallo",
|
||||||
"name:be-tarask, true",
|
"name:ko-Latn",
|
||||||
"name:ja_rm, true",
|
"name:be-tarask",
|
||||||
"name:ja_kana, true",
|
"name:ja_rm",
|
||||||
"name:vls, true",
|
"name:ja_kana",
|
||||||
"name:zh-hant-CN, true",
|
"name:vls",
|
||||||
"name:zh_pinyin, true",
|
"name:zh-hant-CN",
|
||||||
"name:zh_zhuyin, true",
|
"name:zh_pinyin",
|
||||||
"name:zh-Latn-tongyong, true",
|
"name:zh_zhuyin",
|
||||||
"name:zh-Latn-pinyin, true",
|
"name:zh-Latn-tongyong",
|
||||||
"name:zh-Latn-wadegiles, true",
|
"name:zh-Latn-pinyin",
|
||||||
"name:yue-Latn-jyutping, true",
|
"name:zh-Latn-wadegiles",
|
||||||
"nombre, false",
|
"name:yue-Latn-jyutping",
|
||||||
"name:, false",
|
"name:tec",
|
||||||
"name:xxxxx, false",
|
"name:be-tarask",
|
||||||
}, nullValues = "null")
|
"name:nan-Latn-pehoeji",
|
||||||
void testIsValidOsmNameTag(String in, boolean out) {
|
"name:zh-Latn-pinyin",
|
||||||
assertEquals(out, LanguageUtils.isValidOsmNameTag(in));
|
})
|
||||||
|
void testIsValidOsmNameTag(String in) {
|
||||||
|
assertTrue(LanguageUtils.isValidOsmNameTag(in));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ParameterizedTest
|
||||||
|
@ValueSource(strings = {
|
||||||
|
"nombre",
|
||||||
|
"name:",
|
||||||
|
"name:xxxxx",
|
||||||
|
"name:TEC",
|
||||||
|
})
|
||||||
|
void testIsNotValidOsmNameTag(String in) {
|
||||||
|
assertFalse(LanguageUtils.isValidOsmNameTag(in));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue