summaryrefslogtreecommitdiff
path: root/app/src/test/java/org/terst/feedreader/data/SettingsTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/test/java/org/terst/feedreader/data/SettingsTest.kt')
-rw-r--r--app/src/test/java/org/terst/feedreader/data/SettingsTest.kt23
1 files changed, 23 insertions, 0 deletions
diff --git a/app/src/test/java/org/terst/feedreader/data/SettingsTest.kt b/app/src/test/java/org/terst/feedreader/data/SettingsTest.kt
index 5b2048b..5cace1a 100644
--- a/app/src/test/java/org/terst/feedreader/data/SettingsTest.kt
+++ b/app/src/test/java/org/terst/feedreader/data/SettingsTest.kt
@@ -29,4 +29,27 @@ class SettingsTest {
fun `pinch zoom result is clamped to the maximum reader font size`() {
assertEquals(READER_FONT_SIZE_RANGE_PX.last, pinchZoomFontSizePx(28, 3.0f))
}
+
+ @Test
+ fun `text already laid out at the wanted size needs no zoom`() {
+ assertEquals(UNZOOMED_TEXT_ZOOM_PERCENT, readerTextZoomPercent(renderedPx = 18, targetPx = 18))
+ }
+
+ @Test
+ fun `a bigger wanted size lifts the text zoom proportionally`() {
+ assertEquals(156, readerTextZoomPercent(renderedPx = 18, targetPx = 28))
+ }
+
+ @Test
+ fun `a smaller wanted size drops the text zoom proportionally`() {
+ assertEquals(78, readerTextZoomPercent(renderedPx = 18, targetPx = 14))
+ }
+
+ @Test
+ fun `text zoom is measured against the size the page is laid out at, not the saved size`() {
+ // Pinch, release, pinch again before the reload at the new size has landed: the page is
+ // still laid out at 18px even though 22px is the saved size, so going on to 24px has to
+ // be 24/18 -- measuring it against the saved 22px would visibly shrink the text first.
+ assertEquals(133, readerTextZoomPercent(renderedPx = 18, targetPx = 24))
+ }
}