content/base/test/test_viewport_scroll.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Test for mapping of scrollTop/scrollLeft to viewport</title>
     5   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     7 </head>
     8 <body onload="doTest()">
     9 <p id="display"></p>
    11 <iframe id="quirks"></iframe>
    12 <iframe id="standards"></iframe>
    13 <iframe id="xml"></iframe>
    15 <pre id="test">
    16 <script type="application/javascript">
    17 SimpleTest.waitForExplicitFinish();
    19 var quirks = document.getElementById("quirks");
    20 var standards = document.getElementById("standards");
    21 var xml = document.getElementById("xml");
    23 quirks.src = "data:text/html,<html><body style='height:2000px; width:2000px;'>";
    24 standards.src = "data:text/html,<!DOCTYPE HTML><html><body style='height:2000px; width:2000px;'>";
    25 xml.src = "data:text/xml,<?xml-stylesheet href='data:text/css,html { display:block; height:2000px; width:2000px; }'?><foo><html></html></foo>";
    27 function subtest(winProp, elemProp, win, correctElement, elemToSet, otherElem1, otherElem2) {
    28   win.scrollTo(50, 50);
    29   elemToSet[elemProp] = 100;
    30   if (elemToSet == correctElement) {
    31     is(win[winProp], 100, "Setting " + elemToSet.name + "." + elemProp + " should scroll");
    32     is(elemToSet[elemProp], 100, "Reading back " + elemToSet.name + "." + elemProp + " after scrolling");
    33   } else {
    34     is(win[winProp], 50, "Setting " + elemToSet.name + "." + elemProp + " should not scroll");
    35     is(elemToSet[elemProp], 0, "Reading back " + elemToSet.name + "." + elemProp + " after not scrolling");
    36   }
    37   if (otherElem1 == correctElement) {
    38     is(otherElem1[elemProp], 50, "Reading back " + otherElem1.name + "." + elemProp + " (correct element) after not scrolling");
    39   } else {
    40     is(otherElem1[elemProp], 0, "Reading back " + otherElem1.name + "." + elemProp + " (irrelevant element)");
    41   }
    42   if (otherElem2 == correctElement) {
    43     is(otherElem2[elemProp], 50, "Reading back " + otherElem2.name + "." + elemProp + " (correct element) after not scrolling");
    44   } else {
    45     is(otherElem2[elemProp], 0, "Reading back " + otherElem2.name + "." + elemProp + " (irrelevant element)");
    46   }
    47 }
    49 function testScroll(winProp, elemProp, win, elemToSet, otherElem1, otherElem2) {
    50   subtest(winProp, elemProp, win, elemToSet, elemToSet, otherElem1, otherElem2);
    51   subtest(winProp, elemProp, win, elemToSet, otherElem1, elemToSet, otherElem2);
    52   subtest(winProp, elemProp, win, elemToSet, otherElem2, elemToSet, otherElem1);
    53 }
    55 function doTest() {
    56   var quirksRoot = quirks.contentDocument.documentElement;
    57   quirksRoot.name = "quirks HTML";
    58   var quirksBody = quirks.contentDocument.body;
    59   quirksBody.name = "quirks BODY";
    60   var quirksBody2 = quirks.contentDocument.createElement("body");
    61   quirksBody2.name = "quirks other BODY";
    62   quirksRoot.appendChild(quirksBody2);
    63   testScroll("scrollX", "scrollLeft", quirks.contentWindow, quirksBody, quirksRoot, quirksBody2);
    64   testScroll("scrollY", "scrollTop", quirks.contentWindow, quirksBody, quirksRoot, quirksBody2);
    66   var standardsRoot = standards.contentDocument.documentElement;
    67   standardsRoot.name = "standards HTML";
    68   var standardsBody = standards.contentDocument.body;
    69   standardsBody.name = "standards BODY";
    70   var standardsBody2 = standards.contentDocument.createElement("body");
    71   standardsBody2.name = "standards other BODY";
    72   standardsRoot.appendChild(standardsBody2);
    73   testScroll("scrollX", "scrollLeft", standards.contentWindow, standardsRoot, standardsBody, standardsBody2);
    74   testScroll("scrollY", "scrollTop", standards.contentWindow, standardsRoot, standardsBody, standardsBody2);
    76   var xmlRoot = xml.contentDocument.documentElement;
    77   xmlRoot.name = "XML root";
    78   var xmlOther = xmlRoot.firstChild;
    79   xmlOther.name = "XML other";
    80   testScroll("scrollX", "scrollLeft", xml.contentWindow, xmlRoot, xmlOther, xmlOther);
    81   testScroll("scrollY", "scrollTop", xml.contentWindow, xmlRoot, xmlOther, xmlOther);
    83   SimpleTest.finish();
    84 }
    85 </script>
    87 </pre>
    88 </body>
    89 </html>

mercurial