<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description("This test checks the read-only property of SVGTransformList.animVal");

var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect");
var transformBase = rectElement.transform.baseVal;
var transformAnim = rectElement.transform.animVal;
var t = transformBase.createSVGTransformFromMatrix();
var m = svgElement.createSVGMatrix();

debug("");
debug("Check SVGAnimatedTransformList.animVal is a readonly SVGTransformList");
shouldThrow("transformAnim.appendItem(t)");
shouldThrow("transformAnim.clear()");
shouldThrow("transformAnim.initialize(t)");
shouldThrow("transformAnim.insertItemBefore(t, 0)");
shouldThrow("transformAnim.replaceItem(t, 0)");
shouldThrow("transformAnim.removeItem(0)");
shouldThrow("transformAnim(0) = t");

debug("");
debug("Check items of SVGAnimatedTransformList.animVal are readonly SVGTransform");
transformBase.appendItem(t);
t = transformAnim.getItem(0);
m = svgElement.createSVGMatrix();
shouldThrow("t.setScale(2, 2)");
shouldThrow("t.setMatrix(m)");
m = t.matrix;
shouldThrow("m.b = 2");

debug("");
debug("Check detached items from SVGAnimatedTransformList.animVal are not readonly SVGTransform");
t = transformAnim.getItem(0);
transformBase.clear();
m = svgElement.createSVGMatrix();
shouldNotThrow("t.setScale(2, 2)");
shouldNotThrow("t.setMatrix(m)");
m = t.matrix;
shouldNotThrow("m.b = 2");

successfullyParsed = true;
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
