Commit 59d11b3d authored by shanmuga.m's avatar shanmuga.m Committed by Commit bot

Convert LayoutTests/svg/dom/SVGLengthList*.html js-tests.js to testharness.js based tests

BUG=636710

Review-Url: https://codereview.chromium.org/2340733002
Cr-Commit-Position: refs/heads/master@{#418809}
parent 0e549df1
ABC
ABC
ABC
This is a test of the SVGLengthList::appendItem() API.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Create a new SVGLength object, with value=150
PASS newLength1.value is 150
Check initial list state of text1
PASS text1.x.baseVal.numberOfItems is 5
PASS text1.x.baseVal.getItem(0).value is 500
PASS text1.x.baseVal.getItem(1).value is 50
PASS text1.x.baseVal.getItem(2).value is 100
PASS text1.x.baseVal.getItem(3).value is 900
PASS text1.x.baseVal.getItem(4).value is 1000
PASS text1.x.baseVal.getItem(5) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (5) is greater than or equal to the maximum bound (5)..
Check initial list state of text2
PASS text2.x.baseVal.numberOfItems is 3
PASS text2.x.baseVal.getItem(0).value is 50
PASS text2.x.baseVal.getItem(1).value is 100
PASS text2.x.baseVal.getItem(2).value is 1000
PASS text2.x.baseVal.getItem(3) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (3) is greater than or equal to the maximum bound (3)..
Append fourth item x=900 to the text1 x list
PASS text1.x.baseVal.appendItem(text1.x.baseVal.getItem(3)) is text1.x.baseVal.getItem(5)
PASS text1.x.baseVal.numberOfItems is 6
PASS text1.x.baseVal.getItem(0).value is 500
PASS text1.x.baseVal.getItem(1).value is 50
PASS text1.x.baseVal.getItem(2).value is 100
PASS text1.x.baseVal.getItem(3).value is 900
PASS text1.x.baseVal.getItem(4).value is 1000
PASS text1.x.baseVal.getItem(5).value is 900
PASS text1.x.baseVal.getItem(6) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (6) is greater than or equal to the maximum bound (6)..
Append first item x=500 to the text1 x list
PASS text1.x.baseVal.appendItem(text1.x.baseVal.getItem(0)) is text1.x.baseVal.getItem(6)
PASS text1.x.baseVal.numberOfItems is 7
PASS text1.x.baseVal.getItem(0).value is 500
PASS text1.x.baseVal.getItem(1).value is 50
PASS text1.x.baseVal.getItem(2).value is 100
PASS text1.x.baseVal.getItem(3).value is 900
PASS text1.x.baseVal.getItem(4).value is 1000
PASS text1.x.baseVal.getItem(5).value is 900
PASS text1.x.baseVal.getItem(6).value is 500
PASS text1.x.baseVal.getItem(7) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (7) is greater than or equal to the maximum bound (7)..
Append 'newLength1' to the text1 x list
PASS text1.x.baseVal.appendItem(newLength1) is text1.x.baseVal.getItem(7)
PASS text1.x.baseVal.numberOfItems is 8
PASS text1.x.baseVal.getItem(0).value is 500
PASS text1.x.baseVal.getItem(1).value is 50
PASS text1.x.baseVal.getItem(2).value is 100
PASS text1.x.baseVal.getItem(3).value is 900
PASS text1.x.baseVal.getItem(4).value is 1000
PASS text1.x.baseVal.getItem(5).value is 900
PASS text1.x.baseVal.getItem(6).value is 500
PASS text1.x.baseVal.getItem(7).value is 150
PASS text1.x.baseVal.getItem(8) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (8) is greater than or equal to the maximum bound (8)..
Append third and fourth item of the text1 x list to the text2 x list
PASS text2.x.baseVal.appendItem(text1.x.baseVal.getItem(2)).value is 100
PASS text2.x.baseVal.appendItem(text1.x.baseVal.getItem(3)).value is 900
PASS text1.x.baseVal.numberOfItems is 8
PASS text1.x.baseVal.getItem(0).value is 500
PASS text1.x.baseVal.getItem(1).value is 50
PASS text1.x.baseVal.getItem(2).value is 100
PASS text1.x.baseVal.getItem(3).value is 900
PASS text1.x.baseVal.getItem(4).value is 1000
PASS text1.x.baseVal.getItem(5).value is 900
PASS text1.x.baseVal.getItem(6).value is 500
PASS text1.x.baseVal.getItem(7).value is 150
PASS text1.x.baseVal.getItem(8) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (8) is greater than or equal to the maximum bound (8)..
PASS text2.x.baseVal.numberOfItems is 5
PASS text2.x.baseVal.getItem(0).value is 50
PASS text2.x.baseVal.getItem(1).value is 100
PASS text2.x.baseVal.getItem(2).value is 1000
PASS text2.x.baseVal.getItem(3).value is 100
PASS text2.x.baseVal.getItem(4).value is 900
PASS text2.x.baseVal.getItem(5) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (5) is greater than or equal to the maximum bound (5)..
PASS newLength2.value is 150
PASS text1.x.baseVal.clear() is undefined.
Shuffle around items in text1 and text2 list using appendItem, to get x=50,100,150,... in both lists
PASS text1.x.baseVal.appendItem(text2.x.baseVal.getItem(0)).value is 50
PASS text1.x.baseVal.appendItem(text2.x.baseVal.getItem(1)).value is 100
PASS text1.x.baseVal.appendItem(newLength2).value is 150
PASS text2.x.baseVal.clear() is undefined.
PASS text2.x.baseVal.appendItem(text1.x.baseVal.getItem(0)).value is 50
PASS text2.x.baseVal.appendItem(text1.x.baseVal.getItem(1)).value is 100
PASS text2.x.baseVal.appendItem(text1.x.baseVal.getItem(2)).value is 150
PASS text1.x.baseVal.numberOfItems is 3
PASS text1.x.baseVal.getItem(0).value is 50
PASS text1.x.baseVal.getItem(1).value is 100
PASS text1.x.baseVal.getItem(2).value is 150
PASS text1.x.baseVal.getItem(4) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (4) is greater than the maximum bound (3)..
PASS text2.x.baseVal.numberOfItems is 3
PASS text2.x.baseVal.getItem(0).value is 50
PASS text2.x.baseVal.getItem(1).value is 100
PASS text2.x.baseVal.getItem(2).value is 150
PASS text2.x.baseVal.getItem(6) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (6) is greater than the maximum bound (3)..
The test passes if you only see 'PASS' messages, and all three text elements on top look the same
PASS successfullyParsed is true
TEST COMPLETE
<!DOCTYPE HTML>
<title>SVGLengthList, appendItem()</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.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_equals(list1.numberOfItems, 5);
assert_equals(list1.getItem(0).value, 500);
assert_equals(list1.getItem(1).value, 50);
assert_equals(list1.getItem(2).value, 100);
assert_equals(list1.getItem(3).value, 900);
assert_equals(list1.getItem(4).value, 1000);
assert_throws("IndexSizeError", function() { list1.getItem(5); });
// Check initial list state of text2.
assert_equals(list2.numberOfItems, 3);
assert_equals(list2.getItem(0).value, 50);
assert_equals(list2.getItem(1).value, 100);
assert_equals(list2.getItem(2).value, 1000);
assert_throws("IndexSizeError", function() { list2.getItem(3); });
// Append fourth item x=900 to the text1 x list.
assert_equals(list1.appendItem(list1.getItem(3)).value, list1.getItem(5).value);
assert_equals(list1.numberOfItems, 6);
assert_equals(list1.getItem(0).value, 500);
assert_equals(list1.getItem(1).value, 50);
assert_equals(list1.getItem(2).value, 100);
assert_equals(list1.getItem(3).value, 900);
assert_equals(list1.getItem(4).value, 1000);
assert_equals(list1.getItem(5).value, 900);
assert_throws("IndexSizeError", function() { list1.getItem(6); });
// Append first item x=500 to the text1 x list.
assert_equals(list1.appendItem(list1.getItem(0)).value, list1.getItem(6).value);
assert_equals(list1.numberOfItems, 7);
assert_equals(list1.getItem(0).value, 500);
assert_equals(list1.getItem(1).value, 50);
assert_equals(list1.getItem(2).value, 100);
assert_equals(list1.getItem(3).value, 900);
assert_equals(list1.getItem(4).value, 1000);
assert_equals(list1.getItem(5).value, 900);
assert_equals(list1.getItem(6).value, 500);
assert_throws("IndexSizeError", function() { list1.getItem(7); });
// Append 'newLength1' to the text1 x list.
assert_equals(list1.appendItem(newLength1).value, list1.getItem(7).value);
assert_equals(list1.numberOfItems, 8);
assert_equals(list1.getItem(0).value, 500);
assert_equals(list1.getItem(1).value, 50);
assert_equals(list1.getItem(2).value, 100);
assert_equals(list1.getItem(3).value, 900);
assert_equals(list1.getItem(4).value, 1000);
assert_equals(list1.getItem(5).value, 900);
assert_equals(list1.getItem(6).value, 500);
assert_equals(list1.getItem(7).value, 150);
assert_throws("IndexSizeError", function() { list1.getItem(8); });
// 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_equals(list1.numberOfItems, 8);
assert_equals(list1.getItem(0).value, 500);
assert_equals(list1.getItem(1).value, 50);
assert_equals(list1.getItem(2).value, 100);
assert_equals(list1.getItem(3).value, 900);
assert_equals(list1.getItem(4).value, 1000);
assert_equals(list1.getItem(5).value, 900);
assert_equals(list1.getItem(6).value, 500);
assert_equals(list1.getItem(7).value, 150);
assert_throws("IndexSizeError", function() { list1.getItem(8); });
assert_equals(list2.numberOfItems, 5);
assert_equals(list2.getItem(0).value, 50);
assert_equals(list2.getItem(1).value, 100);
assert_equals(list2.getItem(2).value, 1000);
assert_equals(list2.getItem(3).value, 100);
assert_equals(list2.getItem(4).value, 900);
assert_throws("IndexSizeError", function() { list2.getItem(5); });
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_equals(list1.numberOfItems, 3);
assert_equals(list1.getItem(0).value, 50);
assert_equals(list1.getItem(1).value, 100);
assert_equals(list1.getItem(2).value, 150);
assert_throws("IndexSizeError", function() { list1.getItem(4); });
assert_equals(list2.numberOfItems, 3);
assert_equals(list2.getItem(0).value, 50);
assert_equals(list2.getItem(1).value, 100);
assert_equals(list2.getItem(2).value, 150);
assert_throws("IndexSizeError", function() { list2.getItem(6); });
});
</script>
\ No newline at end of file
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>window.enablePixelTesting = true;</script>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<svg id="svg" xmlns="http://www.w3.org/2000/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>
<text id="reference" x="50 100 150" y="150">ABC</text>
</svg>
<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
<![CDATA[
description("This is a test of the SVGLengthList::appendItem() API.");
var svg = document.getElementById("svg");
var text1 = document.getElementById("text1");
var text2 = document.getElementById("text2");
debug("");
debug("Create a new SVGLength object, with value=150");
var newLength1 = svg.createSVGLength();
newLength1.value = 150;
shouldBe("newLength1.value", "150");
debug("");
debug("Check initial list state of text1");
shouldBe("text1.x.baseVal.numberOfItems", "5");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "50");
shouldBe("text1.x.baseVal.getItem(2).value", "100");
shouldBe("text1.x.baseVal.getItem(3).value", "900");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldThrow("text1.x.baseVal.getItem(5)");
debug("");
debug("Check initial list state of text2");
shouldBe("text2.x.baseVal.numberOfItems", "3");
shouldBe("text2.x.baseVal.getItem(0).value", "50");
shouldBe("text2.x.baseVal.getItem(1).value", "100");
shouldBe("text2.x.baseVal.getItem(2).value", "1000");
shouldThrow("text2.x.baseVal.getItem(3)");
debug("");
debug("Append fourth item x=900 to the text1 x list");
shouldBe("text1.x.baseVal.appendItem(text1.x.baseVal.getItem(3))", "text1.x.baseVal.getItem(5)");
shouldBe("text1.x.baseVal.numberOfItems", "6");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "50");
shouldBe("text1.x.baseVal.getItem(2).value", "100");
shouldBe("text1.x.baseVal.getItem(3).value", "900");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldBe("text1.x.baseVal.getItem(5).value", "900");
shouldThrow("text1.x.baseVal.getItem(6)");
debug("");
debug("Append first item x=500 to the text1 x list");
shouldBe("text1.x.baseVal.appendItem(text1.x.baseVal.getItem(0))", "text1.x.baseVal.getItem(6)");
shouldBe("text1.x.baseVal.numberOfItems", "7");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "50");
shouldBe("text1.x.baseVal.getItem(2).value", "100");
shouldBe("text1.x.baseVal.getItem(3).value", "900");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldBe("text1.x.baseVal.getItem(5).value", "900");
shouldBe("text1.x.baseVal.getItem(6).value", "500");
shouldThrow("text1.x.baseVal.getItem(7)");
debug("");
debug("Append 'newLength1' to the text1 x list");
shouldBe("text1.x.baseVal.appendItem(newLength1)", "text1.x.baseVal.getItem(7)");
shouldBe("text1.x.baseVal.numberOfItems", "8");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "50");
shouldBe("text1.x.baseVal.getItem(2).value", "100");
shouldBe("text1.x.baseVal.getItem(3).value", "900");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldBe("text1.x.baseVal.getItem(5).value", "900");
shouldBe("text1.x.baseVal.getItem(6).value", "500");
shouldBe("text1.x.baseVal.getItem(7).value", "150");
shouldThrow("text1.x.baseVal.getItem(8)");
debug("");
debug("Append third and fourth item of the text1 x list to the text2 x list");
shouldBe("text2.x.baseVal.appendItem(text1.x.baseVal.getItem(2)).value", "100");
shouldBe("text2.x.baseVal.appendItem(text1.x.baseVal.getItem(3)).value", "900");
shouldBe("text1.x.baseVal.numberOfItems", "8");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "50");
shouldBe("text1.x.baseVal.getItem(2).value", "100");
shouldBe("text1.x.baseVal.getItem(3).value", "900");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldBe("text1.x.baseVal.getItem(5).value", "900");
shouldBe("text1.x.baseVal.getItem(6).value", "500");
shouldBe("text1.x.baseVal.getItem(7).value", "150");
shouldThrow("text1.x.baseVal.getItem(8)");
shouldBe("text2.x.baseVal.numberOfItems", "5");
shouldBe("text2.x.baseVal.getItem(0).value", "50");
shouldBe("text2.x.baseVal.getItem(1).value", "100");
shouldBe("text2.x.baseVal.getItem(2).value", "1000");
shouldBe("text2.x.baseVal.getItem(3).value", "100");
shouldBe("text2.x.baseVal.getItem(4).value", "900");
shouldThrow("text2.x.baseVal.getItem(5)");
var newLength2 = svg.createSVGLength();
newLength2.value = 150;
shouldBe("newLength2.value", "150");
shouldBeUndefined("text1.x.baseVal.clear()");
debug("");
debug("Shuffle around items in text1 and text2 list using appendItem, to get x=50,100,150,... in both lists");
shouldBe("text1.x.baseVal.appendItem(text2.x.baseVal.getItem(0)).value", "50");
shouldBe("text1.x.baseVal.appendItem(text2.x.baseVal.getItem(1)).value", "100");
shouldBe("text1.x.baseVal.appendItem(newLength2).value", "150");
shouldBeUndefined("text2.x.baseVal.clear()");
shouldBe("text2.x.baseVal.appendItem(text1.x.baseVal.getItem(0)).value", "50");
shouldBe("text2.x.baseVal.appendItem(text1.x.baseVal.getItem(1)).value", "100");
shouldBe("text2.x.baseVal.appendItem(text1.x.baseVal.getItem(2)).value", "150");
shouldBe("text1.x.baseVal.numberOfItems", "3");
shouldBe("text1.x.baseVal.getItem(0).value", "50");
shouldBe("text1.x.baseVal.getItem(1).value", "100");
shouldBe("text1.x.baseVal.getItem(2).value", "150");
shouldThrow("text1.x.baseVal.getItem(4)");
shouldBe("text2.x.baseVal.numberOfItems", "3");
shouldBe("text2.x.baseVal.getItem(0).value", "50");
shouldBe("text2.x.baseVal.getItem(1).value", "100");
shouldBe("text2.x.baseVal.getItem(2).value", "150");
shouldThrow("text2.x.baseVal.getItem(6)");
debug("");
debug("The test passes if you only see 'PASS' messages, and all three text elements on top look the same");
debug("");
]]>
</script>
</body>
</html>
This is a test of the SVGLengthList::appendItem() API.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS list2.numberOfItems is 0
PASS list1.numberOfItems is 4
PASS list1.getItem(0).value is 1
PASS list1.getItem(1).value is 2
PASS list1.getItem(2).value is 3
PASS list1.getItem(3).value is 10
PASS list2.numberOfItems is 0
The test passes if you only see 'PASS' messages, and test doesn't crash
PASS successfullyParsed is true
TEST COMPLETE
ABC
ABC
<html> <!DOCTYPE HTML>
<head> <title>SVGLengthList, appendItem() from cleared list</title>
<script src="../../resources/js-test.js"></script> <script src="../../resources/testharness.js"></script>
</head> <script src="../../resources/testharnessreport.js"></script>
<body> <svg width="200" height="200">
<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<text id="text1" x="1 2 3">ABC</text> <text id="text1" x="1 2 3">ABC</text>
<text id="text2" x="10 20">ABC</text> <text id="text2" x="10 20">ABC</text>
</svg> </svg>
<script> <script>
description("This is a test of the SVGLengthList::appendItem() API."); test(function() {
// This is a test of the SVGLengthList::appendItem() API.
var list1 = document.getElementById("text1").x.baseVal;
var list2 = document.getElementById("text2").x.baseVal;
var itemFromClearedList = list2.getItem(0);
list2.clear();
shouldBe("list2.numberOfItems", "0");
list1.appendItem(itemFromClearedList); var list1 = document.getElementById("text1").x.baseVal;
var list2 = document.getElementById("text2").x.baseVal;
shouldBe("list1.numberOfItems", "4");
shouldBe("list1.getItem(0).value", "1");
shouldBe("list1.getItem(1).value", "2");
shouldBe("list1.getItem(2).value", "3");
shouldBe("list1.getItem(3).value", "10");
shouldBe("list2.numberOfItems", "0"); var itemFromClearedList = list2.getItem(0);
list2.clear();
assert_equals(list2.numberOfItems, 0);
debug("The test passes if you only see 'PASS' messages, and test doesn't crash"); list1.appendItem(itemFromClearedList);
assert_equals(list1.numberOfItems, 4);
assert_equals(list1.getItem(0).value, 1);
assert_equals(list1.getItem(1).value, 2);
assert_equals(list1.getItem(2).value, 3);
assert_equals(list1.getItem(3).value, 10);
gc(); assert_equals(list2.numberOfItems, 0);
</script> });
</body> </script>
</html> \ No newline at end of file
<!DOCTYPE HTML>
<title>SVGLengthList, basics</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<text x="500 1000 1500" y="50"> ABC </text>
</svg>
<script>
test(function() {
var text1 = document.querySelector("text");
var xBaseValList = text1.x.baseVal;
var xAnimValList = text1.x.animVal;
// Spec: The object referenced by animVal will always be distinct from the one referenced by baseVal, even when the attribute is not animated.
assert_not_equals(xBaseValList, xAnimValList);
assert_equals(xBaseValList.numberOfItems, 3);
assert_equals(xAnimValList.numberOfItems, 3);
assert_equals(xBaseValList.getItem(0).value, 500);
assert_equals(xBaseValList.getItem(1).value, 1000);
assert_equals(xBaseValList.getItem(2).value, 1500);
// Test uncommon arguments for initialize().
assert_throws(new TypeError(), function() { xBaseValList.initialize(30); });
assert_throws(new TypeError(), function() { xBaseValList.initialize('aString'); });
assert_throws(new TypeError(), function() { xBaseValList.initialize(text1); });
assert_throws(new TypeError(), function() { xBaseValList.initialize(null); });
// Test uncommon arguments for getItem().
assert_throws("IndexSizeError", function() { xBaseValList.getItem(30); });
assert_equals(xBaseValList.getItem('aString').value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.getItem(text1).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.getItem(null).value, xBaseValList.getItem(0).value);
// Test uncommon arguments for insertItemBefore().
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(30); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore('aString'); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(text1); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(null); });
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), 'aString').value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(xBaseValList.getItem(0).value, 1000);
assert_equals(xBaseValList.getItem(1).value, 500);
assert_equals(xBaseValList.getItem(2).value, 1000);
assert_equals(xBaseValList.getItem(3).value, 1500);
assert_equals(text1.getAttribute('x'), "1000 500 1000 1500");
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), text1).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 5);
assert_equals(xBaseValList.getItem(0).value, 500);
assert_equals(xBaseValList.getItem(1).value, 1000);
assert_equals(xBaseValList.getItem(2).value, 500);
assert_equals(xBaseValList.getItem(3).value, 1000);
assert_equals(xBaseValList.getItem(4).value, 1500);
assert_equals(text1.getAttribute('x'), "500 1000 500 1000 1500");
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), null).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 6);
assert_equals(xBaseValList.getItem(0).value, 1000);
assert_equals(xBaseValList.getItem(1).value, 500);
assert_equals(xBaseValList.getItem(2).value, 1000);
assert_equals(xBaseValList.getItem(3).value, 500);
assert_equals(xBaseValList.getItem(4).value, 1000);
assert_equals(xBaseValList.getItem(5).value, 1500);
assert_equals(text1.getAttribute('x'), "1000 500 1000 500 1000 1500");
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), 0).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 7);
assert_equals(xBaseValList.getItem(0).value, 500);
assert_equals(xBaseValList.getItem(1).value, 1000);
assert_equals(xBaseValList.getItem(2).value, 500);
assert_equals(xBaseValList.getItem(3).value, 1000);
assert_equals(xBaseValList.getItem(4).value, 500);
assert_equals(xBaseValList.getItem(5).value, 1000);
assert_equals(xBaseValList.getItem(6).value, 1500);
assert_equals(text1.getAttribute('x'), "500 1000 500 1000 500 1000 1500");
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(30, 0); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore('aString', 0); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(text1, 0); });
assert_throws(new TypeError(), function() { xBaseValList.insertItemBefore(null, 0); });
// Set x='1 2 3 4' for text1.
text1.setAttribute('x', '1 2 3 4');
// Test edge cases for insertItemBefore().
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(3), 3).value, xBaseValList.getItem(3).value);
assert_equals(text1.getAttribute('x'), "1 2 3 4 4");
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), 5).value, xBaseValList.getItem(5).value);
assert_equals(text1.getAttribute('x'), "1 2 3 4 4 2");
assert_equals(xBaseValList.insertItemBefore(xBaseValList.getItem(1), 0).value, xBaseValList.getItem(0).value);
assert_equals(text1.getAttribute('x'), "2 1 2 3 4 4 2");
// Set x='1 2 3 4' for text1.
text1.setAttribute('x', '1 2 3 4');
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(xBaseValList.getItem(0).value, 1);
assert_equals(xBaseValList.getItem(1).value, 2);
assert_equals(xBaseValList.getItem(2).value, 3);
assert_equals(xBaseValList.getItem(3).value, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 4");
// Test uncommon arguments for replaceItem().
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(30); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem('aString'); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(text1); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(null); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(30, 0); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem('aString', 0); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(text1, 0); });
assert_throws(new TypeError(), function() { xBaseValList.replaceItem(null, 0); });
// Test uncommon values for indexed setter.
assert_throws(new TypeError(), function() { xBaseValList[0] = 30; });
assert_throws(new TypeError(), function() { xBaseValList[0] = 'aString'; });
assert_throws(new TypeError(), function() { xBaseValList[0] = text1; });
assert_throws(new TypeError(), function() { xBaseValList[0] = null; });
assert_equals(xBaseValList.replaceItem(xBaseValList.getItem(0), 0).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(xBaseValList.getItem(0).value, 1);
assert_equals(xBaseValList.getItem(1).value, 2);
assert_equals(xBaseValList.getItem(2).value, 3);
assert_equals(xBaseValList.getItem(3).value, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 4");
assert_equals(xBaseValList.replaceItem(xBaseValList.getItem(0), 'aString').value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(xBaseValList.getItem(0).value, 1);
assert_equals(xBaseValList.getItem(1).value, 2);
assert_equals(xBaseValList.getItem(2).value, 3);
assert_equals(xBaseValList.getItem(3).value, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 4");
assert_equals(xBaseValList.replaceItem(xBaseValList.getItem(0), text1).value, xBaseValList.getItem(0).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 4");
// Set x='1 2 3 4' for text1.
text1.setAttribute('x', '1 2 3 4');
// Test edge cases for replaceItem().
assert_equals(xBaseValList.replaceItem(xBaseValList.getItem(3), 3).value, xBaseValList.getItem(3).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 4");
assert_equals(xBaseValList.replaceItem(xBaseValList.getItem(1), 3).value, xBaseValList.getItem(3).value);
assert_equals(xBaseValList.numberOfItems, 4);
assert_equals(text1.getAttribute('x'), "1 2 3 2");
assert_throws("IndexSizeError", function() { xBaseValList.replaceItem(xBaseValList.getItem(3), 4); });
// Set x='1 2 3 4' for text1.
text1.setAttribute('x', '1 2 3 4');
// Test uncommon arguments for removeItem().
assert_throws("IndexSizeError", function() { xBaseValList.removeItem(30); });
assert_equals(xBaseValList.removeItem(0).value, 1);
assert_equals(xBaseValList.numberOfItems, 3);
assert_equals(xBaseValList.getItem(0).value, 2);
assert_equals(xBaseValList.getItem(1).value, 3);
assert_equals(xBaseValList.getItem(2).value, 4);
assert_equals(text1.getAttribute('x'), "2 3 4");
assert_equals(xBaseValList.removeItem(text1).value, 2);
assert_equals(xBaseValList.numberOfItems, 2);
assert_equals(xBaseValList.getItem(0).value, 3);
assert_equals(xBaseValList.getItem(1).value, 4);
assert_equals(text1.getAttribute('x'), "3 4");
// Test uncommon arguments for appendItem().
assert_throws(new TypeError(), function() { xBaseValList.appendItem(30); });
assert_throws(new TypeError(), function() { xBaseValList.appendItem('aString'); });
assert_throws(new TypeError(), function() { xBaseValList.appendItem(text1); });
assert_throws(new TypeError(), function() { xBaseValList.appendItem(null); });
// Testing animVal clear throws.
assert_throws("NoModificationAllowedError", function() { xAnimValList.clear(); });
xBaseValList.clear();
});
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>window.enablePixelTesting = true;</script>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<text id="text1" x="500 1000 1500" y="50"> ABC </text>
</svg>
<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
<![CDATA[
description("This is a test of the simple SVGLengthList API parts.");
if (window.testRunner)
testRunner.dumpAsText();
var text1 = document.getElementById("text1");
// Spec: The object referenced by animVal will always be distinct from the one referenced by baseVal, even when the attribute is not animated.
shouldBeTrue("text1.x.baseVal != text1.x.animVal");
shouldBe("text1.x.baseVal.numberOfItems", "3");
shouldBe("text1.x.animVal.numberOfItems", "3");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "1000");
shouldBe("text1.x.baseVal.getItem(2).value", "1500");
debug("");
debug("Test uncommon arguments for initialize()");
shouldThrow("text1.x.baseVal.initialize(30)");
shouldThrow("text1.x.baseVal.initialize('aString')");
shouldThrow("text1.x.baseVal.initialize(text1)");
shouldThrow("text1.x.baseVal.initialize(null)");
debug("");
debug("Test uncommon arguments for getItem()");
shouldThrow("text1.x.baseVal.getItem(30)");
shouldBe("text1.x.baseVal.getItem('aString')", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.getItem(text1)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.getItem(null)", "text1.x.baseVal.getItem(0)");
debug("");
debug("Test uncommon arguments for insertItemBefore()");
shouldThrow("text1.x.baseVal.insertItemBefore(30)");
shouldThrow("text1.x.baseVal.insertItemBefore('aString')");
shouldThrow("text1.x.baseVal.insertItemBefore(text1)");
shouldThrow("text1.x.baseVal.insertItemBefore(null)");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 'aString')", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBe("text1.x.baseVal.getItem(0).value", "1000");
shouldBe("text1.x.baseVal.getItem(1).value", "500");
shouldBe("text1.x.baseVal.getItem(2).value", "1000");
shouldBe("text1.x.baseVal.getItem(3).value", "1500");
shouldBeEqualToString("text1.getAttribute('x')", "1000 500 1000 1500");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), text1)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "5");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "1000");
shouldBe("text1.x.baseVal.getItem(2).value", "500");
shouldBe("text1.x.baseVal.getItem(3).value", "1000");
shouldBe("text1.x.baseVal.getItem(4).value", "1500");
shouldBeEqualToString("text1.getAttribute('x')", "500 1000 500 1000 1500");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), null)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "6");
shouldBe("text1.x.baseVal.getItem(0).value", "1000");
shouldBe("text1.x.baseVal.getItem(1).value", "500");
shouldBe("text1.x.baseVal.getItem(2).value", "1000");
shouldBe("text1.x.baseVal.getItem(3).value", "500");
shouldBe("text1.x.baseVal.getItem(4).value", "1000");
shouldBe("text1.x.baseVal.getItem(5).value", "1500");
shouldBeEqualToString("text1.getAttribute('x')", "1000 500 1000 500 1000 1500");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 0)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "7");
shouldBe("text1.x.baseVal.getItem(0).value", "500");
shouldBe("text1.x.baseVal.getItem(1).value", "1000");
shouldBe("text1.x.baseVal.getItem(2).value", "500");
shouldBe("text1.x.baseVal.getItem(3).value", "1000");
shouldBe("text1.x.baseVal.getItem(4).value", "500");
shouldBe("text1.x.baseVal.getItem(5).value", "1000");
shouldBe("text1.x.baseVal.getItem(6).value", "1500");
shouldBeEqualToString("text1.getAttribute('x')", "500 1000 500 1000 500 1000 1500");
shouldThrow("text1.x.baseVal.insertItemBefore(30, 0)");
shouldThrow("text1.x.baseVal.insertItemBefore('aString', 0)");
shouldThrow("text1.x.baseVal.insertItemBefore(text1, 0)");
shouldThrow("text1.x.baseVal.insertItemBefore(null, 0)");
debug("");
debug("Set x='1 2 3 4' for text1");
shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");
debug("");
debug("Test edge cases for insertItemBefore()");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(3), 3)", "text1.x.baseVal.getItem(3)");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4 4");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 5)", "text1.x.baseVal.getItem(5)");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4 4 2");
shouldBe("text1.x.baseVal.insertItemBefore(text1.x.baseVal.getItem(1), 0)", "text1.x.baseVal.getItem(0)");
shouldBeEqualToString("text1.getAttribute('x')", "2 1 2 3 4 4 2");
debug("");
debug("Set x='1 2 3 4' for text1");
shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBe("text1.x.baseVal.getItem(0).value", "1");
shouldBe("text1.x.baseVal.getItem(1).value", "2");
shouldBe("text1.x.baseVal.getItem(2).value", "3");
shouldBe("text1.x.baseVal.getItem(3).value", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
debug("");
debug("Test uncommon arguments for replaceItem()");
shouldThrow("text1.x.baseVal.replaceItem(30)");
shouldThrow("text1.x.baseVal.replaceItem('aString')");
shouldThrow("text1.x.baseVal.replaceItem(text1)");
shouldThrow("text1.x.baseVal.replaceItem(null)");
shouldThrow("text1.x.baseVal.replaceItem(30, 0)");
shouldThrow("text1.x.baseVal.replaceItem('aString', 0)");
shouldThrow("text1.x.baseVal.replaceItem(text1, 0)");
shouldThrow("text1.x.baseVal.replaceItem(null, 0)");
debug("");
debug("Test uncommon values for indexed setter");
shouldThrow("text1.x.baseVal[0] = 30");
shouldThrow("text1.x.baseVal[0] = 'aString'");
shouldThrow("text1.x.baseVal[0] = text1");
shouldThrow("text1.x.baseVal[0] = null");
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 0)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBe("text1.x.baseVal.getItem(0).value", "1");
shouldBe("text1.x.baseVal.getItem(1).value", "2");
shouldBe("text1.x.baseVal.getItem(2).value", "3");
shouldBe("text1.x.baseVal.getItem(3).value", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), 'aString')", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBe("text1.x.baseVal.getItem(0).value", "1");
shouldBe("text1.x.baseVal.getItem(1).value", "2");
shouldBe("text1.x.baseVal.getItem(2).value", "3");
shouldBe("text1.x.baseVal.getItem(3).value", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(0), text1)", "text1.x.baseVal.getItem(0)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
debug("");
debug("Set x='1 2 3 4' for text1");
shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");
debug("");
debug("Test edge cases for replaceItem()");
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(3), 3)", "text1.x.baseVal.getItem(3)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 4");
shouldBe("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(1), 3)", "text1.x.baseVal.getItem(3)");
shouldBe("text1.x.baseVal.numberOfItems", "4");
shouldBeEqualToString("text1.getAttribute('x')", "1 2 3 2");
shouldThrow("text1.x.baseVal.replaceItem(text1.x.baseVal.getItem(3), 4)");
debug("");
debug("Set x='1 2 3 4' for text1");
shouldBeUndefined("text1.setAttribute('x', '1 2 3 4')");
debug("");
debug("Test uncommon arguments for removeItem()");
shouldThrow("text1.x.baseVal.removeItem(30)");
shouldBe("text1.x.baseVal.removeItem(0).value", "1");
shouldBe("text1.x.baseVal.numberOfItems", "3");
shouldBe("text1.x.baseVal.getItem(0).value", "2");
shouldBe("text1.x.baseVal.getItem(1).value", "3");
shouldBe("text1.x.baseVal.getItem(2).value", "4");
shouldBeEqualToString("text1.getAttribute('x')", "2 3 4");
shouldBe("text1.x.baseVal.removeItem(text1).value", "2");
shouldBe("text1.x.baseVal.numberOfItems", "2");
shouldBe("text1.x.baseVal.getItem(0).value", "3");
shouldBe("text1.x.baseVal.getItem(1).value", "4");
shouldBeEqualToString("text1.getAttribute('x')", "3 4");
debug("");
debug("Test uncommon arguments for appendItem()");
shouldThrow("text1.x.baseVal.appendItem(30)");
shouldThrow("text1.x.baseVal.appendItem('aString')");
shouldThrow("text1.x.baseVal.appendItem(text1)");
shouldThrow("text1.x.baseVal.appendItem(null)");
debug("");
debug("Testing animVal clear throws");
shouldThrow("text1.x.animVal.clear()");
shouldBeUndefined("text1.x.baseVal.clear()");
gc();
]]>
</script>
</body>
</html>
ABC
This is a test of the SVGLengthList::getItem() API.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
Check lengths of text x item lists
PASS text1.x.baseVal.numberOfItems is 3
Test with various index parameters
PASS text1.x.baseVal.getItem(-100) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (4294967196) is greater than the maximum bound (3)..
PASS text1.x.baseVal.getItem(-1) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (4294967295) is greater than the maximum bound (3)..
PASS text1.x.baseVal.getItem(0).value is 50
PASS text1.x.baseVal.getItem(1).value is 100
PASS text1.x.baseVal.getItem(2).value is 150
PASS text1.x.baseVal.getItem(3) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (3) is greater than or equal to the maximum bound (3)..
PASS text1.x.baseVal.getItem(100) threw exception IndexSizeError: Failed to execute 'getItem' on 'SVGLengthList': The index provided (100) is greater than the maximum bound (3)..
PASS successfullyParsed is true
TEST COMPLETE
<!DOCTYPE HTML>
<title>SVGLengthList, getItem()</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<svg width="200" height="200">
<text x="50 100 150" y="50">ABC</text>
</svg>
<script>
test(function() {
// This is a test of the SVGLengthList::getItem() API.
var xList = document.querySelector("text").x.baseVal;
// Check lengths of text x item lists.
assert_equals(xList.numberOfItems, 3);
// Test with various index parameters.
assert_throws("IndexSizeError", function() { xList.getItem(-100); });
assert_throws("IndexSizeError", function() { xList.getItem(-1); });
assert_equals(xList.getItem(0).value, 50);
assert_equals(xList.getItem(1).value, 100);
assert_equals(xList.getItem(2).value, 150);
assert_throws("IndexSizeError", function() { xList.getItem(3); });
assert_throws("IndexSizeError", function() { xList.getItem(100); });
});
</script>
\ No newline at end of file
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>window.enablePixelTesting = true;</script>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="200" height="200">
<text id="text1" x="50 100 150" y="50">ABC</text>
</svg>
<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
<![CDATA[
description("This is a test of the SVGLengthList::getItem() API.");
var svg = document.getElementById("svg");
var text1 = document.getElementById("text1");
debug("Check lengths of text x item lists");
shouldBe("text1.x.baseVal.numberOfItems", "3");
debug("");
debug("Test with various index parameters");
shouldThrow("text1.x.baseVal.getItem(-100)");
shouldThrow("text1.x.baseVal.getItem(-1)");
shouldBe("text1.x.baseVal.getItem(0).value", "50");
shouldBe("text1.x.baseVal.getItem(1).value", "100");
shouldBe("text1.x.baseVal.getItem(2).value", "150");
shouldThrow("text1.x.baseVal.getItem(3)");
shouldThrow("text1.x.baseVal.getItem(100)");
]]>
</script>
</body>
</html>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment