Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / events / resources / panScroll.js
1 var autoscrollInterval = 50;
2 var middleButton = 1;
3 var panScrollRadius = 15; // from FrameView::noPanScrollRadius
4
5 window.jsTestIsAsync = true;
6
7 function $(id)
8 {
9     return document.getElementById(id);
10 }
11
12 function testPanScroll(param)
13 {
14     function finishTest()
15     {
16         if ($('container'))
17             $('container').innerHTML = '';
18         if (param.finishTest)
19             param.finishTest();
20         if (window.finishJSTest) {
21             finishJSTest();
22             return;
23         }
24         if (window.testRunner)
25             testRunner.notifyDone();
26     }
27
28     var scrollable = param.scrollable;
29     var scrolledObject = param.scrolledObject || scrollable;
30
31     if (!scrollable.innerHTML) {
32         for (var i = 0; i < 100; ++i) {
33             var line = document.createElement('div');
34             line.innerHTML = "line " + i;
35             scrollable.appendChild(line);
36         }
37     }
38
39     var noModeScroll = false;
40     var scrolled = false;
41
42     scrolledObject.onscroll = function() {
43         if (noModeScroll) {
44             testFailed('still autoscroll');
45             finishTest();
46             return;
47         }
48
49         if (scrolled)
50             return;
51         scrolled = true;
52         testPassed('autoscroll started');
53
54         if (window.eventSender) {
55             if (param.clickOrDrag == 'click')
56                 eventSender.mouseDown(middleButton);
57             eventSender.mouseUp(middleButton);
58         }
59     };
60
61     scrollable.ownerDocument.onmouseup = function(e) {
62         if (!scrolled || e.button != middleButton)
63             return;
64         noMoreScroll = true;
65         window.setTimeout(function() {
66             testPassed('autoscroll stopped');
67             finishTest();
68         }, autoscrollInterval * 2);
69     };
70
71     if (!window.eventSender)
72         return;
73     var startX = param.startX || scrollable.offsetLeft + 5;
74     var startY = param.startY || scrollable.offsetTop + 5;
75     var endX = param.endX || scrollable.offsetLeft + 5;
76     var endY = param.endY || scrollable.offsetTop + panScrollRadius + 6;
77     eventSender.mouseMoveTo(startX, startY);
78     eventSender.mouseDown(middleButton);
79     if (param.clickOrDrag == 'click')
80         eventSender.mouseUp(middleButton);
81     eventSender.mouseMoveTo(endX, endY);
82 }