Test addVibratorStateListener with Executor API
Add test coverage to test addVibratorStateListener with Executor to run
with.
Bug: 155119369
Test: atest VibratorTest
Change-Id: Ic326617e7e27e3a5899f1c68cb6c714ecbfa039c
diff --git a/tests/tests/os/src/android/os/cts/VibratorTest.java b/tests/tests/os/src/android/os/cts/VibratorTest.java
index 278bea3..459aaa2 100644
--- a/tests/tests/os/src/android/os/cts/VibratorTest.java
+++ b/tests/tests/os/src/android/os/cts/VibratorTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
@@ -36,6 +38,8 @@
import androidx.test.rule.ActivityTestRule;
import androidx.test.runner.AndroidJUnit4;
+import java.util.concurrent.Executors;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -234,8 +238,8 @@
public void testVibratorStateCallback() throws Exception {
final UiAutomation ui = InstrumentationRegistry.getInstrumentation().getUiAutomation();
ui.adoptShellPermissionIdentity("android.permission.ACCESS_VIBRATOR_STATE");
- // Add listener1
- mVibrator.addVibratorStateListener(mListener1);
+ // Add listener1 on executor
+ mVibrator.addVibratorStateListener(Executors.newSingleThreadExecutor(), mListener1);
// Add listener2 on main thread.
mVibrator.addVibratorStateListener(mListener2);
verify(mListener1, timeout(CALLBACK_TIMEOUT_MILLIS)
@@ -251,14 +255,26 @@
verify(mListener2, timeout(CALLBACK_TIMEOUT_MILLIS)
.times(1)).onVibratorStateChanged(true);
- reset(mListener1);
- reset(mListener2);
- // Remove listener1
- mVibrator.removeVibratorStateListener(mListener1);
- mVibrator.removeVibratorStateListener(mListener2);
+ verify(mListener1, timeout(CALLBACK_TIMEOUT_MILLIS)
+ .times(1)).onVibratorStateChanged(false);
+ verify(mListener2, timeout(CALLBACK_TIMEOUT_MILLIS)
+ .times(1)).onVibratorStateChanged(false);
mVibrator.cancel();
assertIsVibrating(false);
+
+ reset(mListener1);
+ reset(mListener2);
+ // Remove listener1 & listener2
+ mVibrator.removeVibratorStateListener(mListener1);
+ mVibrator.removeVibratorStateListener(mListener2);
+
+ mVibrator.vibrate(1000);
+ assertIsVibrating(true);
+ verify(mListener1, timeout(CALLBACK_TIMEOUT_MILLIS).times(0))
+ .onVibratorStateChanged(anyBoolean());
+ verify(mListener2, timeout(CALLBACK_TIMEOUT_MILLIS).times(0))
+ .onVibratorStateChanged(anyBoolean());
}
private static void sleep(long millis) {