From 86f3d35839afddea52ca271251fa6db281bae426 Mon Sep 17 00:00:00 2001 From: Juan Sebastian Martinez Date: Thu, 21 Nov 2024 09:58:33 -0800 Subject: [PATCH] Adding a mock for MSDLPlayerWrapper to DeleteDropTargetTest. The mock makes sure we don't rely on a device hardware for tests. Test: DeleteDropTargetTest Flag: com.android.launcher3.msdl_feedback Bug: 379958544 Change-Id: I202b81f3dd16af1c0985980d0b962be0000bf31f --- src/com/android/launcher3/ButtonDropTarget.java | 7 ++++++- .../android/launcher3/util/MSDLPlayerWrapper.java | 1 + .../com/android/launcher3/DeleteDropTargetTest.kt | 14 ++++++++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java index 867bf98e47..18619f5989 100644 --- a/src/com/android/launcher3/ButtonDropTarget.java +++ b/src/com/android/launcher3/ButtonDropTarget.java @@ -65,7 +65,7 @@ public abstract class ButtonDropTarget extends TextView protected final ActivityContext mActivityContext; protected final DropTargetHandler mDropTargetHandler; protected DropTargetBar mDropTargetBar; - private final MSDLPlayerWrapper mMSDLPlayerWrapper; + private MSDLPlayerWrapper mMSDLPlayerWrapper; /** Whether this drop target is active for the current drag */ protected boolean mActive; @@ -438,6 +438,11 @@ public abstract class ButtonDropTarget extends TextView return textHeight + getPaddingTop() + getPaddingBottom() >= availableHeight; } + @VisibleForTesting + public void setMSDLPlayerWrapper(MSDLPlayerWrapper wrapper) { + mMSDLPlayerWrapper = wrapper; + } + /** * Reduce the size of the text until it fits the measured width or reaches a minimum. * diff --git a/src/com/android/launcher3/util/MSDLPlayerWrapper.java b/src/com/android/launcher3/util/MSDLPlayerWrapper.java index eccccc757a..8a1d923709 100644 --- a/src/com/android/launcher3/util/MSDLPlayerWrapper.java +++ b/src/com/android/launcher3/util/MSDLPlayerWrapper.java @@ -69,6 +69,7 @@ public class MSDLPlayerWrapper { /** Print the latest history of MSDL tokens played */ public void dump(String prefix, PrintWriter writer) { + writer.println(prefix + mMSDLPlayer.toString()); writer.println(prefix + "MSDLPlayerWrapper history of latest events:"); List events = getHistory(); for (MSDLEvent event: events) { diff --git a/tests/multivalentTests/src/com/android/launcher3/DeleteDropTargetTest.kt b/tests/multivalentTests/src/com/android/launcher3/DeleteDropTargetTest.kt index 42374a569b..fa368e52d1 100644 --- a/tests/multivalentTests/src/com/android/launcher3/DeleteDropTargetTest.kt +++ b/tests/multivalentTests/src/com/android/launcher3/DeleteDropTargetTest.kt @@ -16,7 +16,12 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.kotlin.eq import org.mockito.kotlin.mock +import org.mockito.kotlin.times +import org.mockito.kotlin.verify +import org.mockito.kotlin.verifyNoMoreInteractions @SmallTest @RunWith(AndroidJUnit4::class) @@ -24,6 +29,8 @@ class DeleteDropTargetTest { @get:Rule val mSetFlagsRule = SetFlagsRule() + @Mock private val msdlPlayerWrapper = mock() + private var mContext: Context = ActivityContextWrapper(getApplicationContext()) // Use a non-abstract class implementation @@ -50,13 +57,12 @@ class DeleteDropTargetTest { @Test @EnableFlags(Flags.FLAG_MSDL_FEEDBACK) fun onDragEnter_performsMSDLSwipeThresholdFeedback() { + buttonDropTarget.setMSDLPlayerWrapper(msdlPlayerWrapper) val target = DropTarget.DragObject(mContext) target.dragView = mock>() buttonDropTarget.onDragEnter(target) - val wrapper = MSDLPlayerWrapper.INSTANCE.get(mContext) - val history = wrapper.history - assertThat(history.size).isEqualTo(1) - assertThat(history[0].tokenName).isEqualTo(MSDLToken.SWIPE_THRESHOLD_INDICATOR.name) + verify(msdlPlayerWrapper, times(1)).playToken(eq(MSDLToken.SWIPE_THRESHOLD_INDICATOR)) + verifyNoMoreInteractions(msdlPlayerWrapper) } }