OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <html> | |
3 <head> | |
4 <script src="../../js/resources/js-test-pre.js"></script> | |
5 <script src="resources/microdata-common.js"></script> | |
6 </head> | |
7 <body> | |
8 <script> | |
9 description("Test to ensure that modifing properties of an item which is not att
ached to the DOM tree must update its HTMLPropertiesCollection."); | |
10 var parent = createElement('div', {}, '<div itemprop="foo" id="id1"></div><div i
temscope><div itemprop="bar"></div></div>'); | |
11 var item = parent.childNodes[1]; | |
12 | |
13 shouldBe("item.properties.length", "1"); | |
14 shouldBe("item.properties.item(0)", "item.firstChild"); | |
15 shouldBe("item.properties[0]", "item.firstChild"); | |
16 | |
17 debug(""); | |
18 debug("Add properties through itemref attribute."); | |
19 item.setAttribute("itemref", "id1"); | |
20 shouldBe("item.properties.length", "2"); | |
21 shouldBe("item.properties.item(0)", "parent.firstChild"); | |
22 shouldBe("item.properties[0]", "parent.firstChild"); | |
23 shouldBe("item.properties.item(1)", "item.firstChild"); | |
24 shouldBe("item.properties[1]", "item.firstChild"); | |
25 | |
26 debug(""); | |
27 debug("Add property to ref element"); | |
28 parent.firstChild.appendChild(createElement('div', {itemprop: 'qux'})); | |
29 shouldBe("item.properties.length", "3"); | |
30 shouldBe("item.properties.item(0)", "parent.firstChild"); | |
31 shouldBe("item.properties[0]", "parent.firstChild"); | |
32 shouldBe("item.properties.item(1)", "parent.firstChild.firstChild"); | |
33 shouldBe("item.properties[1]", "parent.firstChild.firstChild"); | |
34 shouldBe("item.properties.item(2)", "item.firstChild"); | |
35 shouldBe("item.properties[2]", "item.firstChild"); | |
36 | |
37 debug(""); | |
38 debug("Add properties direct to the item"); | |
39 item.appendChild(createElement('div', {itemprop: 'baz'})); | |
40 shouldBe("item.properties.length", "4"); | |
41 shouldBe("item.properties.item(3)", "item.childNodes[1]"); | |
42 shouldBe("item.properties[3]", "item.childNodes[1]"); | |
43 | |
44 debug(""); | |
45 debug("Remove property"); | |
46 item.removeChild(item.lastChild); | |
47 shouldBe("item.properties.length", "3"); | |
48 shouldBeNull("item.properties.item(3)"); | |
49 shouldBeUndefined("item.properties[3]"); | |
50 | |
51 debug(""); | |
52 debug("Remove property from ref element"); | |
53 parent.firstChild.removeChild(parent.firstChild.firstChild); | |
54 shouldBe("item.properties.length", "2"); | |
55 shouldBe("item.properties.item(0)", "parent.firstChild"); | |
56 shouldBe("item.properties[0]", "parent.firstChild"); | |
57 shouldBe("item.properties.item(1)", "item.firstChild"); | |
58 shouldBe("item.properties[1]", "item.firstChild"); | |
59 | |
60 debug(""); | |
61 debug("Remove property added through itemref"); | |
62 item.removeAttribute("itemref"); | |
63 shouldBe("item.properties.length", "1"); | |
64 shouldBe("item.properties.item(0)", "item.firstChild"); | |
65 shouldBe("item.properties[0]", "item.firstChild"); | |
66 </script> | |
67 <script src="../../js/resources/js-test-post.js"></script> | |
68 </body> | |
69 </html> | |
OLD | NEW |