| <!doctype html> |
| <title>paused state when removing from a document</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/media.js"></script> |
| <div id="log"></div> |
| <video hidden></video> |
| <script> |
| function afterStableState(func) { |
| var a = new Audio(); |
| a.volume = 0; |
| a.addEventListener('volumechange', func); |
| } |
| |
| async_test(function(t) { |
| var v = document.querySelector('video'); |
| v.src = getVideoURI('/media/movie_300'); |
| v.play(); |
| v.onplaying = t.step_func(function() { |
| assert_false(v.paused, 'paused after playing'); |
| v.parentNode.removeChild(v); |
| assert_false(v.paused, 'paused after removing'); |
| afterStableState(t.step_func(function() { |
| assert_true(v.paused, 'paused after stable state'); |
| v.onpause = t.step_func(function() { |
| assert_true(v.paused, 'paused in pause event'); |
| // re-insert and verify that it stays paused |
| document.body.appendChild(v); |
| setTimeout(t.step_func(function() { |
| assert_true(v.paused, 'paused after re-inserting'); |
| t.done(); |
| }), 0); |
| }); |
| })); |
| }); |
| }); |
| </script> |