diff --git a/src/test/java/org/cryptomator/launcher/SupportedLanguagesTest.java b/src/test/java/org/cryptomator/launcher/SupportedLanguagesTest.java new file mode 100644 index 000000000..5a9f1bc07 --- /dev/null +++ b/src/test/java/org/cryptomator/launcher/SupportedLanguagesTest.java @@ -0,0 +1,31 @@ +package org.cryptomator.launcher; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +import java.util.Locale; +import java.util.ResourceBundle; +import java.util.stream.Stream; + +public class SupportedLanguagesTest { + + @DisplayName("test if resource bundle is localized") + @ParameterizedTest(name = "{0}") + @MethodSource("languageTags") + public void testResourceBundleExists(String tag) { + var locale = Locale.forLanguageTag(tag); + Assertions.assertNotEquals("und", locale.toLanguageTag(), "Undefined language tag"); + + var bundle = Assertions.assertDoesNotThrow(() -> ResourceBundle.getBundle("/i18n/strings", locale)); + + Assertions.assertEquals(locale, bundle.getLocale()); + Assertions.assertFalse(bundle.keySet().isEmpty()); + } + + public static Stream languageTags() { + return SupportedLanguages.LANGUAGAE_TAGS.stream() // + .filter(tag -> !"en".equals(tag)); // english uses the default bundle + } +} \ No newline at end of file