Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE HTML> | |
| 2 <title>SVGTransformList, basics</title> | |
| 3 <script src="../../resources/testharness.js"></script> | |
| 4 <script src="../../resources/testharnessreport.js"></script> | |
| 5 <script src="resources/SVGTransformList-helper.js"></script> | |
| 6 <svg width="200" height="200"> | |
| 7 <circle cx="40" cy="40" r="40" fill="green" transform="scale(2, 2) translate (10 10)"/> | |
| 8 </svg> | |
| 9 <script> | |
| 10 test(function() { | |
|
fs
2016/09/22 11:43:20
I think it'd be better to have several (sub)test h
Shanmuga Pandi
2016/09/23 11:37:02
Added TODO.
| |
| 11 // This is a test of the simple SVGTransformList API parts. | |
| 12 | |
| 13 var svg = document.querySelector("svg"); | |
| 14 var circle1 = document.querySelector("circle"); | |
| 15 var transformList = circle1.transform.baseVal; | |
| 16 | |
| 17 // Spec: The object referenced by animVal will always be distinct from the one referenced by baseVal, even when the attribute is not animated. | |
| 18 assert_not_equals(circle1.transform.baseVal, circle1.transform.animVal); | |
| 19 | |
| 20 assert_equals(circle1.transform.baseVal.numberOfItems, 2); | |
| 21 assert_equals(circle1.transform.animVal.numberOfItems, 2); | |
| 22 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 23 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 24 | |
| 25 // Test uncommon arguments for initialize(). | |
| 26 assert_throws(new TypeError(), function() { transformList.initialize(30); }); | |
| 27 assert_throws(new TypeError(), function() { transformList.initialize('aString' ); }); | |
| 28 assert_throws(new TypeError(), function() { transformList.initialize(circle1); }); | |
| 29 assert_throws(new TypeError(), function() { transformList.initialize(null); }) ; | |
| 30 | |
| 31 // Test uncommon arguments for getItem(). | |
| 32 assert_throws("IndexSizeError", function() { transformList.getItem(30); }); | |
| 33 assert_equals(transformList.getItem('aString').toString(), "type=SVG_TRANSFORM _SCALE matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 34 assert_equals(transformList.getItem(circle1).toString(), "type=SVG_TRANSFORM_S CALE matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 35 assert_equals(transformList.getItem(null).toString(), "type=SVG_TRANSFORM_SCAL E matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 36 | |
| 37 // Test uncommon arguments for insertItemBefore(). | |
| 38 assert_throws(new TypeError(), function() { transformList.insertItemBefore(30) ; }); | |
| 39 assert_throws(new TypeError(), function() { transformList.insertItemBefore('aS tring'); }); | |
| 40 assert_throws(new TypeError(), function() { transformList.insertItemBefore(cir cle1); }); | |
| 41 assert_throws(new TypeError(), function() { transformList.insertItemBefore(nul l); }); | |
| 42 | |
| 43 assert_equals(transformList.insertItemBefore(transformList.getItem(1), 'aStrin g').toString(), "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 10.0 10.0] "); | |
| 44 assert_equals(transformList.numberOfItems, 3); | |
| 45 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 46 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 47 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 48 assert_equals(circle1.getAttribute('transform'), "translate(10 10) scale(2 2) translate(10 10)"); | |
| 49 | |
| 50 assert_equals(transformList.insertItemBefore(transformList.getItem(1), circle1 ).toString(), "type=SVG_TRANSFORM_SCALE matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 51 assert_equals(transformList.numberOfItems, 4); | |
| 52 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 53 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 54 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 55 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 56 assert_equals(circle1.getAttribute('transform'), "scale(2 2) translate(10 10) scale(2 2) translate(10 10)"); | |
| 57 | |
| 58 assert_equals(transformList.insertItemBefore(transformList.getItem(1), null).t oString(), "type=SVG_TRANSFORM_TRANSLATE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 59 assert_equals(transformList.numberOfItems, 5); | |
| 60 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 61 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 62 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 63 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 64 assert_equals(transformList.getItem(4).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 65 assert_equals(circle1.getAttribute('transform'), "translate(10 10) scale(2 2) translate(10 10) scale(2 2) translate(10 10)"); | |
| 66 | |
| 67 assert_equals(transformList.insertItemBefore(transformList.getItem(1), 0).toSt ring(), "type=SVG_TRANSFORM_SCALE matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 68 assert_equals(transformList.numberOfItems, 6); | |
| 69 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 70 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 71 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 72 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 73 assert_equals(transformList.getItem(4).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 74 assert_equals(transformList.getItem(5).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 75 assert_equals(circle1.getAttribute('transform'), "scale(2 2) translate(10 10) scale(2 2) translate(10 10) scale(2 2) translate(10 10)"); | |
| 76 | |
| 77 assert_throws(new TypeError(), function() { transformList.insertItemBefore(30, 0); }); | |
| 78 assert_throws(new TypeError(), function() { transformList.insertItemBefore('aS tring', 0); }); | |
| 79 assert_throws(new TypeError(), function() { transformList.insertItemBefore(cir cle1, 0); }); | |
| 80 assert_throws(new TypeError(), function() { transformList.insertItemBefore(nul l, 0); }); | |
| 81 | |
| 82 // Set transform='rotate(90) scale(2 2) translate(10 10) skewX(45)' for circle 1. | |
| 83 circle1.setAttribute('transform', 'rotate(90) scale(2 2) translate(10 10) skew X(45)'); | |
| 84 assert_equals(transformList.numberOfItems, 4); | |
| 85 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 86 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 87 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 88 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 89 assert_equals(circle1.getAttribute('transform'), "rotate(90) scale(2 2) transl ate(10 10) skewX(45)"); | |
| 90 | |
| 91 // Test uncommon arguments for replaceItem(). | |
| 92 assert_throws(new TypeError(), function() { transformList.replaceItem(30); }); | |
| 93 assert_throws(new TypeError(), function() { transformList.replaceItem('aString '); }); | |
| 94 assert_throws(new TypeError(), function() { transformList.replaceItem(circle1) ; }); | |
| 95 assert_throws(new TypeError(), function() { transformList.replaceItem(null); } ); | |
| 96 assert_throws(new TypeError(), function() { transformList.replaceItem(30, 0); }); | |
| 97 assert_throws(new TypeError(), function() { transformList.replaceItem('aString ', 0); }); | |
| 98 assert_throws(new TypeError(), function() { transformList.replaceItem(circle1, 0); }); | |
| 99 assert_throws(new TypeError(), function() { transformList.replaceItem(null, 0) ; }); | |
| 100 | |
| 101 // Test uncommon values for indexed setter. | |
| 102 assert_throws(new TypeError(), function() { transformList[0] = 30; }); | |
| 103 assert_throws(new TypeError(), function() { transformList[0] = 'aString'; }); | |
| 104 assert_throws(new TypeError(), function() { transformList[0] = circle1; }); | |
| 105 assert_throws(new TypeError(), function() { transformList[0] = null; }); | |
| 106 | |
| 107 assert_equals(transformList.replaceItem(transformList.getItem(0), 0).toString( ), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
|
fs
2016/09/22 11:43:20
Here we are replacing the element with itself - fr
Shanmuga Pandi
2016/09/23 11:37:02
Done.
| |
| 108 assert_equals(transformList.numberOfItems, 4); | |
| 109 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 110 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 111 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 112 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 113 assert_equals(circle1.getAttribute('transform'), "rotate(90) scale(2 2) transl ate(10 10) skewX(45)"); | |
| 114 | |
| 115 assert_equals(transformList.replaceItem(transformList.getItem(0), 'aString').t oString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 116 assert_equals(transformList.numberOfItems, 4); | |
| 117 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 118 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 119 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 120 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 121 assert_equals(circle1.getAttribute('transform'), "rotate(90) scale(2 2) transl ate(10 10) skewX(45)"); | |
| 122 | |
| 123 assert_equals(transformList.replaceItem(transformList.getItem(0), circle1).toS tring(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 124 assert_equals(transformList.numberOfItems, 4); | |
| 125 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 126 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 127 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 128 assert_equals(transformList.getItem(3).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 129 assert_equals(circle1.getAttribute('transform'), "rotate(90) scale(2 2) transl ate(10 10) skewX(45)"); | |
| 130 | |
| 131 assert_equals(transformList.replaceItem(transformList.getItem(0), null).toStri ng(), "type=SVG_TRANSFORM_ROTATE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 132 assert_equals(transformList.numberOfItems, 4); | |
| 133 assert_equals(circle1.getAttribute('transform'), "rotate(90) scale(2 2) transl ate(10 10) skewX(45)"); | |
| 134 | |
| 135 // Set transform='rotate(90) scale(2 2) translate(10 10) skewX(45)' for circle 1. | |
| 136 circle1.setAttribute('transform', 'rotate(90) scale(2 2) translate(10 10) skew X(45)'); | |
| 137 | |
| 138 // Test uncommon arguments for removeItem(). | |
| 139 assert_throws("IndexSizeError", function() { transformList.removeItem(30); }); | |
| 140 | |
| 141 assert_equals(transformList.removeItem(0).toString(), "type=SVG_TRANSFORM_ROTA TE matrix=[0.0 1.0 -1.0 0.0 0.0 0.0]"); | |
| 142 assert_equals(transformList.numberOfItems, 3); | |
| 143 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_SCALE m atrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 144 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 145 assert_equals(transformList.getItem(2).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 146 assert_equals(circle1.getAttribute('transform'), "scale(2 2) translate(10 10) skewX(45)"); | |
| 147 | |
| 148 assert_equals(transformList.removeItem('aString').toString(), "type=SVG_TRANSF ORM_SCALE matrix=[2.0 0.0 0.0 2.0 0.0 0.0]"); | |
| 149 assert_equals(transformList.numberOfItems, 2); | |
| 150 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_TRANSLA TE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 151 assert_equals(transformList.getItem(1).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 152 assert_equals(circle1.getAttribute('transform'), "translate(10 10) skewX(45)") ; | |
| 153 | |
| 154 assert_equals(transformList.removeItem(circle1).toString(), "type=SVG_TRANSFOR M_TRANSLATE matrix=[1.0 0.0 0.0 1.0 10.0 10.0]"); | |
| 155 assert_equals(transformList.numberOfItems, 1); | |
| 156 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_SKEWX m atrix=[1.0 0.0 1.0 1.0 0.0 0.0]"); | |
| 157 assert_equals(circle1.getAttribute('transform'), "skewX(45)"); | |
| 158 | |
| 159 // Test uncommon arguments for appendItem(). | |
| 160 assert_throws(new TypeError(), function() { transformList.appendItem(30); }); | |
| 161 assert_throws(new TypeError(), function() { transformList.appendItem('aString' ); }); | |
| 162 assert_throws(new TypeError(), function() { transformList.appendItem(circle1); }); | |
| 163 assert_throws(new TypeError(), function() { transformList.appendItem(null); }) ; | |
| 164 | |
| 165 // Testing animVal clear throws. | |
| 166 assert_throws("NoModificationAllowedError", function() { circle1.transform.ani mVal.clear(); }); | |
| 167 transformList.clear(); | |
| 168 | |
| 169 // Creating new SVGTransform, with 45 deg rotation about x=50, y=100 and appen d it to the transform list. | |
| 170 var transform; | |
| 171 assert_equals((transform = svg.createSVGTransform()).toString(), "type=SVG_TRA NSFORM_MATRIX matrix=[1.0 0.0 0.0 1.0 0.0 0.0]"); | |
|
fs
2016/09/22 11:43:20
Assign the transform outside the assert.
Shanmuga Pandi
2016/09/23 11:37:02
Done.
| |
| 172 transform.setRotate(45, 50, 100); | |
| 173 | |
| 174 assert_equals(transformList.appendItem(transform).toString(), "type=SVG_TRANSF ORM_ROTATE matrix=[0.7 0.7 -0.7 0.7 85.4 -6.1]"); | |
| 175 assert_equals(transformList.numberOfItems, 1); | |
| 176 assert_equals(transformList.getItem(0).toString(), "type=SVG_TRANSFORM_ROTATE matrix=[0.7 0.7 -0.7 0.7 85.4 -6.1]"); | |
| 177 assert_equals(circle1.getAttribute('transform'), "rotate(45 50 100)"); | |
| 178 }); | |
| 179 </script> | |
| OLD | NEW |