blob: b1e38639c8f93e0ddca729876c98de7c016ea712 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../js/resources/js-test-pre.js"></script>
</head>
<body>
<p id="description">Test for dragging operations of <input type=range></p>
<div id="console"></div>
<script>
var changeEventCounter = 0;
function handleChange() {
changeEventCounter++;
}
var lastChangeEventCounter = changeEventCounter;
function dragMouseFromCenter() {
var centerX = input.offsetLeft + input.offsetWidth / 2;
var centerY = input.offsetTop + input.offsetHeight / 2;
eventSender.mouseMoveTo(centerX, centerY);
eventSender.mouseDown();
eventSender.mouseMoveTo(input.offsetLeft + input.offsetWidth, centerY);
eventSender.mouseUp();
}
function dragMouseFromEdge() {
var centerY = input.offsetTop + input.offsetHeight / 2;
eventSender.mouseMoveTo(input.offsetLeft + 1, centerY);
eventSender.mouseDown();
eventSender.mouseMoveTo(input.offsetLeft + input.offsetWidth, centerY);
eventSender.mouseUp();
}
function testInput(dragsFromEdge) {
if (!window.eventSender)
return;
var dragMouse = dragsFromEdge ? dragMouseFromEdge : dragMouseFromCenter;
debug('readOnly=false, disabled=false');
input.valueAsNumber = 50;
lastChangeEventCounter = changeEventCounter;
dragMouse();
shouldBe('input.value', '"100"');
shouldBeGreaterThanOrEqual('changeEventCounter', 'lastChangeEventCounter + 1');
debug('readOnly=true');
input.disabled = false;
input.readOnly = true;
input.valueAsNumber = 50;
lastChangeEventCounter = changeEventCounter;
dragMouse();
shouldBe('input.value', '"50"');
shouldBe('lastChangeEventCounter', 'changeEventCounter');
debug('disabled=true');
input.readOnly = false;
input.disabled = true;
input.valueAsNumber = 50;
lastChangeEventCounter = changeEventCounter;
dragMouse();
shouldBe('input.value', '"50"');
shouldBe('lastChangeEventCounter', 'changeEventCounter');
}
var parent = document.createElement('div');
document.body.appendChild(parent);
parent.innerHTML = '<input type=range id=range1 min=0 max=100 value=50>' +
'<input type=range id=range2 min=0 max=100 value=50>';
debug('Tests for range dragging from center.');
var input = document.getElementById('range1');
input.onchange = handleChange;
input.focus();
testInput(false);
debug('');
debug('Tests for range dragging from edge');
var input = document.getElementById('range2');
input.onchange = handleChange;
input.focus();
testInput(true);
debug('');
</script>
<script src="../../js/resources/js-test-post.js"></script>
</body>
</html>
|