diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:15 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2008-12-17 18:05:15 -0800 |
commit | 1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353 (patch) | |
tree | 4457a7306ea5acb43fe05bfe0973b1f7faf97ba2 /JavaScriptCore/API/tests/minidom.js | |
parent | 9364f22aed35e1a1e9d07c121510f80be3ab0502 (diff) | |
download | external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.zip external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.gz external_webkit-1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353.tar.bz2 |
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'JavaScriptCore/API/tests/minidom.js')
-rw-r--r-- | JavaScriptCore/API/tests/minidom.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/JavaScriptCore/API/tests/minidom.js b/JavaScriptCore/API/tests/minidom.js new file mode 100644 index 0000000..4808960 --- /dev/null +++ b/JavaScriptCore/API/tests/minidom.js @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +function shouldBe(a, b) +{ + var evalA; + try { + evalA = eval(a); + } catch(e) { + evalA = e; + } + + if (evalA == b || isNaN(evalA) && typeof evalA == 'number' && isNaN(b) && typeof b == 'number') + print("PASS: " + a + " should be " + b + " and is.", "green"); + else + print("__FAIL__: " + a + " should be " + b + " but instead is " + evalA + ".", "red"); +} + +function test() +{ + print("Node is " + Node); + for (var p in Node) + print(p + ": " + Node[p]); + + node = new Node(); + print("node is " + node); + for (var p in node) + print(p + ": " + node[p]); + + child1 = new Node(); + child2 = new Node(); + child3 = new Node(); + + node.appendChild(child1); + node.appendChild(child2); + + var childNodes = node.childNodes; + + for (var i = 0; i < childNodes.length + 1; i++) { + print("item " + i + ": " + childNodes.item(i)); + } + + for (var i = 0; i < childNodes.length + 1; i++) { + print(i + ": " + childNodes[i]); + } + + node.removeChild(child1); + node.replaceChild(child3, child2); + + for (var i = 0; i < childNodes.length + 1; i++) { + print("item " + i + ": " + childNodes.item(i)); + } + + for (var i = 0; i < childNodes.length + 1; i++) { + print(i + ": " + childNodes[i]); + } + + try { + node.appendChild(null); + } catch(e) { + print("caught: " + e); + } + + try { + var o = new Object(); + o.appendChild = node.appendChild; + o.appendChild(node); + } catch(e) { + print("caught: " + e); + } + + try { + node.appendChild(); + } catch(e) { + print("caught: " + e); + } + + oldNodeType = node.nodeType; + node.nodeType = 1; + shouldBe("node.nodeType", oldNodeType); + + shouldBe("node instanceof Node", true); + shouldBe("new Object() instanceof Node", false); + + print(Node); +} + +test(); |