Refactoring: Pull all fullscreen code out of Document and into its own helper class
[WebKit-https.git] / LayoutTests / accessibility / content-editable-as-textarea.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../resources/js-test-pre.js"></script>
5 </head>
6 <body id="body">
7
8 <div id="content" contenteditable tabindex="0">
9 hello<br>
10 <b>world</b>
11 </div>
12
13 <p id="description"></p>
14 <div id="console"></div>
15
16 <script>
17
18     description("This tests that a contenteditable region behaves as a proper AXTextArea.");
19
20     var notification = 0;
21     var textArea = 0;
22     var notificationType = "AXValueChanged";
23     function callback(notification) {
24         if (notification == notificationType) {
25             textArea.removeNotificationListener();
26             debug("Updated value: " + textArea.stringValue);
27             document.getElementById("content").style.visibility = "hidden";
28             finishJSTest();
29         }
30     }
31
32     if (window.accessibilityController) {
33         window.jsTestIsAsync = true;
34
35         // In ATK, value-changed notifications are made for widgets which implement
36         // the AtkValue interface (sliders, progress bars, etc.).
37         if (accessibilityController.platformName == "atk")
38             notificationType = "AXTextChanged";
39
40         textArea = accessibilityController.accessibleElementById("content");
41         textArea.addNotificationListener(callback);
42
43         debug("Role: " + textArea.role);
44         debug("Value: " + textArea.stringValue);
45         debug("Value (writable): " + textArea.isAttributeSettable("AXValue"));
46         debug("String with range: " + textArea.stringForRange(1, 9));
47         debug("Attributed string with range: " + textArea.attributedStringForRange(1, 9));
48         debug("Line for index(0): " + textArea.lineForIndex(0));
49         debug("Line for index(7): " + textArea.lineForIndex(7));
50         debug("Range for line(0): " + textArea.rangeForLine(0));
51         debug("Range for line(1): " + textArea.rangeForLine(1));
52         debug("Bounds for range: " + textArea.boundsForRange(3, 5));
53
54         var range = document.createRange();
55         range.setStart(document.getElementById("content").firstChild, 0);
56         range.setEnd(document.getElementById("content").firstChild, 4);
57         var sel = window.getSelection();
58         sel.addRange(range);
59
60         debug("Selected text range: " + textArea.selectedTextRange);
61         debug("Selected text: " + textArea.stringAttributeValue("AXSelectedText"));
62
63         // Send a value cahnge.
64         document.getElementById("content").focus();
65         eventSender.keyDown('q', []);
66     }
67
68 </script>
69
70 <script src="../resources/js-test-post.js"></script>
71 </body>
72 </html>