1package com.peachpasswords.autofill23import org.junit.Assert.assertEquals4import org.junit.Assert.assertNull5import org.junit.Assert.assertTrue6import org.junit.Test7891011121314class PickerOriginTrustTest {1516 @Test fun pickerParsedFromInputs_always_returns_unknown_trust() {17 val parsed = pickerParsedFromInputs(18 origin = "example.com",19 isWebOrigin = true,20 callerPackage = "com.android.chrome",21 verifiedDomains = listOf("example.com"),22 )23 assertEquals(24 "picker must never inherit trust from intent extras",25 AutofillOriginTrust.UNKNOWN,26 parsed.originTrust,27 )28 }2930 @Test fun pickerParsedFromInputs_sets_webDomain_for_web_origins() {31 val parsed = pickerParsedFromInputs(32 origin = "example.com",33 isWebOrigin = true,34 callerPackage = "com.android.chrome",35 verifiedDomains = emptyList(),36 )37 assertEquals("example.com", parsed.webDomain)38 assertEquals("com.android.chrome", parsed.packageName)39 assertNull(parsed.webDomain?.let { null } ?: "webDomain should be set", parsed.packageName.takeIf { parsed.webDomain == null })40 }4142 @Test fun pickerParsedFromInputs_sets_packageName_for_native_origins() {43 val parsed = pickerParsedFromInputs(44 origin = "com.example.app",45 isWebOrigin = false,46 callerPackage = null,47 verifiedDomains = emptyList(),48 )49 assertNull(parsed.webDomain)50 assertEquals("com.example.app", parsed.packageName)51 }5253 @Test fun pickerParsedFromInputs_null_origin_produces_empty_parsed() {54 val parsed = pickerParsedFromInputs(55 origin = null,56 isWebOrigin = false,57 callerPackage = null,58 verifiedDomains = emptyList(),59 )60 assertNull(parsed.webDomain)61 assertNull(parsed.packageName)62 assertEquals(AutofillOriginTrust.UNKNOWN, parsed.originTrust)63 assertTrue(parsed.verifiedDomains.isEmpty())64 }6566 @Test fun pickerParsedFromInputs_carries_verified_domains_as_input_only() {67 68 69 70 val parsed = pickerParsedFromInputs(71 origin = "example.com",72 isWebOrigin = false,73 callerPackage = null,74 verifiedDomains = listOf("example.com", "cdn.example.com"),75 )76 assertEquals(listOf("example.com", "cdn.example.com"), parsed.verifiedDomains)77 assertEquals(AutofillOriginTrust.UNKNOWN, parsed.originTrust)78 }7980 @Test fun rederived_trust_is_unknown_for_untrusted_package() {81 82 83 84 val rawParsed = pickerParsedFromInputs(85 origin = "example.com",86 isWebOrigin = true,87 callerPackage = "com.evil.browser",88 verifiedDomains = emptyList(),89 )90 91 val rederived = rawParsed.copy(92 originTrust = AutofillOriginTrust.UNKNOWN,93 verifiedDomains = emptyList(),94 )95 assertEquals(AutofillOriginTrust.UNKNOWN, rederived.originTrust)96 assertTrue(rederived.verifiedDomains.isEmpty())97 }98}