summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content/media-elements/track/track-element/track-selection-task-order.html
blob: 522d067adfc500a4e773c267c663f331d86c57cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<title>HTMLTrackElement Text Track Selection Task Order</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
/**
 * This test is used to ensure that we queue 'honor user preferences for automatic
 * text track selection' as a macro task, not a micro task. In this test, we
 * trigger a media event before queuing a text track selection task, and check
 * the text track's mode to know whether the text track selection runs after the
 * task for media event.
 */
async_test(function(t) {
    let video = document.createElement("video");
    video.play();
    video.onplay = t.step_func(startedPlay);

    // When we create a text track element, it queue a task to run automatic
    // text track selection later.
    let track = document.createElement("track");
    track.default = true;
    video.appendChild(track);
    assert_equals(track.track.mode, "disabled", "Text track's mode is disabled by default.");

    function startedPlay() {
        assert_equals(track.track.mode, "disabled", "Text track selection hasn't started yet.");
        track.onerror = t.step_func_done(trackError);
    }

    function trackError() {
        assert_equals(track.track.mode, "showing", "Text track selection modified track's mode.");
        t.done();
    }
});

</script>