| OLD | NEW | 
| (Empty) |  | 
 |    1 <!doctype html>  | 
 |    2 <title>SVG*List array method tests</title> | 
 |    3 <script src=../../resources/testharness.js></script> | 
 |    4 <script src=../../resources/testharnessreport.js></script> | 
 |    5 <div id="testcontainer"></div> | 
 |    6 <div id=log></div> | 
 |    7 <script> | 
 |    8 function createSvg() { | 
 |    9   document.getElementById("testcontainer").innerHTML = '<svg id="svg" width="1" 
     height="1" visibility="hidden"><polygon id="polygon" points="10 10 450 212 24 10
     3 45 32 62 42 123 52 62 52 57 72 12 548 85 12" visibility="hidden" systemLanguag
     e="sv, en, fr, de, zn, jp"/><path id="path" d="M 10 10 L 450 212 24 103 45 32 62
      42 123 52 62 52 57 72 12 548 85 12" transform="scale(0.5) rotate(34) translate(
     10 10)" visibility="hidden"/><text id="text" dx="10 10 450 212 24 103 45 32 62 4
     2 123 52 62 52 57 72 12 548 85 12" rotate="10 66 2 23 546 54657 567 546 3 2 2 2 
     23" visibility="hidden"/></svg>'; | 
 |   10 } | 
 |   11 setup(createSvg); | 
 |   12 var svg = document.getElementById("svg"); | 
 |   13 var polygon = document.getElementById("polygon"); | 
 |   14 var path = document.getElementById("path"); | 
 |   15 var text = document.getElementById("text"); | 
 |   16 function createSVGPoint(x,y) { | 
 |   17         var o; | 
 |   18         try { | 
 |   19                 o = new SVGPoint(x,y); | 
 |   20         } | 
 |   21         catch(e) { | 
 |   22                 o = svg.createSVGPoint(); | 
 |   23                 o.x = x; | 
 |   24                 o.y = y; | 
 |   25         } | 
 |   26         return o; | 
 |   27 } | 
 |   28 function createSVGLength(value) { | 
 |   29         var o; | 
 |   30         try { | 
 |   31                 o = new SVGLength(value); | 
 |   32         } | 
 |   33         catch(e) { | 
 |   34                 o = svg.createSVGLength(); | 
 |   35                 o.value = value; | 
 |   36         } | 
 |   37         return o; | 
 |   38 } | 
 |   39 function createSVGNumber(value) { | 
 |   40         var o; | 
 |   41         try { | 
 |   42                 o = new SVGNumber(value); | 
 |   43         } | 
 |   44         catch(e) { | 
 |   45                 o = svg.createSVGNumber(); | 
 |   46                 o.value = value; | 
 |   47         } | 
 |   48         return o; | 
 |   49 } | 
 |   50 function createSVGTransformTranslate(tx,ty) { | 
 |   51         var o; | 
 |   52         try { | 
 |   53                 o = new SVGTransform(); | 
 |   54         } | 
 |   55         catch(e) { | 
 |   56                 o = svg.createSVGTransform(); | 
 |   57         } | 
 |   58         o.setTranslate(tx, ty); | 
 |   59         return o; | 
 |   60 } | 
 |   61 var lists = { | 
 |   62         "SVGPointList" :  | 
 |   63                 { "impl": polygon.points, | 
 |   64               "type": "SVGPoint", | 
 |   65               "length": 10, | 
 |   66               "insert_value": createSVGPoint(5, 5), | 
 |   67               "equals": function(a,b) { return a.x == b.x && a.y == b.y; } | 
 |   68             }, | 
 |   69         "SVGStringList" :  | 
 |   70                 { "impl": polygon.systemLanguage, | 
 |   71                   "type": "DOMString", | 
 |   72               "length": 6, | 
 |   73               "insert_value": "uk", | 
 |   74               "equals": function(a,b) { return a == b; } | 
 |   75             }, | 
 |   76         "SVGTransformList" :  | 
 |   77                 { "impl": path.transform.baseVal, | 
 |   78                   "type": "SVGTransform", | 
 |   79               "length": 3, | 
 |   80               "insert_value": createSVGTransformTranslate(5,5), | 
 |   81               "equals": function(a,b) { return a.matrix.a == b.matrix.a && | 
 |   82                                                                                 
        a.matrix.b == b.matrix.b && | 
 |   83                                                                                 
        a.matrix.c == b.matrix.c && | 
 |   84                                                                                 
        a.matrix.d == b.matrix.d && | 
 |   85                                                                                 
        a.matrix.e == b.matrix.e && | 
 |   86                                                                                 
        a.matrix.f == b.matrix.f; } | 
 |   87             }, | 
 |   88         "SVGPathSegList" :  | 
 |   89                 { "impl": path.pathSegList, | 
 |   90                   "type": "SVGPathSegMovetoAbs", | 
 |   91               "length": 10, | 
 |   92               "insert_value": path.createSVGPathSegMovetoAbs(5,5), | 
 |   93               "equals": function(a,b) { return a.x == b.x && a.y == b.y; } | 
 |   94             }, | 
 |   95         "SVGLengthList" :  | 
 |   96                 { "impl": text.dx.baseVal, | 
 |   97                   "type": "SVGLength", | 
 |   98               "length": 20, | 
 |   99               "insert_value": createSVGLength(5), | 
 |  100               "equals": function(a,b) { return a.valueInSpecifiedUnits == b.valu
     eInSpecifiedUnits && | 
 |  101                                                                                 
        a.unitType == b.unitType; } | 
 |  102             }, | 
 |  103         "SVGNumberList" :  | 
 |  104                 { "impl": text.rotate.baseVal, | 
 |  105                   "type": "SVGNumber", | 
 |  106               "length": 13, | 
 |  107               "insert_value": createSVGNumber(5), | 
 |  108               "equals": function(a,b) { return a.value == b.value; } | 
 |  109             } | 
 |  110 }; | 
 |  111  | 
 |  112 for (list_type in lists) { | 
 |  113         test(function() { | 
 |  114                 assert_idl_attribute(lists[list_type].impl, "length"); | 
 |  115         }, list_type + " has length attribute"); | 
 |  116         test(function() { | 
 |  117                 assert_idl_attribute(lists[list_type].impl, "numberOfItems"); | 
 |  118         }, list_type + " has numberOfItems attribute"); | 
 |  119         test(function() { | 
 |  120           assert_equals(lists[list_type].impl.length, lists[list_type].impl.numb
     erOfItems); | 
 |  121           assert_equals(lists[list_type].impl.length, lists[list_type].length); | 
 |  122         }, list_type + ".length equals " + list_type + ".numberOfItems."); | 
 |  123         test(function() { | 
 |  124                 assert_true(lists[list_type].equals(lists[list_type].impl.getIte
     m(0), lists[list_type].impl[0])); | 
 |  125         }, list_type + " has array getter"); | 
 |  126         test(function() { | 
 |  127                 var old_value = lists[list_type].impl[0]; | 
 |  128                 var new_value = lists[list_type].insert_value; | 
 |  129                 lists[list_type].impl[0] = lists[list_type].insert_value; | 
 |  130                 assert_false(lists[list_type].equals(old_value, new_value)); | 
 |  131                 assert_true(lists[list_type].equals(lists[list_type].impl[0], ne
     w_value)); | 
 |  132         assert_equals(lists[list_type].impl.length, lists[list_type].length); | 
 |  133         }, list_type + " has array setter"); | 
 |  134 } | 
 |  135  | 
 |  136 </script> | 
| OLD | NEW |