Добавить доступный интерфейс этапа 3
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.projectsacrifice.game;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public final class AccessibilityScreenDescriptionTest {
|
||||
@Test
|
||||
public void everyPlayerFacingScreenNamesItsStateAndAvailableActions() {
|
||||
String levels = AccessibilityScreenDescription.levelSelect(3, 10);
|
||||
assertTrue(levels.contains("Level select"));
|
||||
assertTrue(levels.contains("3 of 10 unlocked"));
|
||||
assertTrue(levels.contains("Settings"));
|
||||
|
||||
String settings = AccessibilityScreenDescription.settings(
|
||||
ControlSettings.defaults(), AccessibilitySettings.defaults());
|
||||
assertTrue(settings.contains("Settings"));
|
||||
assertTrue(settings.contains("Text size Standard"));
|
||||
assertTrue(settings.contains("High contrast Off"));
|
||||
assertTrue(settings.contains("Back"));
|
||||
|
||||
String playing = AccessibilityScreenDescription.playing(
|
||||
LevelCatalog.get(0), 2, "01:23", "Signals 1/1", false);
|
||||
assertTrue(playing.contains("Playing level 1"));
|
||||
assertTrue(playing.contains("2 volunteers"));
|
||||
assertTrue(playing.contains("Signals 1/1"));
|
||||
assertTrue(playing.contains("Move left, move right, jump, restart, pause"));
|
||||
|
||||
String complete = AccessibilityScreenDescription.complete(
|
||||
LevelCatalog.get(0), 2, "01:23", true);
|
||||
assertTrue(complete.contains("Level complete"));
|
||||
assertTrue(complete.contains("Replay"));
|
||||
assertTrue(complete.contains("Next level"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.projectsacrifice.game;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
|
||||
public final class AccessibilitySettingsTest {
|
||||
@Test
|
||||
public void textSizeCyclesBetweenReadablePresetsAndWraps() {
|
||||
AccessibilitySettings settings = AccessibilitySettings.defaults();
|
||||
|
||||
assertEquals("Standard", settings.textSizeLabel());
|
||||
assertEquals(1f, settings.textScale(), 0f);
|
||||
|
||||
settings = settings.nextTextSize();
|
||||
assertEquals("Large", settings.textSizeLabel());
|
||||
assertEquals(1.25f, settings.textScale(), 0f);
|
||||
|
||||
assertEquals("Standard", settings.nextTextSize().textSizeLabel());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void highContrastIsExplicitAndReversible() {
|
||||
AccessibilitySettings settings = AccessibilitySettings.defaults();
|
||||
|
||||
assertFalse(settings.highContrastEnabled());
|
||||
assertEquals("Off", settings.highContrastLabel());
|
||||
|
||||
settings = settings.toggleHighContrast();
|
||||
assertTrue(settings.highContrastEnabled());
|
||||
assertEquals("On", settings.highContrastLabel());
|
||||
assertFalse(settings.toggleHighContrast().highContrastEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidPersistedPresetFallsBackWithoutChangingContrastChoice() {
|
||||
AccessibilitySettings settings = AccessibilitySettings.restore(99, true);
|
||||
|
||||
assertEquals("Standard", settings.textSizeLabel());
|
||||
assertTrue(settings.highContrastEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void largePresetScalesEveryCanvasTextRequestWithoutMovingLayout() {
|
||||
AccessibilitySettings large = AccessibilitySettings.defaults().nextTextSize();
|
||||
|
||||
assertEquals(30f, large.canvasTextSize(24f), 0f);
|
||||
assertEquals(80f, large.canvasTextSize(64f), 0f);
|
||||
assertEquals(24f, AccessibilitySettings.defaults().canvasTextSize(24f), 0f);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.projectsacrifice.game;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public final class AccessibilityStatusTest {
|
||||
@Test
|
||||
public void criticalGameplayStateIsRepresentedByTextNotOnlyColorOrVibration() {
|
||||
assertEquals(
|
||||
"Signals 1/2 · Doors 0/1 · Volunteer respawning",
|
||||
AccessibilityStatus.describe(1, 2, 0, 1, false)
|
||||
);
|
||||
assertEquals(
|
||||
"Signals 0/0 · Doors 0/0 · Volunteer active",
|
||||
AccessibilityStatus.describe(0, 0, 0, 0, true)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user