test_pathSeg.xhtml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=459953
  5. -->
  6. <head>
  7. <title>Test for Bug 459953</title>
  8. <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  9. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  10. </head>
  11. <body>
  12. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=459953">Mozilla Bug 459953</a>
  13. <p id="display"></p>
  14. <pre id="test">
  15. <script class="testbody" type="application/javascript">
  16. <![CDATA[
  17. SimpleTest.waitForExplicitFinish();
  18. function runTest()
  19. {
  20. var svgns="http://www.w3.org/2000/svg";
  21. var path1=document.createElementNS(svgns, "path");
  22. var sseg;
  23. var a=10,s=20,d=30,z=9; //Arbitrary numbers for arguments
  24. var whatever=true; //This is often so, but here it does not matter
  25. sseg=path1.createSVGPathSegMovetoAbs(a, s);
  26. path1.pathSegList.appendItem(sseg);
  27. sseg=path1.createSVGPathSegMovetoRel(a, s);
  28. path1.pathSegList.appendItem(sseg);
  29. sseg=path1.createSVGPathSegLinetoAbs(a, s);
  30. path1.pathSegList.appendItem(sseg);
  31. sseg=path1.createSVGPathSegLinetoRel(a, s);
  32. path1.pathSegList.appendItem(sseg);
  33. sseg=path1.createSVGPathSegLinetoVerticalAbs(a);
  34. path1.pathSegList.appendItem(sseg);
  35. sseg=path1.createSVGPathSegLinetoVerticalRel(a);
  36. path1.pathSegList.appendItem(sseg);
  37. sseg=path1.createSVGPathSegLinetoHorizontalAbs(a);
  38. path1.pathSegList.appendItem(sseg);
  39. sseg=path1.createSVGPathSegLinetoHorizontalRel(a);
  40. path1.pathSegList.appendItem(sseg);
  41. sseg=path1.createSVGPathSegCurvetoCubicAbs(a, s, d, z, a, s);
  42. path1.pathSegList.appendItem(sseg);
  43. sseg=path1.createSVGPathSegCurvetoCubicRel(a, s, d, z, a, s);
  44. path1.pathSegList.appendItem(sseg);
  45. sseg=path1.createSVGPathSegCurvetoCubicSmoothAbs(a, s, d, z);
  46. path1.pathSegList.appendItem(sseg);
  47. sseg=path1.createSVGPathSegCurvetoCubicSmoothRel(a, s, d, z);
  48. path1.pathSegList.appendItem(sseg);
  49. sseg=path1.createSVGPathSegCurvetoQuadraticAbs(a, s, d, z);
  50. path1.pathSegList.appendItem(sseg);
  51. sseg=path1.createSVGPathSegCurvetoQuadraticRel(a, s, d, z);
  52. path1.pathSegList.appendItem(sseg);
  53. sseg=path1.createSVGPathSegCurvetoQuadraticSmoothAbs(a, s);
  54. path1.pathSegList.appendItem(sseg);
  55. sseg=path1.createSVGPathSegCurvetoQuadraticSmoothRel(a, s);
  56. path1.pathSegList.appendItem(sseg);
  57. sseg=path1.createSVGPathSegArcAbs(a, s, d, z, a, whatever, whatever);
  58. path1.pathSegList.appendItem(sseg);
  59. sseg=path1.createSVGPathSegArcRel(a, s, d, z, a, whatever, whatever);
  60. path1.pathSegList.appendItem(sseg);
  61. sseg=path1.createSVGPathSegClosePath();
  62. path1.pathSegList.appendItem(sseg);
  63. for(var i=0;i<path1.pathSegList.numberOfItems;i++){
  64. var seg=path1.pathSegList.getItem(i);
  65. switch(seg.pathSegType){
  66. case seg.PATHSEG_MOVETO_ABS:
  67. is(seg.pathSegTypeAsLetter, "M", "wrong path segment letter");
  68. break;
  69. case seg.PATHSEG_MOVETO_REL:
  70. is(seg.pathSegTypeAsLetter, "m", "wrong path segment letter");
  71. break;
  72. case seg.PATHSEG_CLOSEPATH:
  73. is(seg.pathSegTypeAsLetter, "z", "wrong path segment letter");
  74. break;
  75. case seg.PATHSEG_LINETO_ABS:
  76. is(seg.pathSegTypeAsLetter, "L", "wrong path segment letter");
  77. break;
  78. case seg.PATHSEG_LINETO_REL:
  79. is(seg.pathSegTypeAsLetter, "l", "wrong path segment letter");
  80. break;
  81. case seg.PATHSEG_LINETO_VERTICAL_ABS:
  82. is(seg.pathSegTypeAsLetter, "V", "wrong path segment letter");
  83. break;
  84. case seg.PATHSEG_LINETO_VERTICAL_REL:
  85. is(seg.pathSegTypeAsLetter, "v", "wrong path segment letter");
  86. break;
  87. case seg.PATHSEG_LINETO_HORIZONTAL_ABS:
  88. is(seg.pathSegTypeAsLetter, "H", "wrong path segment letter");
  89. break;
  90. case seg.PATHSEG_LINETO_HORIZONTAL_REL:
  91. is(seg.pathSegTypeAsLetter, "h", "wrong path segment letter");
  92. break;
  93. case seg.PATHSEG_CURVETO_CUBIC_ABS:
  94. is(seg.pathSegTypeAsLetter, "C", "wrong path segment letter");
  95. break;
  96. case seg.PATHSEG_CURVETO_CUBIC_REL:
  97. is(seg.pathSegTypeAsLetter, "c", "wrong path segment letter");
  98. break;
  99. case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
  100. is(seg.pathSegTypeAsLetter, "S", "wrong path segment letter");
  101. break;
  102. case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
  103. is(seg.pathSegTypeAsLetter, "s", "wrong path segment letter");
  104. break;
  105. case seg.PATHSEG_CURVETO_QUADRATIC_ABS:
  106. is(seg.pathSegTypeAsLetter, "Q", "wrong path segment letter");
  107. break;
  108. case seg.PATHSEG_CURVETO_QUADRATIC_REL:
  109. is(seg.pathSegTypeAsLetter, "q", "wrong path segment letter");
  110. break;
  111. case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
  112. is(seg.pathSegTypeAsLetter, "T", "wrong path segment letter");
  113. break;
  114. case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
  115. is(seg.pathSegTypeAsLetter, "t", "wrong path segment letter");
  116. break;
  117. case seg.PATHSEG_ARC_ABS:
  118. is(seg.pathSegTypeAsLetter, "A", "wrong path segment letter");
  119. break;
  120. case seg.PATHSEG_ARC_REL:
  121. is(seg.pathSegTypeAsLetter, "a", "wrong path segment letter");
  122. break;
  123. }
  124. }
  125. SimpleTest.finish();
  126. }
  127. window.addEventListener("load", runTest, false);
  128. ]]>
  129. </script>
  130. </pre>
  131. </body>
  132. </html>