|
29 | 29 | import static org.mockito.Mockito.verifyZeroInteractions;
|
30 | 30 | import static org.mockito.Mockito.when;
|
31 | 31 |
|
| 32 | +import android.app.KeyguardManager; |
32 | 33 | import android.content.ClipData;
|
33 | 34 | import android.content.ClipDescription;
|
34 | 35 | import android.content.ClipboardManager;
|
@@ -62,6 +63,8 @@ public class ClipboardListenerTest extends SysuiTestCase {
|
62 | 63 | @Mock
|
63 | 64 | private ClipboardManager mClipboardManager;
|
64 | 65 | @Mock
|
| 66 | + private KeyguardManager mKeyguardManager; |
| 67 | + @Mock |
65 | 68 | private ClipboardOverlayController mOverlayController;
|
66 | 69 | @Mock
|
67 | 70 | private ClipboardToast mClipboardToast;
|
@@ -102,7 +105,7 @@ public void setup() {
|
102 | 105 | mFeatureFlags.set(CLIPBOARD_MINIMIZED_LAYOUT, true);
|
103 | 106 |
|
104 | 107 | mClipboardListener = new ClipboardListener(getContext(), mOverlayControllerProvider,
|
105 |
| - mClipboardToast, mClipboardManager, mFeatureFlags, mUiEventLogger); |
| 108 | + mClipboardToast, mClipboardManager, mKeyguardManager, mFeatureFlags, mUiEventLogger); |
106 | 109 | }
|
107 | 110 |
|
108 | 111 |
|
@@ -252,4 +255,44 @@ public void test_minimizedLayoutFlagOn_usesNew() {
|
252 | 255 | assertEquals(mSampleClipData, mClipDataCaptor.getValue());
|
253 | 256 | assertEquals(mSampleSource, mStringCaptor.getValue());
|
254 | 257 | }
|
| 258 | + |
| 259 | + @Test |
| 260 | + public void test_deviceLocked_showsToast() { |
| 261 | + when(mKeyguardManager.isDeviceLocked()).thenReturn(true); |
| 262 | + |
| 263 | + mClipboardListener.start(); |
| 264 | + mClipboardListener.onPrimaryClipChanged(); |
| 265 | + |
| 266 | + verify(mUiEventLogger, times(1)).log( |
| 267 | + ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN, 0, mSampleSource); |
| 268 | + verify(mClipboardToast, times(1)).showCopiedToast(); |
| 269 | + verifyZeroInteractions(mClipboardOverlayControllerFactory); |
| 270 | + } |
| 271 | + |
| 272 | + @Test |
| 273 | + public void test_nullClipData_showsNothing() { |
| 274 | + when(mClipboardManager.getPrimaryClip()).thenReturn(null); |
| 275 | + |
| 276 | + mClipboardListener.start(); |
| 277 | + mClipboardListener.onPrimaryClipChanged(); |
| 278 | + |
| 279 | + verifyZeroInteractions(mUiEventLogger); |
| 280 | + verifyZeroInteractions(mClipboardToast); |
| 281 | + verifyZeroInteractions(mClipboardOverlayControllerFactory); |
| 282 | + } |
| 283 | + |
| 284 | + @Test |
| 285 | + public void test_emptyClipData_showsToast() { |
| 286 | + ClipDescription description = new ClipDescription("Test", new String[0]); |
| 287 | + ClipData noItems = new ClipData(description, new ArrayList<>()); |
| 288 | + when(mClipboardManager.getPrimaryClip()).thenReturn(noItems); |
| 289 | + |
| 290 | + mClipboardListener.start(); |
| 291 | + mClipboardListener.onPrimaryClipChanged(); |
| 292 | + |
| 293 | + verify(mUiEventLogger, times(1)).log( |
| 294 | + ClipboardOverlayEvent.CLIPBOARD_TOAST_SHOWN, 0, mSampleSource); |
| 295 | + verify(mClipboardToast, times(1)).showCopiedToast(); |
| 296 | + verifyZeroInteractions(mClipboardOverlayControllerFactory); |
| 297 | + } |
255 | 298 | }
|
0 commit comments