diff --git a/app/src/test/java/protect/card_locker/UtilsTest.java b/app/src/test/java/protect/card_locker/UtilsTest.java new file mode 100644 index 000000000..1d0013e6f --- /dev/null +++ b/app/src/test/java/protect/card_locker/UtilsTest.java @@ -0,0 +1,34 @@ +package protect.card_locker; + +import static org.junit.Assert.assertFalse; + +import android.content.res.TypedArray; +import android.graphics.Color; + +import androidx.test.core.app.ActivityScenario; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + + +@RunWith(RobolectricTestRunner.class) +public class UtilsTest { + /** + * Ensure all the default card colours (used when an user has not chosen a card colour) use white foreground text + */ + @Test + public void allDefaultCardColoursHaveWhiteForegroundTest() { + try(ActivityScenario scenario = ActivityScenario.launch(MainActivity.class)) { + scenario.onActivity(activity -> { + TypedArray colors = activity.getApplicationContext().getResources().obtainTypedArray(R.array.letter_tile_colors); + + for (int i = 0; i < colors.length(); i++) { + // Grab white as fallback so that if the retrieval somehow fails the test is guaranteed to fail because a white background will have black foreground + int color = colors.getColor(i, Color.WHITE); + assertFalse(Utils.needsDarkForeground(color)); + } + }); + } + } +}