Index: third_party/WebKit/LayoutTests/media/video-played-collapse.html |
diff --git a/third_party/WebKit/LayoutTests/media/video-played-collapse.html b/third_party/WebKit/LayoutTests/media/video-played-collapse.html |
index 3a8419381affc591b645a776a0934bf70cf27ccc..426fcb75f4318bf6ace836ebfd0b310e1a3d5d02 100644 |
--- a/third_party/WebKit/LayoutTests/media/video-played-collapse.html |
+++ b/third_party/WebKit/LayoutTests/media/video-played-collapse.html |
@@ -1,106 +1,68 @@ |
-<html> |
- <head> |
- <title>Test of 'played' attribute</title> |
- <script src=media-file.js></script> |
- <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 |
- (Please avoid writing new tests using video-test.js) --> |
- <script src=video-test.js></script> |
- <script src=video-played.js></script> |
- <script> |
- |
- var testFunctions = |
- [ |
- PlayWithNoRanges, |
- CreateANewRange, |
- JumpAndCollapseTwoRanges, |
- TestLoopingAndPassToTheEnd |
- ]; |
- |
- // NOTE: Result details are not printed for this test because time values are different from machine |
- // to machine and run to run. Commenting out the following line turns on detailed logging back on, which |
- // can be useful for debugging test failure. |
- disableFullTestDetailsPrinting(); |
- |
- function PlayWithNoRanges() |
- { |
- consoleWrite("<br><b><em>Test playing when there are no ranges</em></b>"); |
- |
- willPauseInExistingRange = false; |
- willExtendAnExistingRange = false; |
- timeRangeCount = currentTimeRange = 0; |
- |
- runSilently("video.currentTime = 0.5"); |
- |
- currentTimeRange++; |
- startPlayingInNewRange(); |
- } |
- |
- |
- function CreateANewRange() |
- { |
- consoleWrite("<br><b><em>Create a new range</em></b>"); |
- |
- var newTime = (video.played.end(0) + 0.05).toFixed(2); |
- runSilently("video.currentTime = " + newTime); |
- |
- willPauseInExistingRange = false; |
- willExtendAnExistingRange = false; |
- |
- startPlayingInNewRange(); |
- } |
- |
- function JumpAndCollapseTwoRanges() |
- { |
- consoleWrite("<br><b><em>Test playing from one range into another, should collapse the two ranges</em></b>"); |
- |
- timeRangeCount--; |
- currentTimeRange = timeRangeCount - 1; |
- var startTime = expectedStartTimes[0] - 0.1; |
- expectedStartTimes[0] = startTime; |
- expectedEndTimes[0] = expectedEndTimes[1]; |
- |
- willPauseInExistingRange = false; |
- willExtendAnExistingRange = false; |
- runSilently("video.currentTime = " + startTime); |
- |
- playForMillisecs(secToMilli(expectedEndTimes[1] - startTime + 0.1)); // Triggers pause() |
- } |
- |
- function TestLoopingAndPassToTheEnd() |
- { |
- consoleWrite("<br><b><em>Test looping</em></b>"); |
- |
- // Start playing near the end of the movie so it will loop quickly. |
- run("video.loop = true"); |
- var startTime = (video.duration - 0.05).toFixed(2); |
- runSilently("video.currentTime = " + startTime); |
- |
- // We will end in the very first time range |
- currentTimeRange = 0; |
- |
- willPauseInExistingRange = true; |
- willExtendAnExistingRange = true; |
- |
- // Playing from near the end so we will create a new time range from startTime .. duration |
- timeRangeCount++; |
- expectedStartTimes[timeRangeCount-1] = startTime; |
- expectedEndTimes[timeRangeCount-1] = video.duration.toFixed(2); |
- |
- // Have to play for long enough to loop and play into the existing range. |
- var playDuration = 1.25; |
- |
- // Playback restarts from beginning, so expect the beginning of first time range to be 0. |
- expectedStartTimes[0] = 0; |
- playForMillisecs(secToMilli(playDuration)); // Triggers pause() |
- } |
- |
- </script> |
- </head> |
- |
-<body onload="videoPlayedMain()"> |
- |
- <video controls></video> |
- <p>Test of the media element 'played' attribute</p> |
- |
-</body> |
-</html> |
+<!DOCTYPE html> |
+<title>Test media element's "played" attribute and range collapse.</title> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="media-file.js"></script> |
+<script src="video-played.js"></script> |
+<video></video> |
+<script> |
+var video; |
+async_test(function(t) { |
+ var expectedStartTimes = []; |
+ var expectedEndTimes = []; |
+ video = document.querySelector("video"); |
+ |
+ video.oncanplay = t.step_func(function() { |
+ video.oncanplay = null; |
+ testRanges(expectedStartTimes, expectedEndTimes); |
+ // Test playing when there are no ranges. |
+ timeRangeCount = currentTimeRange = 0; |
+ video.currentTime = 0.5; |
+ currentTimeRange++; |
+ startPlayingInNewRange(t, expectedStartTimes); |
+ }); |
+ waitForPauseAndContinue(t, createANewRange, false, expectedStartTimes, expectedEndTimes); |
+ |
+ function createANewRange() { |
+ // Create a new range. |
+ var newTime = (video.played.end(0) + 0.05).toFixed(2); |
+ video.currentTime = newTime; |
+ startPlayingInNewRange(t, expectedStartTimes); |
+ waitForPauseAndContinue(t, jumpAndCollapseTwoRanges, false, expectedStartTimes, expectedEndTimes); |
+ } |
+ |
+ function jumpAndCollapseTwoRanges() { |
+ // Test playing from one range into another, should collapse the two ranges. |
+ timeRangeCount--; |
+ currentTimeRange = timeRangeCount - 1; |
+ expectedStartTimes[0] = (expectedStartTimes[0] - 0.1).toFixed(2); |
+ expectedEndTimes[0] = expectedEndTimes[1]; |
+ video.currentTime = expectedStartTimes[0]; |
+ playForDuration(expectedEndTimes[1] - expectedStartTimes[0], t); |
+ waitForPauseAndContinue(t, testLoopingAndPassToTheEnd, false, expectedStartTimes, expectedEndTimes); |
+ } |
+ |
+ function testLoopingAndPassToTheEnd() { |
+ // Start playing near the end of the movie so it will loop quickly. |
+ video.loop = true; |
+ var startTime = (video.duration - 0.05).toFixed(2); |
+ video.currentTime = startTime; |
+ |
+ // We will end in the very first time range |
+ currentTimeRange = 0; |
+ |
+ // Playing from near the end so we will create a new time range from startTime, duration. |
+ timeRangeCount++; |
+ expectedStartTimes[timeRangeCount - 1] = startTime; |
+ expectedEndTimes[timeRangeCount - 1] = video.duration.toFixed(2); |
+ |
+ // Playback restarts from beginning, so expect the beginning of first time range to be 0. |
+ expectedStartTimes[0] = "0.00"; |
+ // Have to play for long enough to loop and play into the existing range. |
+ playForDuration(1.25, t); |
+ waitForPauseAndContinue(t, null, true, expectedStartTimes, expectedEndTimes); |
+ } |
+ |
+ video.src = findMediaFile("video", "content/test"); |
+}); |
+</script> |