tor-browser

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

href-mpath-element.html (3867B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>Href - mpath element tests</title>
      4 <script src='/resources/testharness.js'></script>
      5 <script src='/resources/testharnessreport.js'></script>
      6 <script src='testcommon.js'></script>
      7 <body>
      8 <div id='log'></div>
      9 <svg id='svg' width='100' height='100' viewBox='0 0 100 100'></svg>
     10 <script>
     11 'use strict';
     12 
     13 promise_test(function(t) {
     14  var svg = document.getElementById('svg');
     15  var path1 = createSVGElement(t, 'path', svg,
     16                               { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' });
     17  var path2 = createSVGElement(t, 'path', svg,
     18                               { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' });
     19  var rect = createSVGElement(t, 'rect', svg,
     20                              { 'width': '10px', 'height': '10px' });
     21  var animateMotion = createSVGElement(t, 'animateMotion', rect,
     22                                       { 'dur': '10s' });
     23  var mpath = createSVGElement(t, 'mpath', animateMotion);
     24  mpath.setAttribute('href', '#MyPath1');
     25  mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2');
     26  assert_equals(mpath.href.baseVal, '#MyPath1');
     27 
     28  return waitEvent(animateMotion, 'beginEvent').then(function() {
     29    svg.pauseAnimations();
     30    svg.setCurrentTime(1);
     31    var ctm = rect.getCTM();
     32    assert_equals(ctm.e, 10);
     33    assert_equals(ctm.f, 0);
     34 
     35    svg.setCurrentTime(5);
     36    ctm = rect.getCTM();
     37    assert_equals(ctm.e, 50);
     38    assert_equals(ctm.f, 0);
     39  });
     40 }, 'Test for mpath when setting both href and xlink:href');
     41 
     42 promise_test(function(t) {
     43  var svg = document.getElementById('svg');
     44  var path1 = createSVGElement(t, 'path', svg,
     45                               { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' });
     46  var path2 = createSVGElement(t, 'path', svg,
     47                               { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' });
     48  var rect = createSVGElement(t, 'rect', svg,
     49                              { 'width': '10px', 'height': '10px' });
     50  var animateMotion = createSVGElement(t, 'animateMotion', rect,
     51                                       { 'dur': '10s' });
     52  var mpath = createSVGElement(t, 'mpath', animateMotion);
     53  mpath.setAttribute('href', '#MyPath1');
     54  mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2');
     55 
     56  return waitEvent(animateMotion, 'beginEvent').then(function() {
     57    svg.pauseAnimations();
     58    svg.setCurrentTime(5);
     59    var ctm = rect.getCTM();
     60    assert_equals(ctm.e, 50);
     61    assert_equals(ctm.f, 0);
     62 
     63    mpath.removeAttribute('href');
     64    assert_equals(mpath.href.baseVal, '#MyPath2');
     65 
     66    ctm = rect.getCTM();
     67    assert_equals(ctm.e, 0);
     68    assert_equals(ctm.f, 50);
     69  });
     70 }, 'Test for mpath when removing href but we still have xlink:href');
     71 
     72 promise_test(function(t) {
     73  var svg = document.getElementById('svg');
     74  var path1 = createSVGElement(t, 'path', svg,
     75                               { 'id': 'MyPath1', 'd': 'M 0,0 L 100,0' });
     76  var path2 = createSVGElement(t, 'path', svg,
     77                               { 'id': 'MyPath2', 'd': 'M 0,0 L 0,100' });
     78  var rect = createSVGElement(t, 'rect', svg,
     79                              { 'width': '10px', 'height': '10px' });
     80  var animateMotion = createSVGElement(t, 'animateMotion', rect,
     81                                       { 'dur': '10s' });
     82  var mpath = createSVGElement(t, 'mpath', animateMotion);
     83  mpath.setAttribute('href', '#MyPath1');
     84  mpath.setAttributeNS(XLINKNS, 'xlink:href', '#MyPath2');
     85 
     86  return waitEvent(animateMotion, 'beginEvent').then(function() {
     87    svg.pauseAnimations();
     88    svg.setCurrentTime(5);
     89    var ctm = rect.getCTM();
     90    assert_equals(ctm.e, 50);
     91    assert_equals(ctm.f, 0);
     92 
     93    mpath.removeAttributeNS(XLINKNS, 'href');
     94    assert_equals(mpath.href.baseVal, '#MyPath1');
     95 
     96    ctm = rect.getCTM();
     97    assert_equals(ctm.e, 50);
     98    assert_equals(ctm.f, 0);
     99  });
    100 }, 'Test for mpath when removing xlink:href but we still have href');
    101 
    102 </script>
    103 </body>