[Release] Webkit-EFL Ver. 2.0_beta_118996_0.6.22
[framework/web/webkit-efl.git] / LayoutTests / fast / events / selectstart-by-arrow-keys.html
1 <!DOCTYPE html>
2 <html>
3 <body>
4 <p>This test ensures selectstart is fired when selection is created by arrow keys.</p>
5 If running this test manually, click on div ("Hello World") element and try to select the text using arrow keys.<br>
6 Expected result : SelectStart event will fire when user starts extending selection.<br>
7 <div id="test" contenteditable>Hello World</div>
8 <script>
9
10 var selectStartCount = 0;
11 var div = document.getElementById('test');
12 div.addEventListener('selectstart', function (event) { selectStartCount++; });
13 div.focus();
14
15 if (window.layoutTestController) {
16     layoutTestController.dumpAsText();
17     logResult('Initial state', 0);
18
19     eventSender.keyDown("rightArrow");
20     logResult('Check (Right arrow)', 0);
21
22     eventSender.keyDown("rightArrow", ["shiftKey"]);
23     logResult('Check (Right arrow + Shift)', 1);
24
25     if (navigator.platform.indexOf('Mac') == 0)
26         eventSender.keyDown("rightArrow", ["shiftKey"], ["altKey"]);
27     else
28         eventSender.keyDown("rightArrow", ["shiftKey"], ["ctrlKey"]);
29     logResult('Check (Right arrow + Shift + Control)', 1);
30
31     eventSender.keyDown("end", ["shiftKey"]);
32     logResult('Check (End + Shift)', 1);
33
34     eventSender.keyDown("home", ["shiftKey"]);
35     logResult('Check (Home + Shift)', 1);
36
37     eventSender.keyDown("end", ["shiftKey"]);
38     logResult('Check (End + Shift)', 1);
39
40     // On Mac, home/end doesn't move caret so manually select " World".
41     if (navigator.platform.indexOf('Mac') == 0)
42         window.getSelection().setBaseAndExtent(div.firstChild, div.textContent.indexOf('World'), div.textContent.length);
43
44     eventSender.keyDown("leftArrow");
45     logResult('Check (Left arrow)', 1);
46
47     if (navigator.platform.indexOf('Mac') == 0)
48         eventSender.keyDown("leftArrow", ["shiftKey"], ["altKey"]);
49     else
50         eventSender.keyDown("leftArrow", ["shiftKey"], ["ctrlKey"]);
51     logResult('Check (LeftArrow + Shift + Control)', 2);
52
53     eventSender.keyDown("leftArrow", ["shiftKey"]);
54     logResult('Check (Left arrow + Shift)', 2);
55
56     eventSender.keyDown("end", ["shiftKey"]);
57     logResult('Check (Home + Shift)', 2);
58
59     eventSender.keyDown("home", ["ctrlKey"]);
60     logResult('Check (Home + Control)', 2);
61 }
62
63 document.write("Done.")
64
65 function logResult(title, expectedCount) {
66     document.write(title + ': ');
67     if (selectStartCount != expectedCount)
68         document.write('FAIL - expected ' + expectedCount + ' events but got ' + selectStartCount + ' events');
69     else
70         document.write('PASS');
71     document.write('<br>');
72 }
73 </script>
74 </body>
75 </html>