test_background_video_no_suspend_not_in_tree.html (1692B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Test Background Video Doesn't Suspend When Timeout Is Longer Than Video</title> 4 <script src="/tests/SimpleTest/SimpleTest.js"></script> 5 <script src="manifest.js"></script> 6 <script src="background_video.js"></script> 7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 8 <script> 9 "use strict"; 10 11 var manager = new MediaTestManager; 12 13 var MIN_DELAY = 100; 14 15 /** 16 * @param {string} url video src. 17 * @returns {HTMLMediaElement} The created video element. 18 */ 19 function createVideoNotAppendToDoc(url, token, width, height) { 20 // Default size of (160, 120) is used by other media tests. 21 if (width === undefined) { width = 160; } 22 if (height === undefined) { height = 3*width/4; } 23 24 let v = document.createElement('video'); 25 v.token = token; 26 v.width = width; 27 v.height = height; 28 v.src = url; 29 return v; 30 } 31 32 startTest({ 33 desc: "Test Background Video Doesn't Suspend When If The Video Is Not In Tree.", 34 prefs: [ 35 [ 'media.test.video-suspend', true ], 36 [ 'media.suspend-background-video.enabled', true ], 37 [ 'media.suspend-background-video.delay-ms', MIN_DELAY ] 38 ], 39 tests: gDecodeSuspendTests, 40 runTest: (test, token) => { 41 let v = createVideoNotAppendToDoc(test.name, token); 42 manager.started(token); 43 44 /* This test checks that suspend doesn't occur if a video element is not 45 append to tree. */ 46 waitUntilPlaying(v) 47 .then(() => checkVideoDoesntSuspend(v)) 48 .then(() => { 49 ok(true, 'Video ended before decode was suspended'); 50 manager.finished(token); }) 51 .catch((e) => { 52 ok(false, 'Test Failed: ' + e.toString()); 53 manager.finished(token); }); 54 } 55 }); 56 </script>