Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE HTML>
<title>SVGLengthList, appendItem()</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/SVGLengthList-helper.js"></script>
<svg width="200" height="200">
<text id="text1" x="500 50 100 900 1000" y="50">ABC</text>
<text id="text2" x="50 100 1000" y="100">ABC</text>
</svg>
<script>
test(function() {
// This is a test of the SVGLengthList::appendItem() API.
var svg = document.querySelector("svg");
var list1 = document.getElementById("text1").x.baseVal;
var list2 = document.getElementById("text2").x.baseVal;
// Create a new SVGLength object, with value=150.
var newLength1 = svg.createSVGLength();
newLength1.value = 150;
assert_equals(newLength1.value, 150);
// Check initial list state of text1.
assert_list(list1, [500, 50, 100, 900, 1000]);
// Check initial list state of text2.
assert_list(list2, [50, 100, 1000]);
// Append fourth item x=900 to the text1 x list.
assert_equals(list1.appendItem(list1.getItem(3)).value, list1.getItem(5).value);
assert_list(list1, [500, 50, 100, 900, 1000, 900]);
// Append first item x=500 to the text1 x list.
assert_equals(list1.appendItem(list1.getItem(0)).value, list1.getItem(6).value);
assert_list(list1, [500, 50, 100, 900, 1000, 900, 500]);
// Append 'newLength1' to the text1 x list.
assert_equals(list1.appendItem(newLength1).value, list1.getItem(7).value);
assert_list(list1, [500, 50, 100, 900, 1000, 900, 500, 150]);
// Append third and fourth item of the text1 x list to the text2 x list.
assert_equals(list2.appendItem(list1.getItem(2)).value, 100);
assert_equals(list2.appendItem(list1.getItem(3)).value, 900);
assert_list(list1, [500, 50, 100, 900, 1000, 900, 500, 150]);
assert_list(list2, [50, 100, 1000, 100, 900]);
var newLength2 = svg.createSVGLength();
newLength2.value = 150;
assert_equals(newLength2.value, 150);
list1.clear();
// Shuffle around items in text1 and text2 list using appendItem, to get x=50,100,150,... in both lists.
assert_equals(list1.appendItem(list2.getItem(0)).value, 50);
assert_equals(list1.appendItem(list2.getItem(1)).value, 100);
assert_equals(list1.appendItem(newLength2).value, 150);
list2.clear();
assert_equals(list2.appendItem(list1.getItem(0)).value, 50);
assert_equals(list2.appendItem(list1.getItem(1)).value, 100);
assert_equals(list2.appendItem(list1.getItem(2)).value, 150);
assert_list(list1, [50, 100, 150]);
assert_list(list2, [50, 100, 150]);
});
</script>