Skip to content

Commit

Permalink
more translation tests
Browse files Browse the repository at this point in the history
  • Loading branch information
i-make-robots committed Nov 28, 2023
1 parent b57d785 commit 7376bc3
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 53 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.marginallyclever.robotoverlord.swing.translator;

import com.marginallyclever.convenience.helpers.FileHelper;
import com.marginallyclever.util.PreferencesHelper;
import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
Expand Down Expand Up @@ -227,8 +228,7 @@ private static boolean loadLanguageFromFile(String name) throws FileNotFoundExce
}

private static Path getUserDirectory() {
logger.debug("Looking for user.dir");
Path rootPath = FileSystems.getDefault().getPath(System.getProperty("user.dir"));
Path rootPath = FileSystems.getDefault().getPath(FileHelper.getUserDirectory());
logger.debug("user.dir="+rootPath);
return rootPath;
}
Expand Down
14 changes: 6 additions & 8 deletions src/main/resources/languages/english.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@

<string><key>DXFScaleOnLoad</key><value>Scale image to fit paper</value></string>
<string><key>DXFInfillOnLoad</key><value>Fill in closed areas</value></string>

<string><key>Undo </key><value>Undo </value></string>
<string><key>Redo </key><value>Redo </value></string>
<string><key>change </key><value>change </value></string>
<string><key>Add </key><value>Add </value></string>
<string><key>Remove </key><value>Remove </value></string>
<string><key>Move </key><value>Move </value></string>
<string><key>choose </key><value>choose </value></string>

<string><key>Change</key><value>Change</value></string>
<string><key>Add</key><value>Add</value></string>
<string><key>Remove</key><value>Remove</value></string>
<string><key>Move</key><value>Move</value></string>
<string><key>Choose</key><value>Choose</value></string>
<string><key>Cancel</key><value>Cancel</value></string>
<string><key>Save</key><value>Save</value></string>
<string><key>Load</key><value>Load</value></string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,86 @@
import org.junit.jupiter.api.Test;

import java.util.Locale;
import java.util.PropertyPermission;

import static org.junit.jupiter.api.Assertions.*;

public class TranslatorTest {
static boolean canRun=false;
@BeforeAll
public static void setUp() {
SecurityManager securityManager = System.getSecurityManager();
if(securityManager != null) {
try {
securityManager.checkPermission(new PropertyPermission("user.language", "write"));
} catch (SecurityException e) {
System.out.println("Cannot run TranslatorTest cases: " + e.getMessage());
canRun = false;
}
}
}


@Test
public void testChangeLocale() {
if(!canRun) return;
Locale original = Locale.getDefault();
Locale.setDefault(Locale.forLanguageTag("es-ES"));
Locale.setDefault(original);
}

@Test
public void testBadLocaleFallbackToEnglish() {
if(!canRun) return;
testBadLocaleFallbackToEnglish("es-ES");
testBadLocaleFallbackToEnglish("en-US");
}

public void testBadLocaleFallbackToEnglish(String languageTag) {
System.out.println("Testing locale: " + languageTag);

Locale original = Locale.getDefault();
try {
Locale.setDefault(Locale.forLanguageTag(languageTag));
Translator.start();
}
finally {
Locale.setDefault(original);
}
}
@BeforeAll
public static void beforeAll() {
Translator.start();
}

@Test
public void startTranslatorTwiceTest() {
String[] first = Translator.getLanguageList();
Translator.start();
String[] second = Translator.getLanguageList();
assertArrayEquals(first, second);
}

@Test
public void loadLanguageTest() {
String [] available = Translator.getLanguageList();
int current = Translator.getCurrentLanguageIndex();
assertNotNull(available[current]);
}

@Test
public void changeLanguageTest() {
String[] available = Translator.getLanguageList();
if(available.length == 1) {;
System.out.println("More than one language needed to complete test.");
return;
}

int current = Translator.getCurrentLanguageIndex();
try {
int next = (current + 1) % available.length;
Translator.setCurrentLanguage(available[next]);
Translator.saveConfig();
Translator.loadConfig();
int read = Translator.getCurrentLanguageIndex();
assertEquals(read, next, "Changing language failed.");
} finally {
// return to previous state
Translator.setCurrentLanguage(available[current]);
Translator.saveConfig();
}
}

@Test
public void getOneValueThatExists() {
assertEquals("File", Translator.get("RobotOverlord.Menu.File"));
}

@Test
public void getOneValueThatDoesNotExist() {
assertEquals(Translator.MISSING + "DoesNotExist", Translator.get("DoesNotExist"));
}

@Test
public void testChangeLocale() {
Locale original = Locale.getDefault();
Locale.setDefault(Locale.forLanguageTag("es-ES"));
Locale.setDefault(original);
}

@Test
public void testBadLocaleFallbackToEnglish() {
testBadLocaleFallbackToEnglish("es-ES");
testBadLocaleFallbackToEnglish("en-US");
}

public void testBadLocaleFallbackToEnglish(String languageTag) {
System.out.println("Testing locale: " + languageTag);

Locale original = Locale.getDefault();
try {
Locale.setDefault(Locale.forLanguageTag(languageTag));
Translator.start();
}
finally {
Locale.setDefault(original);
}
}
}

0 comments on commit 7376bc3

Please sign in to comment.