| 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 | 
|---|