[Modern Media Controls] Turn media/modern-media-controls/ios-inline-media-controls...
[WebKit-https.git] / LayoutTests / media / tab-focus-inside-media-elements.html
1 <!DOCTYPE html!><!-- webkit-test-runner [ enableModernMediaControls=false ] -->
2 <html>
3 <body>
4 <audio controls></audio><video controls></video><br>
5 <audio tabindex="0"></audio><video tabindex="0"></video>
6 <div tabindex="0"></div>
7 <div id="console"></div>
8 <script src="../resources/js-test-pre.js"></script>
9 <script>
10
11 description('Tests for moving the focus onto controls inside an audio element and a video element.');
12
13 var mediaElements = document.querySelectorAll("audio,video");
14
15 if (window.testRunner)
16     runTests();
17 else
18     log('This test requires eventSender');
19
20 function runTests()
21 {
22     testRunner.overridePreference("WebKitTabToLinksPreferenceKey", 1);
23
24     shouldBe('document.body.focus(); eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[0]');
25     shouldBeTrue('mediaElements[0] instanceof HTMLAudioElement');
26     shouldBeTrue('mediaElements[0].controls');
27     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[0]');
28     shouldBeTrue('!!internals.shadowRoot(mediaElements[0]).activeElement /* play button */');
29     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[0]');
30     shouldBeTrue('!!internals.shadowRoot(mediaElements[0]).activeElement /* rewind button */');
31     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[0]');
32     shouldBeTrue('!!internals.shadowRoot(mediaElements[0]).activeElement /* volume slider */');
33     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[0]');
34     shouldBeTrue('!!internals.shadowRoot(mediaElements[0]).activeElement /* mute button */');
35
36     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[1]');
37     shouldBeTrue('mediaElements[1] instanceof HTMLVideoElement');
38     shouldBeTrue('mediaElements[1].controls');
39     shouldBeTrue('!!internals.shadowRoot(mediaElements[1]).activeElement /* play button */');
40     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[1]');
41     shouldBeTrue('!!internals.shadowRoot(mediaElements[1]).activeElement /* rewind button */');
42     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[1]');
43     shouldBeTrue('!!internals.shadowRoot(mediaElements[1]).activeElement /* volume slider */');
44     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[1]');
45     shouldBeTrue('!!internals.shadowRoot(mediaElements[1]).activeElement /* mute button */');
46
47     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[2]');
48     shouldBeTrue('mediaElements[2] instanceof HTMLAudioElement');
49     shouldBeFalse('mediaElements[2].controls');
50
51     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'mediaElements[3]');
52     shouldBeTrue('mediaElements[3] instanceof HTMLVideoElement');
53     shouldBeFalse('mediaElements[3].controls');
54
55     shouldBe('eventSender.keyDown("\\t"); document.activeElement', 'document.querySelector("div")');
56 }
57
58 </script>
59 <script src="../resources/js-test-post.js"></script>
60 </body>
61 </html>