Commit a917ba2f authored by srirama.m's avatar srirama.m Committed by Commit bot

Convert video-playback* and sources-fallback* tests to testharness.js

Cleaning up video-playback* and sources-fallback* tests
in media/ to use testharness.js instead of video-test.js.
This will enable to upstream these tests to web-platform-tests.

BUG=588956, 443596

Review-Url: https://codereview.chromium.org/2121383005
Cr-Commit-Position: refs/heads/master@{#407143}
parent 20384bfc
...@@ -1103,8 +1103,6 @@ crbug.com/619103 virtual/rootlayerscrolls/fast/scrolling/background-paint-scroll ...@@ -1103,8 +1103,6 @@ crbug.com/619103 virtual/rootlayerscrolls/fast/scrolling/background-paint-scroll
crbug.com/619103 virtual/rootlayerscrolls/fast/scrolling/background-paint-scrolled.html [ Crash Timeout ] crbug.com/619103 virtual/rootlayerscrolls/fast/scrolling/background-paint-scrolled.html [ Crash Timeout ]
crbug.com/619103 [ Debug ] fast/layers/remove-layer-with-nested-stacking.html [ Crash Timeout ] crbug.com/619103 [ Debug ] fast/layers/remove-layer-with-nested-stacking.html [ Crash Timeout ]
crbug.com/443596 media/sources-fallback-codecs.html [ Pass Failure ]
crbug.com/464736 http/tests/xmlhttprequest/ontimeout-event-override-after-failure.html [ Pass Failure ] crbug.com/464736 http/tests/xmlhttprequest/ontimeout-event-override-after-failure.html [ Pass Failure ]
crbug.com/595483 [ Android ] editing/caret/caret-color.html [ Failure Crash ] crbug.com/595483 [ Android ] editing/caret/caret-color.html [ Failure Crash ]
......
Test that fallback among codecs is done correctly regardless of their order.
END OF TEST
'playbackRate' should not change when play() is called.
'playbackRate' and 'defaultPlaybackRate' should always return the last value set.
*** setting src
EVENT(canplaythrough)
*** checking defaults
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '1') OK
*** setting defaultPlaybackRate
RUN(video.defaultPlaybackRate = 2)
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
EVENT(ratechange)
*** checking rates after event
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
*** setting playbackRate
RUN(video.playbackRate = 2)
EXPECTED (video.playbackRate == '2') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
EVENT(ratechange)
*** checking rates after event
EXPECTED (video.playbackRate == '2') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
*** beginning playback
RUN(video.playbackRate = 1)
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
RUN(video.play())
EVENT(ratechange)
*** checking rates after event
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
EVENT(ended)
EXPECTED (video.playbackRate == '1') OK
EXPECTED (video.defaultPlaybackRate == '2') OK
Test extreme playback rates
RUN(video.defaultPlaybackRate = Number.MIN_VALUE)
EXPECTED (video.defaultPlaybackRate == '5e-324') OK
RUN(video.defaultPlaybackRate = Number.MAX_VALUE)
EXPECTED (video.defaultPlaybackRate == '1.7976931348623157e+308') OK
RUN(video.playbackRate = Number.MIN_VALUE)
EXPECTED (video.playbackRate == '5e-324') OK
RUN(video.playbackRate = Number.MAX_VALUE)
EXPECTED (video.playbackRate == '1.7976931348623157e+308') OK
Test non-finite playback rates
TEST(video.defaultPlaybackRate = -Infinity) THROWS("TypeError: Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
TEST(video.defaultPlaybackRate = Infinity) THROWS("TypeError: Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
TEST(video.defaultPlaybackRate = NaN) THROWS("TypeError: Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
TEST(video.playbackRate = -Infinity) THROWS("TypeError: Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
TEST(video.playbackRate = Infinity) THROWS("TypeError: Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
TEST(video.playbackRate = NaN) THROWS("TypeError: Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided double value is non-finite.") OK
END OF TEST
<!DOCTYPE html> <!DOCTYPE html>
<html> <title>Test playbackRate and defaultPlaybackRate.</title>
<head> <script src="../resources/testharness.js"></script>
<title>test playbackRate and defaultPlaybackRate</title> <script src="../resources/testharnessreport.js"></script>
<script src=media-file.js></script> <script src="media-file.js"></script>
<!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 <video></video>
(Please avoid writing new tests using video-test.js) --> <script>
<script src=video-test.js></script> // "playbackRate" should not change when play() is called.
<script> // "playbackRate" and "defaultPlaybackRate" should always return the last value set.
var rateChangeCount = 0; async_test(function(t) {
var video = document.querySelector("video");
function ratechange()
{ video.oncanplaythrough = t.step_func(function() {
consoleWrite("*** checking rates after event"); video.oncanplaythrough = null;
switch (++rateChangeCount) // checking defaults.
{ assert_equals(video.playbackRate, 1);
case 1: assert_equals(video.defaultPlaybackRate, 1);
testExpected("video.playbackRate", 1);
testExpected("video.defaultPlaybackRate", 2); // setting defaultPlaybackRate.
video.defaultPlaybackRate = 2;
consoleWrite("<br>*** setting playbackRate"); assert_equals(video.playbackRate, 1);
run("video.playbackRate = 2"); assert_equals(video.defaultPlaybackRate, 2);
testExpected("video.playbackRate", 2); });
testExpected("video.defaultPlaybackRate", 2);
consoleWrite(""); video.onended = t.step_func_done(function() {
break; assert_equals(video.playbackRate, 1);
case 2: assert_equals(video.defaultPlaybackRate, 2);
testExpected("video.playbackRate", 2);
testExpected("video.defaultPlaybackRate", 2); // Test extreme playback rates.
video.defaultPlaybackRate = Number.MIN_VALUE;
consoleWrite("<br>*** beginning playback"); assert_equals(video.defaultPlaybackRate, Number.MIN_VALUE);
video.currentTime = video.duration - 0.2;
run("video.playbackRate = 1"); video.defaultPlaybackRate = Number.MAX_VALUE;
testExpected("video.playbackRate", 1); assert_equals(video.defaultPlaybackRate, Number.MAX_VALUE);
testExpected("video.defaultPlaybackRate", 2);
run("video.play()"); video.playbackRate = Number.MIN_VALUE;
consoleWrite(""); assert_equals(video.playbackRate, Number.MIN_VALUE);
break;
case 3: video.playbackRate = Number.MAX_VALUE;
testExpected("video.playbackRate", 1); assert_equals(video.playbackRate, Number.MAX_VALUE);
testExpected("video.defaultPlaybackRate", 2);
consoleWrite(""); // Test non-finite playback rates.
break; assert_throws(new TypeError, function() { video.defaultPlaybackRate = -Infinity; });
default: assert_throws(new TypeError, function() { video.defaultPlaybackRate = Infinity; });
break; assert_throws(new TypeError, function() { video.defaultPlaybackRate = NaN; });
}
} assert_throws(new TypeError, function() { video.playbackRate = -Infinity; });
assert_throws(new TypeError, function() { video.playbackRate = Infinity; });
function canplaythrough() assert_throws(new TypeError, function() { video.playbackRate = NaN; });
{ });
consoleWrite("<br>*** checking defaults");
testExpected("video.playbackRate", 1); var rateChangeCount = 0;
testExpected("video.defaultPlaybackRate", 1); video.onratechange = t.step_func(function() {
// checking rate after event.
consoleWrite("<br>*** setting defaultPlaybackRate"); switch (++rateChangeCount) {
run("video.defaultPlaybackRate = 2"); case 1:
testExpected("video.playbackRate", 1); assert_equals(video.playbackRate, 1);
testExpected("video.defaultPlaybackRate", 2); assert_equals(video.defaultPlaybackRate, 2);
consoleWrite("");
} // setting playbackRate.
video.playbackRate = 2;
function ended() assert_equals(video.playbackRate, 2);
{ assert_equals(video.defaultPlaybackRate, 2);
testExpected("video.playbackRate", 1); break;
testExpected("video.defaultPlaybackRate", 2); case 2:
consoleWrite(""); assert_equals(video.playbackRate, 2);
assert_equals(video.defaultPlaybackRate, 2);
consoleWrite("Test extreme playback rates");
run("video.defaultPlaybackRate = Number.MIN_VALUE"); // beginning playback.
testExpected("video.defaultPlaybackRate", Number.MIN_VALUE); video.currentTime = video.duration - 0.2;
consoleWrite(""); video.playbackRate = 1;
assert_equals(video.playbackRate, 1);
run("video.defaultPlaybackRate = Number.MAX_VALUE"); assert_equals(video.defaultPlaybackRate, 2);
testExpected("video.defaultPlaybackRate", Number.MAX_VALUE); video.play();
consoleWrite(""); break;
case 3:
run("video.playbackRate = Number.MIN_VALUE"); assert_equals(video.playbackRate, 1);
testExpected("video.playbackRate", Number.MIN_VALUE); assert_equals(video.defaultPlaybackRate, 2);
consoleWrite(""); break;
}
run("video.playbackRate = Number.MAX_VALUE"); });
testExpected("video.playbackRate", Number.MAX_VALUE);
consoleWrite(""); video.src = findMediaFile("video", "content/test");
});
consoleWrite("Test non-finite playback rates"); </script>
testException("video.defaultPlaybackRate = -Infinity", '"TypeError: Failed to set the \'defaultPlaybackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."'); \ No newline at end of file
testException("video.defaultPlaybackRate = Infinity", '"TypeError: Failed to set the \'defaultPlaybackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."');
testException("video.defaultPlaybackRate = NaN", '"TypeError: Failed to set the \'defaultPlaybackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."');
consoleWrite("");
testException("video.playbackRate = -Infinity", '"TypeError: Failed to set the \'playbackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."');
testException("video.playbackRate = Infinity", '"TypeError: Failed to set the \'playbackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."');
testException("video.playbackRate = NaN", '"TypeError: Failed to set the \'playbackRate\' property on \'HTMLMediaElement\': The provided double value is non-finite."');
consoleWrite("");
endTest();
}
function start()
{
findMediaElement();
waitForEventOnce('canplaythrough', canplaythrough);
waitForEvent('ended', ended);
waitForEvent('ratechange', ratechange);
consoleWrite("*** setting src");
setSrcByTagName("video", findMediaFile("video", "content/test"));
}
</script>
</head>
<body onload="start()">
<video controls > </video>
<ol>
<li>'playbackRate' should not change when play() is called.</li>
<li>'playbackRate' and 'defaultPlaybackRate' should always return the last value set.</li>
</ol>
</body>
</html>
Test that fallback among codecs is done correctly regardless of their order.
END OF TEST
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment