1package com.peachpasswords.vault23import org.junit.Assert.assertEquals4import org.junit.Assert.assertFalse5import org.junit.Assert.assertTrue6import org.junit.Test789101112131415class VaultSettingsDefaultsTest {1617 @Test fun new_install_default_has_passkey_enabled() {18 assertTrue(19 "first-launch default must enable passkey provider — user said 'q2 is correct'",20 VaultSettings().passkeyProviderEnabled,21 )22 }2324 @Test fun plaintext_settings_do_not_contain_duress_configuration() {25 val encoded = VaultCodec.encodeSettings(VaultSettings())2627 assertFalse(encoded.contains("duressConfigured"))28 }2930 @Test fun legacy_duress_setting_is_ignored_before_unlock() {31 val decoded = VaultCodec.decodeSettings("{\"duressConfigured\":true}")3233 assertEquals(VaultSettings(), decoded)34 assertFalse(decoded!!.toString().contains("duressConfigured"))35 }3637 @Test fun explicitly_disabled_setting_round_trips_through_codec() {38 val original = VaultSettings(passkeyProviderEnabled = false)39 val encoded = VaultCodec.encodeSettings(original)40 val decoded = VaultCodec.decodeSettings(encoded)41 assertEquals(original, decoded)42 assertFalse("explicit off must not be auto-flipped to on by load", decoded!!.passkeyProviderEnabled)43 }4445 @Test fun explicitly_enabled_setting_round_trips_through_codec() {46 val original = VaultSettings(passkeyProviderEnabled = true)47 val encoded = VaultCodec.encodeSettings(original)48 val decoded = VaultCodec.decodeSettings(encoded)49 assertEquals(original, decoded)50 }5152 @Test fun legacy_enabled_favicons_doNotGainConsentByUpgrade() {53 val legacy = VaultCodec.decodeSettings("{\"faviconsEnabled\":true}")!!5455 assertEquals(0, legacy.faviconConsentVersion)56 assertFalse(faviconsAllowed(legacy))57 }5859 @Test fun currentExplicitConsentAllowsEnabledFavicons() {60 val consented = grantCurrentFaviconConsent(VaultSettings())6162 assertTrue(consented.faviconsEnabled)63 assertEquals(CURRENT_FAVICON_CONSENT_VERSION, consented.faviconConsentVersion)64 assertTrue(faviconsAllowed(consented))65 }6667 @Test fun disabledFaviconsStayOffAfterPriorConsent() {68 val disabled = grantCurrentFaviconConsent(VaultSettings()).copy(faviconsEnabled = false)6970 assertFalse(faviconsAllowed(disabled))71 }72}