diff options
author | leon.han <leon.han@intel.com> | 2015-11-06 00:40:24 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-06 08:41:09 +0000 |
commit | ce8363056d9bd861fd768ad026104ddd0be544e9 (patch) | |
tree | 4195ec00e3216a9be862cc49d65faf9b9b2361ff /device | |
parent | 5fcf9a3cc3ab65c9d362d7a39385694ab914ee99 (diff) | |
download | chromium_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.java | 31 |
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); } } |