diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /dom/media/test/fragment_play.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
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); +} |