OLD | NEW |
(Empty) | |
| 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, 'begin').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, 'begin').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, 'begin').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> |
OLD | NEW |