tor-browser

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

svglengthlist-animation-4.html (3226B)


      1 <!doctype html>
      2 <html>
      3 <meta charset="utf-8">
      4 <title>Test 'by' 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("from", "50 60 70 80");
     31 animate.setAttribute("by", "20 20 20 20");
     32 text.appendChild(animate);
     33 
     34 // Setup animation test
     35 function sample1() {
     36    assert_equals(text.x.animVal.numberOfItems, 4);
     37    assert_approx_equals(text.x.animVal.getItem(0).value, 50, epsilon);
     38    assert_approx_equals(text.x.animVal.getItem(1).value, 60, epsilon);
     39    assert_approx_equals(text.x.animVal.getItem(2).value, 70, epsilon);
     40    assert_approx_equals(text.x.animVal.getItem(3).value, 80, epsilon);
     41 
     42    assert_equals(text.x.baseVal.numberOfItems, 4);
     43    assert_equals(text.x.baseVal.getItem(0).value, 50);
     44    assert_equals(text.x.baseVal.getItem(1).value, 60);
     45    assert_equals(text.x.baseVal.getItem(2).value, 70);
     46    assert_equals(text.x.baseVal.getItem(3).value, 80);
     47 }
     48 
     49 function sample2() {
     50    assert_equals(text.x.animVal.numberOfItems, 4);
     51    assert_approx_equals(text.x.animVal.getItem(0).value, 60, epsilon);
     52    assert_approx_equals(text.x.animVal.getItem(1).value, 70, epsilon);
     53    assert_approx_equals(text.x.animVal.getItem(2).value, 80, epsilon);
     54    assert_approx_equals(text.x.animVal.getItem(3).value, 90, epsilon);
     55 
     56    assert_equals(text.x.baseVal.numberOfItems, 4);
     57    assert_equals(text.x.baseVal.getItem(0).value, 50);
     58    assert_equals(text.x.baseVal.getItem(1).value, 60);
     59    assert_equals(text.x.baseVal.getItem(2).value, 70);
     60    assert_equals(text.x.baseVal.getItem(3).value, 80);
     61 }
     62 
     63 function sample3() {
     64    assert_equals(text.x.animVal.numberOfItems, 4);
     65    assert_approx_equals(text.x.animVal.getItem(0).value, 70, epsilon);
     66    assert_approx_equals(text.x.animVal.getItem(1).value, 80, epsilon);
     67    assert_approx_equals(text.x.animVal.getItem(2).value, 90, epsilon);
     68    assert_approx_equals(text.x.animVal.getItem(3).value, 100, epsilon);
     69 
     70    assert_equals(text.x.baseVal.numberOfItems, 4);
     71    assert_equals(text.x.baseVal.getItem(0).value, 50);
     72    assert_equals(text.x.baseVal.getItem(1).value, 60);
     73    assert_equals(text.x.baseVal.getItem(2).value, 70);
     74    assert_equals(text.x.baseVal.getItem(3).value, 80);
     75 }
     76 
     77 smil_async_test((t) => {
     78    const expectedValues = [
     79        // [animationId, time, sampleCallback]
     80        ["animation", 0.0,   sample1],
     81        ["animation", 2.0,   sample2],
     82        ["animation", 3.999, sample3],
     83        ["animation", 4.001, sample1]
     84    ];
     85 
     86    runAnimationTest(t, expectedValues);
     87 });
     88 
     89 </script>