viewport-segments-change-event.https.html (1821B)
1 <!DOCTYPE html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script src="/resources/testdriver.js"></script> 5 <script src="/resources/testdriver-vendor.js"></script> 6 <script> 7 'use strict'; 8 9 promise_test(async (t) => { 10 t.add_cleanup(async () => { 11 await test_driver.clear_display_features(); 12 }); 13 14 // There is always one segment the dimension of the viewport. 15 assert_true(matchMedia('(horizontal-viewport-segments: 1)').matches); 16 assert_true(matchMedia('(vertical-viewport-segments: 1)').matches); 17 18 assert_false(matchMedia('(horizontal-viewport-segments: 2)').matches); 19 assert_false(matchMedia('(vertical-viewport-segments: 2)').matches); 20 21 const horizontalViewportSegmentsMQL = window.matchMedia('(horizontal-viewport-segments: 2)'); 22 const verticalViewportSegmentsMQL = window.matchMedia('(vertical-viewport-segments: 2)'); 23 let promise = new Promise(resolve => { 24 horizontalViewportSegmentsMQL.addEventListener( 25 'change', 26 () => { resolve(horizontalViewportSegmentsMQL.matches); }, 27 { once: true } 28 ); 29 }); 30 await test_driver.set_display_features([{ 31 orientation: 'vertical', maskLength: 20, offset: 20 32 }]); 33 assert_true(await promise, 'The horizontal viewport segments media query should match.'); 34 35 promise = new Promise(resolve => { 36 verticalViewportSegmentsMQL.addEventListener( 37 'change', 38 () => { resolve(verticalViewportSegmentsMQL.matches); }, 39 { once: true } 40 ); 41 }); 42 await test_driver.set_display_features([{ 43 orientation: 'horizontal', maskLength: 20, offset: 20 44 }]); 45 assert_true(await promise, 'The vertical viewport segments media query should match.'); 46 }, 'Tests the Viewport Segments Media Query change event handler.'); 47 </script> 48 </head> 49 <body> 50 </body> 51 </html>