1 package com.android.launcher3 2 3 import android.content.Context 4 import android.platform.test.annotations.EnableFlags 5 import android.platform.test.flag.junit.SetFlagsRule 6 import androidx.test.core.app.ApplicationProvider.getApplicationContext 7 import androidx.test.ext.junit.runners.AndroidJUnit4 8 import androidx.test.filters.SmallTest 9 import com.android.launcher3.Utilities.* 10 import com.android.launcher3.dragndrop.DragView 11 import com.android.launcher3.util.ActivityContextWrapper 12 import com.android.launcher3.util.MSDLPlayerWrapper 13 import com.google.android.msdl.data.model.MSDLToken 14 import com.google.common.truth.Truth.assertThat 15 import org.junit.Before 16 import org.junit.Rule 17 import org.junit.Test 18 import org.junit.runner.RunWith 19 import org.mockito.Mock 20 import org.mockito.kotlin.eq 21 import org.mockito.kotlin.mock 22 import org.mockito.kotlin.times 23 import org.mockito.kotlin.verify 24 import org.mockito.kotlin.verifyNoMoreInteractions 25 26 @SmallTest 27 @RunWith(AndroidJUnit4::class) 28 class DeleteDropTargetTest { 29 30 @get:Rule val mSetFlagsRule = SetFlagsRule() 31 32 @Mock private val msdlPlayerWrapper = mock<MSDLPlayerWrapper>() 33 34 private var mContext: Context = ActivityContextWrapper(getApplicationContext()) 35 36 // Use a non-abstract class implementation 37 private var buttonDropTarget: DeleteDropTarget = DeleteDropTarget(mContext) 38 39 @Before setupnull40 fun setup() { 41 enableRunningInTestHarnessForTests() 42 } 43 44 @Test isTextClippedVerticallyTestnull45 fun isTextClippedVerticallyTest() { 46 buttonDropTarget.updateText("My Test") 47 buttonDropTarget.setPadding(0, 0, 0, 0) 48 buttonDropTarget.setTextMultiLine(false) 49 50 // No space for text 51 assertThat(buttonDropTarget.isTextClippedVertically(1)).isTrue() 52 53 // A lot of space for text so the text should not be clipped 54 assertThat(buttonDropTarget.isTextClippedVertically(1000)).isFalse() 55 } 56 57 @Test 58 @EnableFlags(Flags.FLAG_MSDL_FEEDBACK) onDragEnter_performsMSDLSwipeThresholdFeedbacknull59 fun onDragEnter_performsMSDLSwipeThresholdFeedback() { 60 buttonDropTarget.setMSDLPlayerWrapper(msdlPlayerWrapper) 61 val target = DropTarget.DragObject(mContext) 62 target.dragView = mock<DragView<*>>() 63 buttonDropTarget.onDragEnter(target) 64 65 verify(msdlPlayerWrapper, times(1)).playToken(eq(MSDLToken.SWIPE_THRESHOLD_INDICATOR)) 66 verifyNoMoreInteractions(msdlPlayerWrapper) 67 } 68 } 69