1f68fb24de5d94b9e9c9363a3f3dd97051bb2471
[WebKit-https.git] / LayoutTests / fast / dom / MicroData / itemprop-add-remove-tokens.html
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 <p>This tests that itemProp attribute must update correctly when token have been added or removed.</p>
9 <div id="console"></div>
10 <script>
11 var element = createElement('div', {});
12
13 debug("itemProp.add must reflect correctly.");
14 element.itemProp.add('foo');
15 element.itemProp.add('FOO');
16 shouldBeTrue("element.itemProp.length == 2");
17 shouldBeTrue("element.itemProp.toString() == 'foo FOO'");
18 shouldBe("element.itemProp[0]", "'foo'");
19 shouldBe("element.itemProp[1]", "'FOO'");
20
21 debug("<br>itemProp.add must not make any changes if an existing token is added.");
22 element.itemProp.add('foo');
23 shouldBeTrue("element.itemProp.length == 2");
24 shouldBeTrue("element.itemProp.toString() == 'foo FOO'");
25
26 debug("<br>itemProp.remove must reflect correctly.");
27 element.itemProp.remove('foo');
28 shouldBeTrue("element.itemProp.length == 1");
29 shouldBeFalse("element.itemProp.contains('foo')")
30 shouldBeTrue("element.itemProp.toString() == 'FOO'");
31
32 debug("<br>itemProp.remove must not make any changes if a non-existing token is removed.");
33 element.itemProp.remove('foo');
34 shouldBeTrue("element.itemProp.length == 1");
35 shouldBeFalse("element.itemProp.contains('foo')");
36 shouldBeTrue("element.itemProp.toString() == 'FOO'");
37
38 debug("<br>itemProp.length must be 0 when all tokens are removed.");
39 element.itemProp.remove('FOO');
40 shouldBeTrue("element.itemProp.length == 0");
41 shouldBeFalse("element.itemProp.contains('foo')");
42 shouldBeFalse("element.itemProp.contains('FOO')");
43
44 var successfullyParsed = true;
45 </script>
46 <script src="../../js/resources/js-test-post.js"></script>
47 </body>
48 </html>