mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-09-12 04:05:34 +02:00
Add persistent map analysis toggle and improve compact layout for smaller screens. Solves (#69)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
package kst4contest.test;
|
||||
|
||||
import kst4contest.model.ChatPreferences;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class ChatPreferencesStationMapVisibilityTest {
|
||||
|
||||
@TempDir
|
||||
Path temporaryDirectory;
|
||||
|
||||
@Test
|
||||
void pathAnalysisIsVisibleByDefault() {
|
||||
ChatPreferences preferences = new ChatPreferences();
|
||||
|
||||
assertTrue(preferences.isGUIstationMapPathAnalysisVisible());
|
||||
}
|
||||
|
||||
@Test
|
||||
void hiddenPathAnalysisStateSurvivesXmlRoundTrip() throws IOException {
|
||||
Path preferencesFile = temporaryDirectory.resolve("preferences.xml");
|
||||
|
||||
ChatPreferences writtenPreferences = new ChatPreferences();
|
||||
writtenPreferences.setStoreAndRestorePreferencesFileName(
|
||||
preferencesFile.toString());
|
||||
writtenPreferences.setGUIstationMapPathAnalysisVisible(false);
|
||||
writtenPreferences.writePreferencesToXmlFile();
|
||||
|
||||
String writtenXml = Files.readString(preferencesFile);
|
||||
assertTrue(writtenXml.contains(
|
||||
"<GUIstationMapPathAnalysisVisible>false"
|
||||
+ "</GUIstationMapPathAnalysisVisible>"));
|
||||
|
||||
ChatPreferences restoredPreferences = new ChatPreferences();
|
||||
restoredPreferences.setStoreAndRestorePreferencesFileName(
|
||||
preferencesFile.toString());
|
||||
restoredPreferences.readPreferencesFromXmlFile();
|
||||
|
||||
assertFalse(restoredPreferences.isGUIstationMapPathAnalysisVisible());
|
||||
}
|
||||
|
||||
@Test
|
||||
void legacyXmlWithoutVisibilitySettingKeepsAnalysisDiscoverable()
|
||||
throws IOException {
|
||||
|
||||
Path legacyPreferencesFile =
|
||||
temporaryDirectory.resolve("legacy-preferences.xml");
|
||||
|
||||
Files.writeString(legacyPreferencesFile, """
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<praktiKST>
|
||||
<configVersion>4</configVersion>
|
||||
<guiOptions>
|
||||
<GUIstationMapStageSceneSizeHW>1000.0;800.0</GUIstationMapStageSceneSizeHW>
|
||||
</guiOptions>
|
||||
</praktiKST>
|
||||
""");
|
||||
|
||||
ChatPreferences restoredPreferences = new ChatPreferences();
|
||||
restoredPreferences.setStoreAndRestorePreferencesFileName(
|
||||
legacyPreferencesFile.toString());
|
||||
restoredPreferences.readPreferencesFromXmlFile();
|
||||
|
||||
assertTrue(restoredPreferences.isGUIstationMapPathAnalysisVisible());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user