| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <h4 id="test">non-empty content to be clicked</h4> |
| <script type="module"> |
| import {vibration_test} from './resources/vibration-helpers.js'; |
| |
| vibration_test(vibration => { |
| assert_true(vibration instanceof Object); |
| assert_true(vibration.mockVibrationManager instanceof Object); |
| }, 'VibrationManager Mojo bindings and mock interfaces are available to tests.'); |
| |
| // Ensure a click has occurred so we can vibrate; but only one is necessary, |
| // hence the single promise shared among tests. |
| const click = test_driver.click(document.getElementById('test')); |
| |
| vibration_test(async vibration => { |
| const msgPromise= new Promise( |
| resolve => window.addEventListener('message', resolve, {once: true})); |
| await click; |
| navigator.vibrate(1234); |
| const {data} = await msgPromise; |
| assert_equals(data, 'Vibrate'); |
| assert_equals(vibration.mockVibrationManager.getDuration(), 1234); |
| assert_false(vibration.mockVibrationManager.isCancelled()); |
| }, 'navigator.vibrate(1234) triggers vibration correctly.'); |
| |
| vibration_test(async vibration => { |
| const msgPromise = new Promise( |
| resolve => window.addEventListener('message', resolve, {once: true})); |
| await click; |
| navigator.vibrate(0); |
| const {data} = await msgPromise; |
| assert_equals(data, 'Cancel'); |
| assert_true(vibration.mockVibrationManager.isCancelled()); |
| }, 'navigator.vibrate(0) triggers cancel correctly.'); |
| |
| </script> |