<!DOCTYPE html>
<html>
<head>
<link rel="help" href="http://www.w3.org/TR/2013/WD-SVG2-20130618/" />
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Validates the SVG2 inheritance model.");

function interfaceName(prototype)
{
    var parts = prototype.toString().split(" ");
    var lastPart = parts[parts.length - 1];
    return lastPart.substring(0, lastPart.length - 10);
}

function checkParent(type, expectedParent)
{
    // Using shouldBe() would lead to not very readable output here.
    if (!window[type]) {
        testFailed(type + " is not defined");
        return;
    }
    var parentPrototype = window[type].prototype.__proto__;
    var expectedPrototype = window[expectedParent] ? window[expectedParent].prototype : null;
    
    if (expectedPrototype && parentPrototype === expectedPrototype)
        testPassed(type + " inherits " + expectedParent);
    else
        testFailed(type + " should inherit " + expectedParent + " but got " + interfaceName(parentPrototype) + " instead");
}

checkParent("SVGAElement", "SVGGraphicsElement");
checkParent("SVGAltGlyphDefElement", "SVGElement");
checkParent("SVGAltGlyphElement", "SVGTextPositioningElement");
checkParent("SVGAltGlyphItemElement", "SVGElement");
checkParent("SVGAngle", "Object");
checkParent("SVGAnimateColorElement", "SVGAnimationElement");
checkParent("SVGAnimateElement", "SVGAnimationElement");
checkParent("SVGAnimateMotionElement", "SVGAnimationElement");
checkParent("SVGAnimateTransformElement", "SVGAnimationElement");
checkParent("SVGAnimatedAngle", "Object");
checkParent("SVGAnimatedBoolean", "Object");
checkParent("SVGAnimatedEnumeration", "Object");
checkParent("SVGAnimatedInteger", "Object");
checkParent("SVGAnimatedLength", "Object");
checkParent("SVGAnimatedLengthList", "Object");
checkParent("SVGAnimatedNumber", "Object");
checkParent("SVGAnimatedNumberList", "Object");
checkParent("SVGAnimatedPathData", "Object");
checkParent("SVGAnimatedPreserveAspectRatio", "Object");
checkParent("SVGAnimatedRect", "Object");
checkParent("SVGAnimatedString", "Object");
checkParent("SVGAnimatedTransformList", "Object");
checkParent("SVGAnimationElement", "SVGElement");
checkParent("SVGCSSRule", "CSSRule");
checkParent("SVGCircleElement", "SVGGeometryElement");
checkParent("SVGClipPathElement", "SVGDefinitionElement");
checkParent("SVGColorProfileElement", "SVGElement");
checkParent("SVGColorProfileRule", "SVGCSSRule");
checkParent("SVGCursorElement", "SVGElement");
checkParent("SVGDefsElement", "SVGGraphicsElement");
checkParent("SVGDescElement", "SVGElement");
checkParent("SVGElement", "Element");
checkParent("SVGEllipseElement", "SVGGeometryElement");
checkParent("SVGFontElement", "SVGElement");
checkParent("SVGFontFaceElement", "SVGElement");
checkParent("SVGFontFaceFormatElement", "SVGElement");
checkParent("SVGFontFaceNameElement", "SVGElement");
checkParent("SVGFontFaceSrcElement", "SVGElement");
checkParent("SVGFontFaceUriElement", "SVGElement");
checkParent("SVGForeignObjectElement", "SVGGraphicsElement");
checkParent("SVGGElement", "SVGGraphicsElement");
checkParent("SVGGeometryElement", "SVGGraphicsElement");
checkParent("SVGGlyphElement", "SVGElement");
checkParent("SVGGlyphRefElement", "SVGElement");
checkParent("SVGGradientElement", "SVGElement");
checkParent("SVGGraphicsElement", "SVGElement");
checkParent("SVGHKernElement", "SVGElement");
checkParent("SVGImageElement", "SVGGraphicsElement");
checkParent("SVGLength", "Object");
checkParent("SVGLengthList", "Object");
checkParent("SVGLineElement", "SVGGeometryElement");
checkParent("SVGLinearGradientElement", "SVGGradientElement");
checkParent("SVGMPathElement", "SVGElement");
checkParent("SVGMarkerElement", "SVGElement");
checkParent("SVGMarkerInstance", "Object");
checkParent("SVGMarkerList", "Object");
checkParent("SVGMaskElement", "SVGDefinitionElement");
checkParent("SVGMatrix", "Object");
checkParent("SVGMeshGradientElement", "SVGGradientElement");
checkParent("SVGMeshPatchElement", "SVGElement");
checkParent("SVGMeshRowElement", "SVGElement");
checkParent("SVGMetadataElement", "SVGElement");
checkParent("SVGMissingGlyphElement", "SVGElement");
checkParent("SVGNumber", "Object");
checkParent("SVGNumberList", "Object");
checkParent("SVGPathElement", "SVGGeometryElement");
checkParent("SVGPathSeg", "Object");
checkParent("SVGPathSegArcAbs", "SVGPathSeg");
checkParent("SVGPathSegArcRel", "SVGPathSeg");
checkParent("SVGPathSegClosePath", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicSmoothAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoCubicSmoothRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticRel", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticSmoothAbs", "SVGPathSeg");
checkParent("SVGPathSegCurvetoQuadraticSmoothRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoHorizontalAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoHorizontalRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoRel", "SVGPathSeg");
checkParent("SVGPathSegLinetoVerticalAbs", "SVGPathSeg");
checkParent("SVGPathSegLinetoVerticalRel", "SVGPathSeg");
checkParent("SVGPathSegList", "Object");
checkParent("SVGPathSegMovetoAbs", "SVGPathSeg");
checkParent("SVGPathSegMovetoRel", "SVGPathSeg");
checkParent("SVGPatternElement", "SVGElement");
checkParent("SVGPoint", "Object");
checkParent("SVGPointList", "Object");
checkParent("SVGPolygonElement", "SVGGeometryElement");
checkParent("SVGPolylineElement", "SVGGeometryElement");
checkParent("SVGPreserveAspectRatio", "Object");
checkParent("SVGRadialGradientElement", "SVGGradientElement");
checkParent("SVGRect", "Object");
checkParent("SVGRectElement", "SVGGeometryElement");
checkParent("SVGSVGElement", "SVGGraphicsElement");
checkParent("SVGScriptElement", "SVGElement");
checkParent("SVGSetElement", "SVGAnimationElement");
checkParent("SVGStopElement", "SVGElement");
checkParent("SVGStringList", "Object");
checkParent("SVGStyleElement", "SVGElement");
checkParent("SVGSwitchElement", "SVGGraphicsElement");
checkParent("SVGSymbolElement", "SVGGraphicsElement");
checkParent("SVGTRefElement", "SVGTextPositioningElement");
checkParent("SVGTSpanElement", "SVGTextPositioningElement");
checkParent("SVGTextContentElement", "SVGGraphicsElement");
checkParent("SVGTextElement", "SVGTextPositioningElement");
checkParent("SVGTextPathElement", "SVGTextContentElement");
checkParent("SVGTextPositioningElement", "SVGTextContentElement");
checkParent("SVGTitleElement", "SVGElement");
checkParent("SVGTransform", "Object");
checkParent("SVGTransformList", "Object");
checkParent("SVGUseElement", "SVGGraphicsElement");
checkParent("SVGVKernElement", "SVGElement");
checkParent("SVGViewElement", "SVGElement");
checkParent("SVGViewSpec", "Object");
checkParent("SVGZoomEvent", "UIEvent");
checkParent("TimeEvent", "Event");
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
