<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=459953
-->
<head>
  <title>Test for Bug 459953</title>
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=459953">Mozilla Bug 459953</a>
<p id="display"></p>

<pre id="test">
<script class="testbody" type="application/javascript">
<![CDATA[
SimpleTest.waitForExplicitFinish();

function runTest()
{
  var svgns="http://www.w3.org/2000/svg";

  var path1=document.createElementNS(svgns, "path");

  var sseg;
  
  var a=10,s=20,d=30,z=9; //Arbitrary numbers for arguments
  
  var whatever=true; //This is often so, but here it does not matter
  
  sseg=path1.createSVGPathSegMovetoAbs(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegMovetoRel(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoAbs(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoRel(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoVerticalAbs(a);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoVerticalRel(a);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoHorizontalAbs(a);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegLinetoHorizontalRel(a);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoCubicAbs(a, s, d, z, a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoCubicRel(a, s, d, z, a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoCubicSmoothAbs(a, s, d, z);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoCubicSmoothRel(a, s, d, z);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoQuadraticAbs(a, s, d, z);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoQuadraticRel(a, s, d, z);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoQuadraticSmoothAbs(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegCurvetoQuadraticSmoothRel(a, s);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegArcAbs(a, s, d, z, a, whatever, whatever);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegArcRel(a, s, d, z, a, whatever, whatever);
  path1.pathSegList.appendItem(sseg);
  sseg=path1.createSVGPathSegClosePath();
  path1.pathSegList.appendItem(sseg);
  
  for(var i=0;i<path1.pathSegList.numberOfItems;i++){
    var seg=path1.pathSegList.getItem(i);
    switch(seg.pathSegType){
    case seg.PATHSEG_MOVETO_ABS:
      is(seg.pathSegTypeAsLetter, "M", "wrong path segment letter");      
      break;
    case seg.PATHSEG_MOVETO_REL:
      is(seg.pathSegTypeAsLetter, "m", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CLOSEPATH:
      is(seg.pathSegTypeAsLetter, "z", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_ABS:
      is(seg.pathSegTypeAsLetter, "L", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_REL:
      is(seg.pathSegTypeAsLetter, "l", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_VERTICAL_ABS:
      is(seg.pathSegTypeAsLetter, "V", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_VERTICAL_REL:
      is(seg.pathSegTypeAsLetter, "v", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_HORIZONTAL_ABS:
      is(seg.pathSegTypeAsLetter, "H", "wrong path segment letter");      
      break;
    case seg.PATHSEG_LINETO_HORIZONTAL_REL:
      is(seg.pathSegTypeAsLetter, "h", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_CUBIC_ABS:
      is(seg.pathSegTypeAsLetter, "C", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_CUBIC_REL:
      is(seg.pathSegTypeAsLetter, "c", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:
      is(seg.pathSegTypeAsLetter, "S", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:
      is(seg.pathSegTypeAsLetter, "s", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_QUADRATIC_ABS:
      is(seg.pathSegTypeAsLetter, "Q", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_QUADRATIC_REL:
      is(seg.pathSegTypeAsLetter, "q", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:
      is(seg.pathSegTypeAsLetter, "T", "wrong path segment letter");      
      break;
    case seg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:
      is(seg.pathSegTypeAsLetter, "t", "wrong path segment letter");      
      break;
    case seg.PATHSEG_ARC_ABS:
      is(seg.pathSegTypeAsLetter, "A", "wrong path segment letter");      
      break;
    case seg.PATHSEG_ARC_REL:
      is(seg.pathSegTypeAsLetter, "a", "wrong path segment letter");      
      break;
      
    }
  }
  SimpleTest.finish();
}

window.addEventListener("load", runTest, false);
]]>
</script>
</pre>
</body>
</html>