tizen beta release
[framework/web/webkit-efl.git] / LayoutTests / fast / forms / script-tests / listbox-deselect-scroll.js
1 description('This tests that deselecting an option won't cause unnecessary scrolling.');
2
3 function mouseDownOnSelect(selId, index, modifier) {
4     var sl = document.getElementById(selId);
5     var itemHeight = Math.floor(sl.offsetHeight / sl.size);
6     var border = 1;
7     var y = border + index * itemHeight - window.pageYOffset;
8     if (window.eventSender) {
9         eventSender.mouseMoveTo(sl.offsetLeft + border, sl.offsetTop + y);
10         eventSender.mouseDown(0, [modifier]);
11         eventSender.mouseUp(0, [modifier]);
12     }
13 }
14
15 function selectionPattern(select) {
16     var result = '';
17     for (var i = 0; i < select.options.length; i++)
18         result += select.options[i].selected ? '1' : '0';
19     return result;
20 }
21
22 var parent = document.createElement('div');
23 parent.innerHTML = '<select id="sl" multiple="multiple" size="5">'
24     + '<option value="Accessibility">Accessibility</option>'
25     + '<option value="CSS">CSS</option>'
26     + '<option value="Drosera">Drosera</option>'
27     + '<option value="Evangelism">Evangelism</option>'
28     + '<option value="Forms">Forms</option>'
29     + '<option value="Frames">Frames</option>'
30     + '<option value="History">History</option>'
31     + '<option value="HTML DOM">HTML DOM</option>'
32     + '<option value="HTML Editing">HTML Editing</option>'
33     + '<option value="Images">Images</option>'
34     + '<option>SCROLL UP</option>'
35     + '</select>';
36 document.body.appendChild(parent);
37
38 var sl = document.getElementById('sl');
39 sl.focus();
40 document.execCommand("SelectAll");
41 sl.scrollTop = Math.floor(sl.offsetHeight / sl.size) * 4 + 6;
42 var scrollBeforeClick = sl.scrollTop;
43 mouseDownOnSelect("sl", 3, "addSelectionKey");
44 shouldBe('sl.scrollTop', 'scrollBeforeClick');
45 shouldBe('selectionPattern(sl)', '"11111110111"');