ce1333c6ce9cf6aea2e1f80543c6c7f8dcff4bfe
[WebKit-https.git] / LayoutTests / fast / dom / prototypes.html
1 <html>
2 <head>
3 <script>
4 function print(message, color) 
5 {
6     var paragraph = document.createElement("div");
7     paragraph.appendChild(document.createTextNode(message));
8     paragraph.style.fontFamily = "monospace";
9     if (color)
10         paragraph.style.color = color;
11     document.getElementById("console").appendChild(paragraph);
12 }
13
14 function shouldBe(a, b)
15 {
16     var evalA;
17     try {
18         evalA = eval(a);
19     } catch(e) {
20         evalA = e;
21     }
22     
23     if (evalA == b)
24         print("PASS: " + a + " should be " + b + " and is.", "green");
25     else
26         print("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".", "red");
27 }
28
29 function test() 
30 {
31     if (window.layoutTestController)
32         layoutTestController.dumpAsText();
33
34     shouldBe("Object.prototype.isPrototypeOf(window.DOMException)", true);
35     shouldBe("Object.prototype.isPrototypeOf(window.Option)", true);
36
37     div = document.createElement('div');
38     div.style.color = "black";
39     cssValue = div.style.getPropertyCSSValue('color'); // actually a CSSPrimitiveValue
40     shouldBe("Object.prototype.isPrototypeOf(cssValue)", true);
41     
42     rgbColor = div.style.getPropertyCSSValue('color').getRGBColorValue();
43     shouldBe("Object.prototype.isPrototypeOf(rgbColor)", true);
44
45     div.style.clip = "rect(0, 0, 0, 0)";
46     rect = div.style.getPropertyCSSValue('clip').getRectValue();
47     shouldBe("Object.prototype.isPrototypeOf(rect)", true);
48
49     styleElement = document.createElement('style');
50     styleElement.appendChild(document.createTextNode("* {}"));
51     headElement = document.getElementsByTagName('head')[0];
52     headElement.appendChild(styleElement);
53     styleSheetList = document.styleSheets;
54     shouldBe("Object.prototype.isPrototypeOf(styleSheetList)", true);
55
56     styleSheet = styleSheetList[0];
57     shouldBe("Object.prototype.isPrototypeOf(styleSheet)", true);
58
59     cssRule = styleSheet.cssRules[0];
60     shouldBe("Object.prototype.isPrototypeOf(cssRule)", true);
61
62     nodeList = document.getElementsByTagName('html');
63     shouldBe("Object.prototype.isPrototypeOf(nodeList)", true);
64
65     var form = document.createElement('form');
66     form.name = 'myForm';
67     document.body.appendChild(form);
68     document.body.appendChild(form.cloneNode(true));
69     namedNodesCollection = document.forms.myForm;
70     shouldBe("Object.prototype.isPrototypeOf(namedNodesCollection)", true);
71 }
72 </script>
73 </head>
74
75 <body onload="test();">
76 <p>This test checks some DOM object prototypes that WebKit has gotten wrong in the past.
77    If the test passes, you'll see a series of 'PASS' messages below.</p>
78 <hr>
79
80 <div id='console'></div>
81
82 </body>
83 </html>