gecko-dev/dom/media/test/test_video_dimensions.html
Brian Grinstead 0d460e3432 Bug 1544322 - Part 2.2 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in dom/ r=bzbarsky
This is split from the previous changeset since if we include dom/ the file size is too
large for phabricator to handle.

This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 2` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27457

--HG--
extra : moz-landing-system : lando
2019-04-16 03:53:28 +00:00

97 lines
2.7 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<title>Test that a video element has set video dimensions on loadedmetadata</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script type="text/javascript" src="manifest.js"></script>
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
var manager = new MediaTestManager;
var startTest = function(test, token) {
manager.started(token);
var v1 = document.createElement('video');
var v2 = document.createElement('video');
var vout = document.createElement('video');
// Avoid a race for hardware resources between v1 and v2 on platforms with
// a hardware decoder, like B2G.
v1.preload = 'none';
v2.preload = 'none';
var numVideoElementsFinished = 0;
var ondurationchange = function(ev) {
var v = ev.target;
info(v.testName + " got durationchange");
v.durationchange = true;
};
var onresize = function(ev) {
var v = ev.target;
info(v.testName + " got resize");
ok(!v.resize, v.testName + " should only fire resize once for same size");
v.resize = true;
ok(v.durationchange, v.testName +
" durationchange event should have been emitted before resize");
is(v.videoWidth, test.width, v.testName + " width should be set on resize");
is(v.videoHeight, test.height, v.testName + " height should be set on resize");
};
var onloadedmetadata = function(ev) {
var v = ev.target;
info(v.testName + " got loadedmetadata");
ok(!v.loadedmetadata, v.testName + " should only fire loadedmetadata once");
v.loadedmetadata = true;
ok(v.resize, v.testName +
" resize event should have been emitted before loadedmetadata");
numVideoElementsFinished += 1;
if (v === v1) {
removeNodeAndSource(v1);
v2.load();
}
if (v === v2) {
vout.srcObject = v2.mozCaptureStreamUntilEnded();
v2.play();
vout.play();
}
if (numVideoElementsFinished === 3) {
removeNodeAndSource(v2);
removeNodeAndSource(vout);
manager.finished(token);
}
};
var setupElement = function(v, id) {
v.durationchange = false;
v.ondurationchange = ondurationchange;
v.resize = false;
v.onresize = onresize;
v.loadedmetadata = false;
v.onloadedmetadata = onloadedmetadata;
document.body.appendChild(v);
};
v1.testName = test.name;
v2.testName = test.name + " (Captured)";
vout.testName = test.name + " (Stream)";
v1.src = test.name;
v2.src = test.name;
setupElement(v1, "v1");
setupElement(v2, "v2");
setupElement(vout, "vout");
v1.play();
};
manager.runTests(getPlayableVideos(gSmallTests), startTest);
</script>
</pre>
</body>
</html>