mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Fix: 325088906 Test: presubmits passing, gradle robo run passing locally Flag: NA Change-Id: I481bfe9caeb8cc18b3e01ec8b7a58fb0eb36fdaa
172 lines
6.0 KiB
Kotlin
172 lines
6.0 KiB
Kotlin
package com.android.launcher3
|
|
|
|
import android.appwidget.AppWidgetManager.ACTION_APPWIDGET_DELETED
|
|
import android.appwidget.AppWidgetManager.ACTION_APPWIDGET_HOST_RESTORED
|
|
import android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_IDS
|
|
import android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_OLD_IDS
|
|
import android.appwidget.AppWidgetManager.EXTRA_HOST_ID
|
|
import android.content.Intent
|
|
import android.platform.uiautomator_helpers.DeviceHelpers
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
import androidx.test.filters.SmallTest
|
|
import com.android.launcher3.LauncherPrefs.Companion.APP_WIDGET_IDS
|
|
import com.android.launcher3.LauncherPrefs.Companion.OLD_APP_WIDGET_IDS
|
|
import com.android.launcher3.util.IntArray
|
|
import com.android.launcher3.util.LauncherModelHelper.TEST_PACKAGE
|
|
import com.android.launcher3.widget.LauncherWidgetHolder.APPWIDGET_HOST_ID
|
|
import com.google.common.truth.Truth.assertThat
|
|
import org.junit.After
|
|
import org.junit.Before
|
|
import org.junit.Test
|
|
import org.junit.runner.RunWith
|
|
|
|
/** Tests for [AppWidgetsRestoredReceiver] */
|
|
@SmallTest
|
|
@RunWith(AndroidJUnit4::class)
|
|
class AppWidgetsRestoredReceiverTest {
|
|
private lateinit var launcherPrefs: LauncherPrefs
|
|
private lateinit var receiverUnderTest: AppWidgetsRestoredReceiver
|
|
|
|
@Before
|
|
fun setup() {
|
|
launcherPrefs = LauncherPrefs(DeviceHelpers.context)
|
|
receiverUnderTest = AppWidgetsRestoredReceiver()
|
|
}
|
|
|
|
@After
|
|
fun tearDown() {
|
|
launcherPrefs.remove(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)
|
|
}
|
|
|
|
@Test
|
|
fun `When AppWidgetsRestoredReceiver gets valid broadcast it sets old and new app widget ids`() {
|
|
// Given
|
|
val oldIds = intArrayOf(1, 2, 10)
|
|
val newIds = intArrayOf(10, 11, 12)
|
|
val expectedOldIds = IntArray.wrap(*oldIds).toConcatString()
|
|
val expectedNewIds = IntArray.wrap(*newIds).toConcatString()
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_HOST_RESTORED
|
|
putExtra(EXTRA_APPWIDGET_OLD_IDS, oldIds)
|
|
putExtra(EXTRA_APPWIDGET_IDS, newIds)
|
|
putExtra(EXTRA_HOST_ID, APPWIDGET_HOST_ID)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.get(OLD_APP_WIDGET_IDS)).isEqualTo(expectedOldIds)
|
|
assertThat(launcherPrefs.get(APP_WIDGET_IDS)).isEqualTo(expectedNewIds)
|
|
}
|
|
|
|
@Test
|
|
fun `AppWidgetsRestoredReceiver does not set widget ids when Intent action is invalid`() {
|
|
// Given
|
|
val oldIds = intArrayOf(1, 2, 10)
|
|
val newIds = intArrayOf(10, 11, 12)
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_DELETED
|
|
putExtra(EXTRA_APPWIDGET_OLD_IDS, oldIds)
|
|
putExtra(EXTRA_APPWIDGET_IDS, newIds)
|
|
putExtra(EXTRA_HOST_ID, APPWIDGET_HOST_ID)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.has(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)).isFalse()
|
|
}
|
|
|
|
@Test
|
|
fun `AppWidgetsRestoredReceiver does not set widget ids when Intent host id is not Launcher`() {
|
|
// Given
|
|
val oldIds = intArrayOf(1, 2, 10)
|
|
val newIds = intArrayOf(10, 11, 12)
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_HOST_RESTORED
|
|
putExtra(EXTRA_APPWIDGET_OLD_IDS, oldIds)
|
|
putExtra(EXTRA_APPWIDGET_IDS, newIds)
|
|
putExtra(EXTRA_HOST_ID, 999999999)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.has(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)).isFalse()
|
|
}
|
|
|
|
@Test
|
|
fun `AppWidgetsRestoredReceiver does not set ids when new and old ids differ in length`() {
|
|
// Given
|
|
val oldIds = intArrayOf(10)
|
|
val newIds = intArrayOf(10, 11, 12)
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_HOST_RESTORED
|
|
putExtra(EXTRA_APPWIDGET_OLD_IDS, oldIds)
|
|
putExtra(EXTRA_APPWIDGET_IDS, newIds)
|
|
putExtra(EXTRA_HOST_ID, APPWIDGET_HOST_ID)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.has(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)).isFalse()
|
|
}
|
|
|
|
@Test
|
|
fun `AppWidgetsRestoredReceiver does not set widget ids when old ids not set`() {
|
|
// Given
|
|
val newIds = intArrayOf(10, 11, 12)
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_HOST_RESTORED
|
|
putExtra(EXTRA_APPWIDGET_IDS, newIds)
|
|
putExtra(EXTRA_HOST_ID, APPWIDGET_HOST_ID)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.has(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)).isFalse()
|
|
}
|
|
|
|
@Test
|
|
fun `AppWidgetsRestoredReceiver does not set widget ids when new ids not set`() {
|
|
// Given
|
|
val oldIds = intArrayOf(10, 11, 12)
|
|
val intent =
|
|
Intent().apply {
|
|
component = null
|
|
`package` = TEST_PACKAGE
|
|
action = ACTION_APPWIDGET_HOST_RESTORED
|
|
putExtra(EXTRA_APPWIDGET_OLD_IDS, oldIds)
|
|
putExtra(EXTRA_HOST_ID, APPWIDGET_HOST_ID)
|
|
}
|
|
|
|
// When
|
|
receiverUnderTest.onReceive(DeviceHelpers.context, intent)
|
|
|
|
// Then
|
|
assertThat(launcherPrefs.has(OLD_APP_WIDGET_IDS, APP_WIDGET_IDS)).isFalse()
|
|
}
|
|
}
|