diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:44:51 +0000 |
commit | 9e3c08db40b8916968b9f30096c7be3f00ce9647 (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/media/test/fragment_play.js | |
parent | Initial commit. (diff) | |
download | thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.tar.xz thunderbird-9e3c08db40b8916968b9f30096c7be3f00ce9647.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/media/test/fragment_play.js')
-rw-r--r-- | dom/media/test/fragment_play.js | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/dom/media/test/fragment_play.js b/dom/media/test/fragment_play.js new file mode 100644 index 0000000000..ec0fe7952a --- /dev/null +++ b/dom/media/test/fragment_play.js @@ -0,0 +1,92 @@ +function test_fragment_play(v, start, end, is, ok, finish) { + var completed = false; + var loadedMetadataRaised = false; + var seekedRaised = false; + var pausedRaised = false; + + function onLoadedMetadata() { + var s = start == null ? 0 : start; + var e = end == null ? v.duration : end; + ok( + v.currentTime == s, + "loadedmetadata currentTime is " + v.currentTime + " != " + s + ); + ok( + v.mozFragmentEnd == e, + "mozFragmentEnd (" + v.mozFragmentEnd + ") == end Time (" + e + ")" + ); + loadedMetadataRaised = true; + v.play(); + } + + function onSeeked() { + if (completed) { + return; + } + + var s = start == null ? 0 : start; + ok( + v.currentTime - s < 0.1, + "seeked currentTime is " + + v.currentTime + + " != " + + s + + " (fuzzy compare +-0.1)" + ); + + seekedRaised = true; + } + + function onTimeUpdate() { + if (completed) { + return; + } + + v._lastTimeUpdate = v.currentTime; + } + + function onPause() { + if (completed) { + return; + } + + var e = end == null ? v.duration : end; + var a = e - 0.05; + var b = e + 0.05; + ok( + v.currentTime >= a && v.currentTime <= b, + "paused currentTime is " + + a + + " < " + + v.currentTime + + " < " + + b + + " ? " + + v._lastTimeUpdate + ); + pausedRaised = true; + v.play(); + } + + function onEnded() { + if (completed) { + return; + } + + completed = true; + ok(loadedMetadataRaised, "loadedmetadata event"); + if (start) { + ok(seekedRaised, "seeked event"); + } + if (end) { + ok(pausedRaised, "paused event: " + end + " " + v.duration); + } + finish(); + } + + v.addEventListener("ended", onEnded); + v.addEventListener("loadedmetadata", onLoadedMetadata); + v.addEventListener("seeked", onSeeked); + v.addEventListener("pause", onPause); + v.addEventListener("timeupdate", onTimeUpdate); +} |