Bug 1302350 - part5 : modify test to make sure blocked media won't dispatch 'play' event. r=baku

Add test case to make sure the blocked media won't dispatch 'play' event.

MozReview-Commit-ID: JXibqgVrKce

--HG--
extra : rebase_source : 5cb4d564ddfb366f12560b921e33ffa5c9fb1627
This commit is contained in:
Alastor Wu 2016-11-02 14:22:33 +08:00
Родитель a7414dc3e6
Коммит 5476b14a53
1 изменённых файлов: 27 добавлений и 0 удалений

Просмотреть файл

@ -14,6 +14,31 @@ function wait_for_event(browser, event) {
});
}
function check_audio_onplay() {
var list = content.document.getElementsByTagName('audio');
if (list.length != 1) {
ok(false, "There should be only one audio element in page!")
}
var audio = list[0];
return new Promise((resolve, reject) => {
audio.onplay = () => {
ok(needToReceiveOnPlay, "Should not receive play event!");
this.onplay = null;
reject();
};
audio.pause();
audio.play();
setTimeout(() => {
ok(true, "Doesn't receive play event when media was blocked.");
audio.onplay = null;
resolve();
}, 1000)
});
}
function check_audio_suspended(suspendedType) {
var list = content.document.getElementsByTagName('audio');
if (list.length != 1) {
@ -120,6 +145,8 @@ function* suspended_block(url, browser) {
browser.blockMedia();
yield ContentTask.spawn(browser, SuspendedType.SUSPENDED_BLOCK,
check_audio_suspended);
yield ContentTask.spawn(browser, null,
check_audio_onplay);
info("- resume blocked audio -");
browser.resumeMedia();