Privacy-Period-Tracker/app/src/test/kotlin/dev/privacyllc/period/launcher/LauncherAliasSwitcherTest.kt

40 lines
1.7 KiB
Kotlin

package dev.privacyllc.period.launcher
import android.content.ComponentName
import android.content.Context
import android.content.pm.PackageManager
import androidx.test.core.app.ApplicationProvider
import dev.privacyllc.period.MainActivity
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [34])
class LauncherAliasSwitcherTest {
private val context: Context = ApplicationProvider.getApplicationContext()
private val switcher = AndroidLauncherAliasSwitcher(context)
private val pm = context.packageManager
private val packageName = context.packageName
private val aliasPackage = MainActivity::class.java.name.substringBeforeLast('.')
private val standard = ComponentName(packageName, "$aliasPackage.PeriodLauncherAlias")
private val incognito = ComponentName(packageName, "$aliasPackage.IncognitoLauncherAlias")
@Test fun `enabling incognito turns on only the neutral alias`() {
switcher.setIncognitoEnabled(true)
assertEquals(PackageManager.COMPONENT_ENABLED_STATE_DISABLED, pm.getComponentEnabledSetting(standard))
assertEquals(PackageManager.COMPONENT_ENABLED_STATE_ENABLED, pm.getComponentEnabledSetting(incognito))
}
@Test fun `disabling incognito restores only the normal alias`() {
switcher.setIncognitoEnabled(false)
assertEquals(PackageManager.COMPONENT_ENABLED_STATE_ENABLED, pm.getComponentEnabledSetting(standard))
assertEquals(PackageManager.COMPONENT_ENABLED_STATE_DISABLED, pm.getComponentEnabledSetting(incognito))
}
}