OLD | NEW |
1 <html dir=rtl style="-webkit-writing-mode:vertical-lr"> | 1 <html dir=rtl style="-webkit-writing-mode:vertical-lr"> |
2 <head> | 2 <head> |
| 3 <script src="../../resources/js-test.js"></script> |
3 <script language="javascript"> | 4 <script language="javascript"> |
| 5 window.jsTestIsAsync = true; |
| 6 |
4 function log(str) | 7 function log(str) |
5 { | 8 { |
6 var li = document.createElement("li"); | 9 var li = document.createElement("li"); |
7 li.appendChild(document.createTextNode(str)); | 10 li.appendChild(document.createTextNode(str)); |
8 var console = document.getElementById("console"); | 11 var console = document.getElementById("console"); |
9 console.appendChild(li); | 12 console.appendChild(li); |
10 } | 13 } |
11 | 14 |
12 function assertEqual(message, actual, expected) | 15 function assertEqual(message, actual, expected) |
13 { | 16 { |
14 if (actual != expected) | 17 if (actual != expected) |
15 log("\n" + message + ": Failure, actual: " + actual + "; exp
ected: " + expected); | 18 log(message + ": Failure, actual: " + actual + "; expected:
" + expected); |
16 else | 19 else |
17 log("\n" + message + ": Success"); | 20 log(message + ": Success"); |
18 } | 21 } |
19 | 22 |
20 function assertClose(message, actual, expected) | 23 function assertClose(message, actual, expected) |
21 { | 24 { |
22 if ((actual >= expected && actual - expected < 5) || | 25 if ((actual >= expected && actual - expected < 5) || |
23 (expected >= actual && expected - actual < 5)) | 26 (expected >= actual && expected - actual < 5)) |
24 log("\n" + message + ": Success"); | 27 log(message + ": Success"); |
25 else | 28 else |
26 log("\n" + message + ": Failure, actual: " + actual + "; exp
ected: " + expected); | 29 log(message + ": Failure, actual: " + actual + "; expected:
" + expected); |
27 } | 30 } |
28 | 31 |
29 var expectedScrollX = 500; | 32 var expectedScrollX = 500; |
30 var expectedScrollY = -1000; | 33 var expectedScrollY = -1000; |
31 | 34 |
32 onload = function() | 35 onload = function() |
33 { | 36 { |
34 if (window.testRunner) | 37 if (window.testRunner) |
35 testRunner.dumpAsText(); | 38 testRunner.dumpAsText(); |
36 | 39 |
37 // Test vertical scrollbar presence and that it is initially at
the bottom for RTL page. | 40 // Test vertical scrollbar presence and that it is initially at
the bottom for RTL page. |
38 assertEqual("original scroll y for RTL page ", window.scrollY, 0
); | 41 assertEqual("original scroll y for RTL page ", window.scrollY, 0
); |
39 | 42 |
40 // Test horizontal scroll. | 43 // Test horizontal scroll. |
41 window.scrollTo(expectedScrollX, expectedScrollY); | 44 window.scrollTo(expectedScrollX, expectedScrollY); |
42 assertEqual("vertical scroll: ", window.scrollY, expectedScrollY
); | 45 assertEqual("vertical scroll: ", window.scrollY, expectedScrollY
); |
43 // Test calling window.scrollY continuously wont change the scro
llY position. | 46 // Test calling window.scrollY continuously wont change the scro
llY position. |
44 assertEqual("continuously call window.scrollY ", window.scrollY,
expectedScrollY); | 47 assertEqual("continuously call window.scrollY ", window.scrollY,
expectedScrollY); |
45 | 48 |
46 | 49 |
47 // Test zooming wont reset scroll position. | 50 // Test zooming wont reset scroll position. |
48 if (window.eventSender) { | 51 if (window.eventSender) { |
49 window.scrollTo(expectedScrollX, expectedScrollY); | 52 window.scrollTo(expectedScrollX, expectedScrollY); |
50 eventSender.zoomPageIn(); | 53 eventSender.zoomPageIn(); |
51 eventSender.zoomPageOut(); | 54 eventSender.zoomPageOut(); |
52 assertClose("zoom in and out preserve scroll position", wind
ow.scrollY, expectedScrollY); | 55 assertClose("zoom in and out preserve scroll position", wind
ow.scrollY, expectedScrollY); |
53 } | 56 } |
54 | 57 |
55 // Test resize wont reset scroll position. | 58 // Test resize wont reset scroll position. |
56 window.resizeTo(window.innerWidth, 1000); | 59 window.resizeTo(window.innerWidth, 1000); |
57 window.scrollTo(expectedScrollX, expectedScrollY); | 60 window.scrollTo(expectedScrollX, expectedScrollY); |
58 window.resizeTo(window.innerWidth, 2000); | 61 window.resizeTo(window.innerWidth, 2000); |
59 assertEqual("resize preserves scroll position", window.scrollY,
expectedScrollY); | 62 assertEqual("resize preserves scroll position", window.scrollY,
expectedScrollY); |
60 | 63 |
61 // Test HOME/END operation. | 64 // Test HOME/END operation. |
62 if (window.eventSender) { | 65 if (window.eventSender) { |
63 // Not using assert equal here since the behavior is differe
nt in each port. | 66 // Not using assert equal here since the behavior is differe
nt in each port. |
64 // For example, in Mac, HOME/END key reset both x and y scro
ll position. | 67 // For example, in Mac, HOME/END key reset both x and y scro
ll position. |
65 // In Chromium, HOME/END key only reset y scroll position, a
nd x scroll position is preserved. | 68 // In Chromium, HOME/END key only reset y scroll position, a
nd x scroll position is preserved. |
66 window.scrollTo(expectedScrollX, expectedScrollY); | 69 function testEnd() { |
67 eventSender.keyDown("home"); | 70 window.scrollTo(expectedScrollX, expectedScrollY); |
68 log("KeyDown HOME move y-scroll position to bottom for RTL p
age: " + window.scrollY, 0); | 71 eventSender.keyDown("end"); |
69 window.scrollTo(expectedScrollX, expectedScrollY); | 72 shouldBecomeEqual('window.scrollY == 0', 'true', testSel
ectAll); |
70 eventSender.keyDown("end"); | 73 } |
71 log("KeyDown END move y-scroll position to bottom for RTL pa
ge: " + window.scrollY, 0); | 74 function testHome() { |
| 75 window.scrollTo(expectedScrollX, expectedScrollY); |
| 76 eventSender.keyDown("home"); |
| 77 shouldBecomeEqual('window.scrollY == -3425', 'true', tes
tEnd); |
| 78 } |
| 79 testHome(); |
72 } | 80 } |
73 | |
74 // Test select all selects all document content. | |
75 window.resizeTo(500, 500); | |
76 var div = document.getElementById("div"); | |
77 div.focus(); | |
78 document.execCommand("SelectAll"); | |
79 var selection = window.getSelection(); | |
80 assertEqual("selectAll selects all document", selection.toString
().substring(0, div.innerHTML.length), div.innerHTML); | |
81 | 81 |
82 div.style.display = "none"; | 82 function testSelectAll() { |
83 | 83 // Test select all selects all document content. |
| 84 window.resizeTo(500, 500); |
| 85 var div = document.getElementById("div"); |
| 86 div.focus(); |
| 87 document.execCommand("SelectAll"); |
| 88 var selection = window.getSelection(); |
| 89 assertEqual("selectAll selects all document", selection.toSt
ring().substring(0, div.innerHTML.length), div.innerHTML); |
| 90 |
| 91 div.style.display = "none"; |
| 92 |
| 93 finishJSTest(); |
| 94 } |
84 } | 95 } |
85 </script> | 96 </script> |
86 </head> | 97 </head> |
87 <body> | 98 <body> |
88 <div id="div" style="whitespace:nowrap; width: 1000px; height: 4000px; b
order: 1px solid red;">Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad m
inim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com
modo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse c
illum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non pro
ident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div> | 99 <div id="div" style="whitespace:nowrap; width: 1000px; height: 4000px; b
order: 1px solid red;">Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad m
inim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea com
modo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse c
illum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non pro
ident, sunt in culpa qui officia deserunt mollit anim id est laborum."</div> |
89 <ul id="console" dir=ltr></ul> | 100 <ul id="console" dir=ltr></ul> |
90 </body> | 101 </body> |
91 </html> | 102 </html> |
OLD | NEW |