[Media TTT] Stop chip from crashing on older devices (e.g. Pixel 4a),
un-ignore the tests now that it doesn't crash, and rehab the tests a bit. Fixes: 216286227 Test: media.taptotransfer tests Test: verified chip displays on Pixel 4a correctly Change-Id: I9ce20da5be2973f303884be28dec91dcc5f3a4e5
This commit is contained in:
@@ -155,6 +155,7 @@
|
||||
<color name="GM2_grey_900">#202124</color>
|
||||
|
||||
<color name="GM2_red_300">#F28B82</color>
|
||||
<color name="GM2_red_500">#EA4335</color>
|
||||
<color name="GM2_red_700">#C5221F</color>
|
||||
|
||||
<color name="GM2_blue_300">#8AB4F8</color>
|
||||
|
||||
@@ -39,7 +39,6 @@ import com.android.systemui.util.mockito.nullable
|
||||
import com.android.systemui.util.time.FakeSystemClock
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.verify
|
||||
@@ -49,7 +48,6 @@ import java.io.StringWriter
|
||||
import java.util.concurrent.Executor
|
||||
|
||||
@SmallTest
|
||||
@Ignore("b/216286227")
|
||||
class MediaTttCommandLineHelperTest : SysuiTestCase() {
|
||||
|
||||
private val inlineExecutor = Executor { command -> command.run() }
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.android.systemui.media.taptotransfer.common
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.graphics.drawable.Icon
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
@@ -29,7 +28,6 @@ import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.util.mockito.any
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentCaptor
|
||||
import org.mockito.Mock
|
||||
@@ -39,7 +37,6 @@ import org.mockito.Mockito.verify
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
@SmallTest
|
||||
@Ignore("b/216286227")
|
||||
class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
private lateinit var controllerCommon: MediaTttChipControllerCommon<MediaTttChipState>
|
||||
|
||||
@@ -50,7 +47,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
appIconDrawable = Icon.createWithResource(context, R.drawable.ic_cake).loadDrawable(context)
|
||||
appIconDrawable = context.getDrawable(R.drawable.ic_cake)!!
|
||||
controllerCommon = TestControllerCommon(context, windowManager)
|
||||
}
|
||||
|
||||
@@ -93,10 +90,10 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
controllerCommon.displayChip(getState())
|
||||
val chipView = getChipView()
|
||||
|
||||
val state = MediaTttChipState(PACKAGE_NAME)
|
||||
val state = TestChipState(PACKAGE_NAME)
|
||||
controllerCommon.setIcon(state, chipView)
|
||||
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(appIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
}
|
||||
@@ -120,6 +117,10 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
|
||||
override fun updateChipView(chipState: MediaTttChipState, currentChipView: ViewGroup) {
|
||||
}
|
||||
}
|
||||
|
||||
inner class TestChipState(appPackageName: String?) : MediaTttChipState(appPackageName) {
|
||||
override fun getAppIcon(context: Context) = appIconDrawable
|
||||
}
|
||||
}
|
||||
|
||||
private const val PACKAGE_NAME = "com.android.systemui"
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
package com.android.systemui.media.taptotransfer.receiver
|
||||
|
||||
import android.app.StatusBarManager
|
||||
import android.graphics.drawable.Icon
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.media.MediaRoute2Info
|
||||
import android.os.Handler
|
||||
import android.view.View
|
||||
@@ -29,30 +31,44 @@ import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.statusbar.CommandQueue
|
||||
import com.android.systemui.util.mockito.any
|
||||
import com.android.systemui.util.mockito.eq
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentCaptor
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.never
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.Mockito.`when` as whenever
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
@SmallTest
|
||||
@Ignore("b/216286227")
|
||||
class MediaTttChipControllerReceiverTest : SysuiTestCase() {
|
||||
private lateinit var controllerReceiver: MediaTttChipControllerReceiver
|
||||
|
||||
@Mock
|
||||
private lateinit var packageManager: PackageManager
|
||||
@Mock
|
||||
private lateinit var applicationInfo: ApplicationInfo
|
||||
@Mock
|
||||
private lateinit var windowManager: WindowManager
|
||||
@Mock
|
||||
private lateinit var commandQueue: CommandQueue
|
||||
private lateinit var commandQueueCallback: CommandQueue.Callbacks
|
||||
private lateinit var fakeAppIconDrawable: Drawable
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
|
||||
fakeAppIconDrawable = context.getDrawable(R.drawable.ic_cake)!!
|
||||
whenever(packageManager.getApplicationIcon(PACKAGE_NAME)).thenReturn(fakeAppIconDrawable)
|
||||
whenever(applicationInfo.loadLabel(packageManager)).thenReturn(APP_NAME)
|
||||
whenever(packageManager.getApplicationInfo(
|
||||
eq(PACKAGE_NAME), any<PackageManager.ApplicationInfoFlags>()
|
||||
)).thenReturn(applicationInfo)
|
||||
context.setMockPackageManager(packageManager)
|
||||
|
||||
controllerReceiver = MediaTttChipControllerReceiver(
|
||||
commandQueue, context, windowManager, Handler.getMain())
|
||||
|
||||
@@ -113,13 +129,12 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
|
||||
|
||||
controllerReceiver.displayChip(state)
|
||||
|
||||
assertThat(getChipView().getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
|
||||
assertThat(getChipView().getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun displayChip_hasAppIconDrawable_iconIsDrawable() {
|
||||
val drawable = Icon.createWithResource(context, R.drawable.ic_cake).loadDrawable(context)
|
||||
val drawable = context.getDrawable(R.drawable.ic_alarm)!!
|
||||
val state = ChipStateReceiver(PACKAGE_NAME, drawable, "appName")
|
||||
|
||||
controllerReceiver.displayChip(state)
|
||||
@@ -133,13 +148,12 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
|
||||
|
||||
controllerReceiver.displayChip(state)
|
||||
|
||||
assertThat(getChipView().getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(getChipView().getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun displayChip_hasAppName_iconContentDescriptionIsAppNameOverride() {
|
||||
val appName = "FakeAppName"
|
||||
val appName = "Override App Name"
|
||||
val state = ChipStateReceiver(PACKAGE_NAME, appIconDrawable = null, appName)
|
||||
|
||||
controllerReceiver.displayChip(state)
|
||||
@@ -156,6 +170,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() {
|
||||
private fun ViewGroup.getAppIconView() = this.requireViewById<ImageView>(R.id.app_icon)
|
||||
}
|
||||
|
||||
private const val APP_NAME = "Fake app name"
|
||||
private const val PACKAGE_NAME = "com.android.systemui"
|
||||
|
||||
private val routeInfo = MediaRoute2Info.Builder("id", "Test route name")
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
package com.android.systemui.media.taptotransfer.sender
|
||||
|
||||
import android.app.StatusBarManager
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.media.MediaRoute2Info
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
@@ -29,30 +32,44 @@ import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.statusbar.CommandQueue
|
||||
import com.android.systemui.util.mockito.any
|
||||
import com.android.systemui.util.mockito.eq
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.Before
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import org.mockito.ArgumentCaptor
|
||||
import org.mockito.Mock
|
||||
import org.mockito.Mockito.never
|
||||
import org.mockito.Mockito.verify
|
||||
import org.mockito.Mockito.`when` as whenever
|
||||
import org.mockito.MockitoAnnotations
|
||||
|
||||
@SmallTest
|
||||
@Ignore("b/216286227")
|
||||
class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
private lateinit var controllerSender: MediaTttChipControllerSender
|
||||
|
||||
@Mock
|
||||
private lateinit var packageManager: PackageManager
|
||||
@Mock
|
||||
private lateinit var applicationInfo: ApplicationInfo
|
||||
@Mock
|
||||
private lateinit var windowManager: WindowManager
|
||||
@Mock
|
||||
private lateinit var commandQueue: CommandQueue
|
||||
private lateinit var commandQueueCallback: CommandQueue.Callbacks
|
||||
private lateinit var fakeAppIconDrawable: Drawable
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
|
||||
fakeAppIconDrawable = context.getDrawable(R.drawable.ic_cake)!!
|
||||
whenever(applicationInfo.loadLabel(packageManager)).thenReturn(APP_NAME)
|
||||
whenever(packageManager.getApplicationIcon(PACKAGE_NAME)).thenReturn(fakeAppIconDrawable)
|
||||
whenever(packageManager.getApplicationInfo(
|
||||
eq(PACKAGE_NAME), any<PackageManager.ApplicationInfoFlags>()
|
||||
)).thenReturn(applicationInfo)
|
||||
context.setMockPackageManager(packageManager)
|
||||
|
||||
controllerSender = MediaTttChipControllerSender(commandQueue, context, windowManager)
|
||||
|
||||
val callbackCaptor = ArgumentCaptor.forClass(CommandQueue.Callbacks::class.java)
|
||||
@@ -192,9 +209,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE)
|
||||
assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE)
|
||||
@@ -207,9 +223,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE)
|
||||
assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE)
|
||||
@@ -222,9 +237,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.VISIBLE)
|
||||
assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE)
|
||||
@@ -237,9 +251,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.VISIBLE)
|
||||
assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE)
|
||||
@@ -252,9 +265,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE)
|
||||
assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE)
|
||||
@@ -314,9 +326,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE)
|
||||
assertThat(chipView.getFailureIcon().visibility).isEqualTo(View.GONE)
|
||||
@@ -376,9 +387,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
controllerSender.displayChip(state)
|
||||
|
||||
val chipView = getChipView()
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(state.getAppIcon(context))
|
||||
assertThat(chipView.getAppIconView().contentDescription)
|
||||
.isEqualTo(state.getAppName(context))
|
||||
assertThat(chipView.getAppIconView().drawable).isEqualTo(fakeAppIconDrawable)
|
||||
assertThat(chipView.getAppIconView().contentDescription).isEqualTo(APP_NAME)
|
||||
assertThat(chipView.getChipText()).isEqualTo(state.getChipTextString(context))
|
||||
assertThat(chipView.getLoadingIconVisibility()).isEqualTo(View.GONE)
|
||||
assertThat(chipView.getUndoButton().visibility).isEqualTo(View.GONE)
|
||||
@@ -451,15 +461,15 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun almostCloseToStartCast() =
|
||||
AlmostCloseToStartCast(PACKAGE_NAME, DEVICE_NAME)
|
||||
AlmostCloseToStartCast(PACKAGE_NAME, OTHER_DEVICE_NAME)
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun almostCloseToEndCast() =
|
||||
AlmostCloseToEndCast(PACKAGE_NAME, DEVICE_NAME)
|
||||
AlmostCloseToEndCast(PACKAGE_NAME, OTHER_DEVICE_NAME)
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun transferToReceiverTriggered() =
|
||||
TransferToReceiverTriggered(PACKAGE_NAME, DEVICE_NAME)
|
||||
TransferToReceiverTriggered(PACKAGE_NAME, OTHER_DEVICE_NAME)
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun transferToThisDeviceTriggered() =
|
||||
@@ -468,23 +478,24 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun transferToReceiverSucceeded(undoCallback: IUndoMediaTransferCallback? = null) =
|
||||
TransferToReceiverSucceeded(
|
||||
PACKAGE_NAME, DEVICE_NAME, undoCallback
|
||||
PACKAGE_NAME, OTHER_DEVICE_NAME, undoCallback
|
||||
)
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun transferToThisDeviceSucceeded(undoCallback: IUndoMediaTransferCallback? = null) =
|
||||
TransferToThisDeviceSucceeded(
|
||||
PACKAGE_NAME, DEVICE_NAME, undoCallback
|
||||
PACKAGE_NAME, OTHER_DEVICE_NAME, undoCallback
|
||||
)
|
||||
|
||||
/** Helper method providing default parameters to not clutter up the tests. */
|
||||
private fun transferFailed() = TransferFailed(PACKAGE_NAME)
|
||||
}
|
||||
|
||||
private const val DEVICE_NAME = "My Tablet"
|
||||
private const val APP_NAME = "Fake app name"
|
||||
private const val OTHER_DEVICE_NAME = "My Tablet"
|
||||
private const val PACKAGE_NAME = "com.android.systemui"
|
||||
|
||||
private val routeInfo = MediaRoute2Info.Builder("id", "Test Name")
|
||||
private val routeInfo = MediaRoute2Info.Builder("id", OTHER_DEVICE_NAME)
|
||||
.addFeature("feature")
|
||||
.setPackageName(PACKAGE_NAME)
|
||||
.build()
|
||||
|
||||
Reference in New Issue
Block a user