Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / accessibility / win / single-select-children.html
1 <html>
2 <head>
3     <script src="../../resources/js-test.js"></script>
4 </head>
5
6 <body id="body">
7
8 <select id="selectElement" title="selectElement">
9     <option SELECTED>Option 1</option>
10     <option>Option 2</option>
11     <option DISABLED>Option 3</option>
12 </select>
13
14 <p>This tests that non-multiple select elements expose their list options.</p>
15
16 <p id="notDRT">This test should only be run inside of DumpRenderTree.</p>
17
18 <p id="console"></p>
19
20 <script>
21     function dumpListOptionAttributes(list) {
22         for (var i = 0; i < list.childrenCount; ++i) {
23             var option = list.childAtIndex(i);
24             debug('option.title: ' + option.title);
25             debug('option.role: ' + option.role);
26             debug('option.width: ' + option.width);
27             debug('option.height: ' + option.height);
28             debug('option.x: ' + option.x);
29             debug('option.y: ' + option.y);
30             debug('option.isOffScreen: ' + option.isOffScreen);
31             debug('option.isEnabled: ' + option.isEnabled);
32             debug('option.isVisible: ' + option.isVisible);
33             debug('option.isSelected: ' + option.isSelected);
34             debug('option.isSelectable: ' + option.isSelectable);
35             debug("");
36         }
37         debug("---\n");
38     }
39     if (window.testRunner && window.accessibilityController) {
40         document.getElementById("notDRT").style.visibility = "hidden";
41
42         document.getElementById("selectElement").focus();
43         var selectElement = accessibilityController.focusedElement;
44         shouldBe('selectElement.role', '"AXRole: combo box"');
45         shouldBeFalse('selectElement.isMultiSelectable');
46         shouldBeTrue('selectElement.isCollapsed');
47         shouldBeTrue('selectElement.hasPopup');
48         debug("");
49
50         var list = accessibilityController.focusedElement.childAtIndex(0);
51         shouldBe('list.role', '"AXRole: list"');
52         shouldBeFalse('list.isVisible');
53         shouldBeTrue('list.isOffScreen');
54         debug("");
55
56         dumpListOptionAttributes(list);
57
58         document.getElementById("selectElement").selectedIndex = 1;
59         dumpListOptionAttributes(list);
60
61         document.getElementById("selectElement").selectedIndex = 0;
62         document.getElementById("selectElement").disabled = true;
63         dumpListOptionAttributes(list);
64
65         document.getElementById("selectElement").disabled = false;
66         selectElement.showMenu();
67         shouldBeFalse('selectElement.isCollapsed');
68         shouldBeFalse('list.isOffScreen');
69         debug("");
70
71         dumpListOptionAttributes(list);
72
73         // Test that accessing a detached <option> does not crash.
74         var option = list.childAtIndex(0);
75         shouldBeTrue('option.width != 0');
76         document.getElementById("selectElement").options[0] = null;
77         shouldBeTrue('option.width == 0');
78     }
79 </script>
80 </body>
81 </html>