Bug 1276530 - Fix test_texttrackevents_video.html. r=rillian draft
authorbechen <bechen@mozilla.com>
Fri, 17 Jun 2016 17:08:09 +0800
changeset 379747 b08311196d87309890142a82d366b0c18ab54377
parent 379746 5f95858f8ddf21ea2271a12810332efd09eff138
child 379748 33e19f536b8fe35f0f79d082e24439917c636088
push id21042
push userbechen@mozilla.com
push dateFri, 17 Jun 2016 09:22:30 +0000
reviewersrillian
bugs1276530
milestone50.0a1
Bug 1276530 - Fix test_texttrackevents_video.html. r=rillian MozReview-Commit-ID: Gn11D3I0MRb
dom/media/test/test_texttrackevents_video.html
--- a/dom/media/test/test_texttrackevents_video.html
+++ b/dom/media/test/test_texttrackevents_video.html
@@ -24,42 +24,70 @@ SpecialPowers.pushPrefEnv({"set": [["med
     trackElement.src = "sequential.vtt";
     trackElement.kind = "subtitles";
     trackElement.default = true;
     document.getElementById("content").appendChild(video);
     video.appendChild(trackElement);
 
     var trackElementCueChangeCount = 0;
     var trackCueChangeCount = 0;
+    var cueEnterCount = 0;
+    var cueExitCount = 0;
 
     video.addEventListener("loadedmetadata", function run_tests() {
       // Re-queue run_tests() at the end of the event loop until the track
       // element has loaded its data.
       if (trackElement.readyState == 1) {
         return setTimeout(run_tests, 0);
       }
       is(trackElement.readyState, 2, "Track::ReadyState should be set to LOADED.");
       ok('oncuechange' in trackElement.track, "Track::OnCueChange should exist.");
 
+      var textTrack = trackElement.track;
+      is(textTrack.cues.length, 3, "textTrack.cues.length should 3.");
+      textTrack.cues[0].onenter = function() {
+        ++cueEnterCount;
+      };
+      textTrack.cues[0].onexit = function() {
+        ++cueExitCount;
+      };
+      textTrack.cues[1].onenter = function() {
+        ++cueEnterCount;
+      };
+      textTrack.cues[1].onexit = function() {
+        ++cueExitCount;
+      };
+      textTrack.cues[2].onenter = function() {
+        ++cueEnterCount;
+      };
+      textTrack.cues[2].onexit = function() {
+        ++cueExitCount;
+      };
+
       trackElement.track.oncuechange = function() {
         ++trackElementCueChangeCount;
       };
 
       trackElement.addEventListener("cuechange", function() {
         ++trackCueChangeCount;
       });
 
       video.play();
     });
 
     video.addEventListener('ended', function() {
-      // Should be fired 6 times, as there are 3 cues, with a change event
-      // for when it is activated/deactivated (6 events total)
-      is(trackElementCueChangeCount, 6, "TrackElement should fire cue change 6 times.");
-      is(trackCueChangeCount, 6, "TrackElement.track should fire cue change 6 times.");
+      // Should be fired 1 to 6 times, as there are 3 cues,
+      // with a change event for when it is activated/deactivated
+      // (6 events at most).
+      isnot(trackElementCueChangeCount, 0, "TrackElement should fire cue change at least one time.");
+      ok(trackElementCueChangeCount <= 6, 'trackElementCueChangeCount should <= 6');
+      isnot(trackCueChangeCount, 0, "TrackElement.track should fire cue change at least one time.");
+      ok(trackCueChangeCount <= 6, 'trackCueChangeCount should <= 6');
+      is(cueEnterCount, 3, "cueEnterCount should fire three times.");
+      is(cueExitCount, 3, "cueExitCount should fire three times.");
       SimpleTest.finish()
     })
   }
 );
 </script>
 </pre>
 </body>
 </html>