tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

svglengthlist-animation-5.html (3273B)


      1 <!doctype html>
      2 <html>
      3 <meta charset="utf-8">
      4 <title>Test additive='sum' animation of SVGLengthList.</title>
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 <script src="/resources/SVGAnimationTestCase-testharness.js"></script>
      8 
      9 <svg>
     10 </svg>
     11 
     12 <script>
     13 var rootSVGElement = document.querySelector("svg");
     14 var epsilon = 1.0;
     15 
     16 // Setup test document
     17 var text = createSVGElement("text");
     18 text.setAttribute("id", "text");
     19 text.textContent = "ABCD";
     20 text.setAttribute("x", "50 60 70 80");
     21 text.setAttribute("y", "50");
     22 text.setAttribute("onclick", "executeTest()");
     23 rootSVGElement.appendChild(text);
     24 
     25 var animate = createSVGElement("animate");
     26 animate.setAttribute("id", "animation");
     27 animate.setAttribute("attributeName", "x");
     28 animate.setAttribute("begin", "0s");
     29 animate.setAttribute("dur", "4s");
     30 animate.setAttribute("additive", "sum");
     31 animate.setAttribute("from", "0 0 0 0");
     32 animate.setAttribute("to", "20 20 20 20");
     33 text.appendChild(animate);
     34 
     35 // Setup animation test
     36 function sample1() {
     37    assert_equals(text.x.animVal.numberOfItems, 4);
     38    assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
     39    assert_approx_equals(text.x.animVal.getItem(1).value, 60, epsilon);
     40    assert_approx_equals(text.x.animVal.getItem(2).value, 70, epsilon);
     41    assert_approx_equals(text.x.animVal.getItem(3).value, 80, epsilon);
     42 
     43    assert_equals(text.x.baseVal.numberOfItems, 4);
     44    assert_equals(text.x.baseVal.getItem(0).value, 50);
     45    assert_equals(text.x.baseVal.getItem(1).value, 60);
     46    assert_equals(text.x.baseVal.getItem(2).value, 70);
     47    assert_equals(text.x.baseVal.getItem(3).value, 80);
     48 }
     49 
     50 function sample2() {
     51    assert_equals(text.x.animVal.numberOfItems, 4);
     52    assert_approx_equals(text.x.animVal.getItem(0).value, 60, epsilon);
     53    assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
     54    assert_approx_equals(text.x.animVal.getItem(2).value, 80, epsilon);
     55    assert_approx_equals(text.x.animVal.getItem(3).value, 90, epsilon);
     56 
     57    assert_equals(text.x.baseVal.numberOfItems, 4);
     58    assert_equals(text.x.baseVal.getItem(0).value, 50);
     59    assert_equals(text.x.baseVal.getItem(1).value, 60);
     60    assert_equals(text.x.baseVal.getItem(2).value, 70);
     61    assert_equals(text.x.baseVal.getItem(3).value, 80);
     62 }
     63 
     64 function sample3() {
     65    assert_equals(text.x.animVal.numberOfItems, 4);
     66    assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
     67    assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
     68    assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
     69    assert_approx_equals(text.x.animVal.getItem(3).value, 100, epsilon);
     70 
     71    assert_equals(text.x.baseVal.numberOfItems, 4);
     72    assert_equals(text.x.baseVal.getItem(0).value, 50);
     73    assert_equals(text.x.baseVal.getItem(1).value, 60);
     74    assert_equals(text.x.baseVal.getItem(2).value, 70);
     75    assert_equals(text.x.baseVal.getItem(3).value, 80);
     76 }
     77 
     78 smil_async_test((t) => {
     79    const expectedValues = [
     80        // [animationId, time, sampleCallback]
     81        ["animation", 0.0,   sample1],
     82        ["animation", 2.0,   sample2],
     83        ["animation", 3.999, sample3],
     84        ["animation", 4.001, sample1]
     85    ];
     86 
     87    runAnimationTest(t, expectedValues);
     88 });
     89 
     90 </script>