Index: LayoutTests/svg/dom/svg2-inheritance.html |
diff --git a/LayoutTests/svg/dom/svg2-inheritance.html b/LayoutTests/svg/dom/svg2-inheritance.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f9aed920dde46544eb52ecd94baeb973294d69de |
--- /dev/null |
+++ b/LayoutTests/svg/dom/svg2-inheritance.html |
@@ -0,0 +1,151 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<link rel="help" href="http://www.w3.org/TR/2013/WD-SVG2-20130618/" /> |
+<script src="../../fast/js/resources/js-test-pre.js"></script> |
+</head> |
+<body> |
+<script> |
+description("Validates the SVG2 inheritance model."); |
+ |
+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 " + parentPrototype.constructor.name + " 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("SVGElementInstance", "EventTarget"); |
+checkParent("SVGElementInstanceList", "Object"); |
+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", "SVGElement"); |
+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="../../fast/js/resources/js-test-post.js"></script> |
+</body> |
+</html> |