40 lines
1.7 KiB
Kotlin
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))
|
|
}
|
|
}
|