summaryrefslogtreecommitdiffstats
path: root/dom/media/test/fragment_play.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/test/fragment_play.js')
-rw-r--r--dom/media/test/fragment_play.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/dom/media/test/fragment_play.js b/dom/media/test/fragment_play.js
new file mode 100644
index 000000000..df98f6b09
--- /dev/null
+++ b/dom/media/test/fragment_play.js
@@ -0,0 +1,67 @@
+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, false);
+v.addEventListener("loadedmetadata", onLoadedMetadata, false);
+v.addEventListener("seeked", onSeeked, false);
+v.addEventListener("pause", onPause, false);
+v.addEventListener("timeupdate", onTimeUpdate, false);
+}