[common][mse][fix 1 tc issue] 73/137873/1
authormengli.zhang <mengli.zhang@samsung.com>
Mon, 10 Jul 2017 19:15:19 +0000 (15:15 -0400)
committermengli.zhang <mengli.zhang@samsung.com>
Mon, 10 Jul 2017 19:15:27 +0000 (15:15 -0400)
Change-Id: Icdf135d0bb37c36f88c0064f061048ea360354a2
Signed-off-by: mengli.zhang <mengli.zhang@samsung.com>
common/tct-mse-w3c-tests/mse/MediaSource_video_duration.html

index 6ee26c79cfa0d5b0a92e65aef4855d860ba59412..c7e6755412337a72865d669e65259149be4024d6 100755 (executable)
@@ -40,21 +40,24 @@ Authors:
 setup({timeout: 180000});
 
 var t = async_test(document.title, {timeout: 180000}), mediaSource, video,
-sourceopenCallback, onGetBufferArray, sourceBuffer, updateCb;
+sourceopenCallback, onGetBufferArray, onDurationChanged, sourceBuffer, updateCb, end;
 
 t.step(function() {
     onGetBufferArray = t.step_func(function(uint8Array) {
         sourceBuffer.appendBuffer(uint8Array);
     });
 
+    onDurationChanged = t.step_func(function(uint8Array) {
+        video.removeEventListener('durationchange', onDurationChanged);
+        assert_approx_equals(video.duration, end, 'video Duration not equals.');
+        t.done();
+    });
+
     updateCb = function() {
         sourceBuffer.abort();
-        mediaSource.duration = sourceBuffer.buffered.end(0);
-        assert_equals(mediaSource.duration, sourceBuffer.buffered.end(0), "mediaSource duration should be equals.");
-        setTimeout(function(){
-            assert_equals(video.duration, sourceBuffer.buffered.end(0), "video duration should be equals.");
-            t.done();
-        }, 0);
+        video.addEventListener('durationchange', onDurationChanged);
+        end = sourceBuffer.buffered.end(0);
+        mediaSource.duration = end;
     }
 
     sourceopenCallback =  t.step_func(function (event){