Index: third_party/WebKit/LayoutTests/media/track/track-cue-gc-wrapper.html |
diff --git a/third_party/WebKit/LayoutTests/media/track/track-cue-gc-wrapper.html b/third_party/WebKit/LayoutTests/media/track/track-cue-gc-wrapper.html |
index 0ff60be0612be4f4474b92d855b4c3a2d7f9a470..96ed4cf5b960ac397fa63bf22c71a241790d3743 100644 |
--- a/third_party/WebKit/LayoutTests/media/track/track-cue-gc-wrapper.html |
+++ b/third_party/WebKit/LayoutTests/media/track/track-cue-gc-wrapper.html |
@@ -1,74 +1,55 @@ |
<!DOCTYPE html> |
-<html> |
- <head> |
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
- |
- <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> |
- var cue; |
- var track; |
- var j = 0; |
- var cueLimit = 10; |
- |
- function checkNativeProperty() |
- { |
- cue = this; |
- testExpected("cue.hasOwnProperty('custom')", true); |
- if (++j >= cueLimit) |
- endTest(); |
- } |
- |
- function startTest() |
- { |
- findMediaElement(); |
- video.src = findMediaFile('video', '../content/test'); |
- |
- video.textTracks.custom = "trackList"; |
- testExpected("video.textTracks.hasOwnProperty('custom')", true); |
- |
- consoleWrite("** Add a text track to the video element **"); |
- |
- track = video.addTextTrack("captions", "regular captions track", "en"); |
- track.custom = "track"; |
- testExpected("track.hasOwnProperty('custom')", true); |
- |
- consoleWrite("** Add cues with own native property to the track with enter event listener. **"); |
- for (var i = 0; i < cueLimit; i++) { |
- var c = new VTTCue(i / 4, i / 2 + 1, "Label" + i); |
- c.custom = "cue"; |
- c.addEventListener("enter", checkNativeProperty); |
- track.addCue(c); |
- c = null; |
- } |
- for (var i = 0; i < 10; i++) { |
- cue = track.cues[i]; |
- testExpected("cue.hasOwnProperty('custom')", true); |
- } |
- |
- consoleWrite(""); |
- consoleWrite("** Trigger a garbage collection. **"); |
- track = null; |
- cue = null; |
- gc(); |
- |
- testExpected("video.textTracks.hasOwnProperty('custom')", true); |
- |
- track = video.textTracks[0]; |
- testExpected("track.hasOwnProperty('custom')", true); |
- |
- consoleWrite(""); |
- consoleWrite("** Play the video and test cue wrappers. **"); |
- run("video.play()"); |
- track.mode = "showing"; |
- } |
- </script> |
- </head> |
- |
- <body onload="startTest()"> |
- <p>Tests that added cue object wrappers live across garbage collections.</p> |
- <video controls /> |
- </body> |
-</html> |
+<title>Tests that added cue object wrappers live across garbage collections.</title> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script src="../media-file.js"></script> |
+<video></video> |
+<script> |
+async_test(function(t) { |
+ var cueIndex = 0; |
+ var cueLimit = 10; |
+ var video = document.querySelector("video"); |
+ video.src = findMediaFile("video", "../content/test"); |
+ |
+ video.textTracks.custom = "trackList"; |
+ assert_true(video.textTracks.hasOwnProperty("custom")); |
+ |
+ // Add a text track to the video element. |
+ var track = video.addTextTrack("captions", "regular captions track", "en"); |
+ track.custom = "track"; |
+ assert_true(track.hasOwnProperty("custom")); |
+ |
+ // Add cues with own native property to the track with enter event listener. |
+ for (var i = 0; i < cueLimit; i++) { |
+ var cue = new VTTCue(i / 4, i / 2 + 1, "Label" + i); |
+ cue.custom = "cue"; |
+ |
+ cue.onenter = t.step_func(function(event) { |
+ var currentCue = event.target; |
+ assert_true(currentCue.hasOwnProperty("custom")); |
+ if (++cueIndex == cueLimit) |
+ t.done(); |
+ }); |
+ |
+ track.addCue(cue); |
+ } |
+ |
+ for (var i = 0; i < cueLimit; i++) { |
+ var cue = track.cues[i]; |
+ assert_true(cue.hasOwnProperty("custom")); |
+ } |
+ |
+ // Trigger a garbage collection. |
+ track = null; |
+ gc(); |
+ |
+ assert_true(video.textTracks.hasOwnProperty("custom")); |
+ |
+ track = video.textTracks[0]; |
+ assert_true(track.hasOwnProperty("custom")); |
+ |
+ // Play the video and test cue wrappers. |
+ video.play(); |
+ track.mode = "showing"; |
+}); |
+</script> |