SecureFlagCoverageTest.kt

1.2 KB · raw

1package com.peachpasswords.security23import java.io.File4import org.junit.Assert.assertTrue5import org.junit.Test67class SecureFlagCoverageTest {8    @Test fun secret_surfaces_keep_flag_secure_coverage() {9        val protectedScreens = listOf(10            "app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt",11            "app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt",12            "app/src/main/java/com/peachpasswords/ui/vault/NotesModeScreen.kt",13            "app/src/main/java/com/peachpasswords/ui/vault/ExportScreen.kt",14            "app/src/main/java/com/peachpasswords/ui/vault/RecoveryWordsScreen.kt",15            "app/src/main/java/com/peachpasswords/ui/recovery/RecoveryWordEntryScreen.kt",16            "app/src/main/java/com/peachpasswords/ui/codex/CodexGenerateScreen.kt",17        )1819        protectedScreens.forEach { relativePath ->20            val file = File(relativePath).takeIf { it.exists() } ?: File("../$relativePath")21            val source = file.readText()22            assertTrue(23                "$relativePath must protect screenshots while visible",24                source.contains("SecureFlagEffect()") || source.contains("WindowManager.LayoutParams.FLAG_SECURE"),25            )26        }27    }28}