summaryrefslogtreecommitdiffstats
path: root/device
diff options
context:
space:
mode:
authorleon.han <leon.han@intel.com>2015-11-06 00:40:24 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-06 08:41:09 +0000
commitce8363056d9bd861fd768ad026104ddd0be544e9 (patch)
tree4195ec00e3216a9be862cc49d65faf9b9b2361ff /device
parent5fcf9a3cc3ab65c9d362d7a39385694ab914ee99 (diff)
downloadchromium_src-ce8363056d9bd861fd768ad026104ddd0be544e9.zip
chromium_src-ce8363056d9bd861fd768ad026104ddd0be544e9.tar.gz
chromium_src-ce8363056d9bd861fd768ad026104ddd0be544e9.tar.bz2
Add browsertests for VibrationManager java impl on android.
On android VibrationManager mojo service is implemented directly with Java, this CL adds browsertests to confirm VibrationManagerImpl behaviors. BUG= TEST=ContentShellTest instrumentation test PASS on android device. Review URL: https://codereview.chromium.org/1324853004 Cr-Commit-Position: refs/heads/master@{#358286}
Diffstat (limited to 'device')
-rw-r--r--device/vibration/android/java/src/org/chromium/device/vibration/VibrationManagerImpl.java31
1 files changed, 29 insertions, 2 deletions
diff --git a/device/vibration/android/java/src/org/chromium/device/vibration/VibrationManagerImpl.java b/device/vibration/android/java/src/org/chromium/device/vibration/VibrationManagerImpl.java
index dd8d275..6a323af 100644
--- a/device/vibration/android/java/src/org/chromium/device/vibration/VibrationManagerImpl.java
+++ b/device/vibration/android/java/src/org/chromium/device/vibration/VibrationManagerImpl.java
@@ -10,6 +10,7 @@ import android.media.AudioManager;
import android.os.Vibrator;
import android.util.Log;
+import org.chromium.base.VisibleForTesting;
import org.chromium.mojo.system.MojoException;
import org.chromium.mojom.device.VibrationManager;
@@ -27,9 +28,35 @@ public class VibrationManagerImpl implements VibrationManager {
private final Vibrator mVibrator;
private final boolean mHasVibratePermission;
+ private static AndroidVibratorWrapper sVibratorWrapper;
+
+ /**
+ * Android Vibrator wrapper class provided to test code to extend.
+ */
+ @VisibleForTesting
+ public static class AndroidVibratorWrapper {
+ protected AndroidVibratorWrapper() {}
+
+ public void vibrate(Vibrator vibrator, long milliseconds) {
+ vibrator.vibrate(milliseconds);
+ }
+
+ public void cancel(Vibrator vibrator) {
+ vibrator.cancel();
+ }
+ }
+
+ // Test code can use this function to inject other wrapper for testing.
+ public static void setVibratorWrapperForTesting(AndroidVibratorWrapper wrapper) {
+ sVibratorWrapper = wrapper;
+ }
+
public VibrationManagerImpl(Context context) {
mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+ if (sVibratorWrapper == null) {
+ sVibratorWrapper = new AndroidVibratorWrapper();
+ }
mHasVibratePermission =
context.checkCallingOrSelfPermission(android.Manifest.permission.VIBRATE)
== PackageManager.PERMISSION_GRANTED;
@@ -53,12 +80,12 @@ public class VibrationManagerImpl implements VibrationManager {
if (mAudioManager.getRingerMode() != AudioManager.RINGER_MODE_SILENT
&& mHasVibratePermission) {
- mVibrator.vibrate(sanitizedMilliseconds);
+ sVibratorWrapper.vibrate(mVibrator, sanitizedMilliseconds);
}
}
@Override
public void cancel() {
- if (mHasVibratePermission) mVibrator.cancel();
+ if (mHasVibratePermission) sVibratorWrapper.cancel(mVibrator);
}
}