Test that a user gesture is preserved across XHR and setTimeout.


Run!

** gesture -> XHR -> timeout -> XHR -> window.open: should fail because XHR only propagates user gesture for media
sending XHR, delay = 100
EVENT(load): readyState = 4
setting timeout, delay = 100
sending XHR, delay = 100
EVENT(load): readyState = 4
EXPECTED (window.open("about:blank") == 'null') OK

** gesture -> timeout -> XHR -> timeout -> window.open: should succeed
setting timeout, delay = 100
sending XHR, delay = 100
EVENT(load): readyState = 4
setting timeout, delay = 100
EXPECTED (window.open("about:blank") != 'null') OK

** gesture -> timeout -> XHR -> timeout -> video playback: should succeed
EVENT(canplaythrough)
setting timeout, delay = 100
sending XHR, delay = 100
EVENT(load): readyState = 4
setting timeout, delay = 100
RUN(shouldResolve(mediaElement.play()).then(testComplete, testComplete))
Promise resolved OK

** gesture -> XHR -> timeout -> XHR -> video playback: should succeed
EVENT(canplaythrough)
sending XHR, delay = 100
EVENT(load): readyState = 4
setting timeout, delay = 100
sending XHR, delay = 100
EVENT(load): readyState = 4
RUN(shouldResolve(mediaElement.play()).then(testComplete, testComplete))
Promise resolved OK

** NO gesture -> XHR -> timeout -> video playback: should fail
EVENT(canplaythrough)
sending XHR, delay = 100
EVENT(load): readyState = 4
setting timeout, delay = 100
RUN(shouldReject(mediaElement.play()).then(testComplete, testComplete))
Promise rejected correctly OK

** gesture -> "long" XHR -> video playback: should fail
EVENT(canplaythrough)
sending XHR, delay = 300
EVENT(load): readyState = 4
RUN(shouldReject(mediaElement.play()).then(testComplete, testComplete))
Promise rejected correctly OK

END OF TEST

