| <!DOCTYPE html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> |
| <script src="file:///gen/services/device/public/mojom/vibration_manager.mojom.js"></script> |
| <script src="../resources/user-gesture-utils.js"></script> |
| <script src="resources/vibration-helpers.js"></script> |
| <script src="vibration-utils.js"></script> |
| <h4 id="test"></h4> |
| <script> |
| |
| 'use strict'; |
| |
| if (!window.testRunner) |
| debug('This test cannot be run without the TestRunner'); |
| |
| // Simulates a user click for vibrate to be allowed. |
| var element = document.getElementById("test"); |
| simulateUserClick(element.offsetLeft + 2, element.offsetTop + 2); |
| |
| vibration_test(vibration => { |
| assert_true(vibration instanceof Object); |
| assert_true(vibration.mockVibrationManager instanceof Object); |
| }, 'VibrationManager Mojo bindings and mock interfaces are available to tests.'); |
| |
| vibration_test(vibration => { |
| let promise = new Promise(resolve => { |
| let listener = msg => { |
| window.removeEventListener('message', listener); |
| resolve(msg.data); |
| }; |
| window.addEventListener('message', listener); |
| |
| navigator.vibrate(1234); |
| }); |
| |
| return promise.then(msgData => { |
| assert_equals(msgData, 'Vibrate'); |
| assert_equals(vibration.mockVibrationManager.getDuration(), 1234); |
| assert_false(vibration.mockVibrationManager.isCancelled()); |
| }); |
| }, 'navigator.vibrate(1234) triggers vibration correctly.'); |
| |
| vibration_test(vibration => { |
| let promise = new Promise(resolve => { |
| let listener = msg => { |
| window.removeEventListener('message', listener); |
| resolve(msg.data); |
| }; |
| window.addEventListener('message', listener); |
| |
| navigator.vibrate(0); |
| }); |
| |
| return promise.then(msgData => { |
| console.log("got message " + msgData); |
| assert_equals(msgData, 'Cancel'); |
| assert_true(vibration.mockVibrationManager.isCancelled()); |
| }); |
| }, 'navigator.vibrate(0) triggers cancel correctly.'); |
| |
| </script> |