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
This commit is contained in:
Juan Sebastian Martinez
2024-11-21 13:32:43 -08:00
parent 9241d291aa
commit 86f3d35839
3 changed files with 17 additions and 5 deletions
@@ -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.
*
@@ -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<MSDLEvent> events = getHistory();
for (MSDLEvent event: events) {
@@ -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<MSDLPlayerWrapper>()
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<DragView<*>>()
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)
}
}