~ubuntu-branches/ubuntu/maverick/webkit/maverick

« back to all changes in this revision

Viewing changes to JavaScriptCore/API/minidom.js

  • Committer: Bazaar Package Importer
  • Author(s): Mike Hommey
  • Date: 2007-08-19 15:54:12 UTC
  • Revision ID: james.westby@ubuntu.com-20070819155412-uxxg1h9plpghmtbi
Tags: upstream-0~svn25144
ImportĀ upstreamĀ versionĀ 0~svn25144

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// -*- mode: c++; c-basic-offset: 4 -*-
 
2
/*
 
3
 * Copyright (C) 2006 Apple Computer, Inc.  All rights reserved.
 
4
 *
 
5
 * Redistribution and use in source and binary forms, with or without
 
6
 * modification, are permitted provided that the following conditions
 
7
 * are met:
 
8
 * 1. Redistributions of source code must retain the above copyright
 
9
 *    notice, this list of conditions and the following disclaimer.
 
10
 * 2. Redistributions in binary form must reproduce the above copyright
 
11
 *    notice, this list of conditions and the following disclaimer in the
 
12
 *    documentation and/or other materials provided with the distribution.
 
13
 *
 
14
 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
 
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
16
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
17
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 
18
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
19
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
20
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
21
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 
22
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
23
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
24
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
 
25
 */
 
26
 
 
27
function shouldBe(a, b)
 
28
{
 
29
    var evalA;
 
30
    try {
 
31
        evalA = eval(a);
 
32
    } catch(e) {
 
33
        evalA = e;
 
34
    }
 
35
    
 
36
    if (evalA == b || isNaN(evalA) && typeof evalA == 'number' && isNaN(b) && typeof b == 'number')
 
37
        print("PASS: " + a + " should be " + b + " and is.", "green");
 
38
    else
 
39
        print("__FAIL__: " + a + " should be " + b + " but instead is " + evalA + ".", "red");
 
40
}
 
41
 
 
42
function test()
 
43
{
 
44
    print("Node is " + Node);
 
45
    for (var p in Node)
 
46
        print(p + ": " + Node[p]);
 
47
    
 
48
    node = new Node();
 
49
    print("node is " + node);
 
50
    for (var p in node)
 
51
        print(p + ": " + node[p]);
 
52
 
 
53
    child1 = new Node();
 
54
    child2 = new Node();
 
55
    child3 = new Node();
 
56
    
 
57
    node.appendChild(child1);
 
58
    node.appendChild(child2);
 
59
 
 
60
    var childNodes = node.childNodes;
 
61
    
 
62
    for (var i = 0; i < childNodes.length + 1; i++) {
 
63
        print("item " + i + ": " + childNodes.item(i));
 
64
    }
 
65
    
 
66
    for (var i = 0; i < childNodes.length + 1; i++) {
 
67
        print(i + ": " + childNodes[i]);
 
68
    }
 
69
 
 
70
    node.removeChild(child1);
 
71
    node.replaceChild(child3, child2);
 
72
    
 
73
    for (var i = 0; i < childNodes.length + 1; i++) {
 
74
        print("item " + i + ": " + childNodes.item(i));
 
75
    }
 
76
 
 
77
    for (var i = 0; i < childNodes.length + 1; i++) {
 
78
        print(i + ": " + childNodes[i]);
 
79
    }
 
80
 
 
81
    try {
 
82
        node.appendChild(null);
 
83
    } catch(e) {
 
84
        print("caught: " + e);
 
85
    }
 
86
    
 
87
    try {
 
88
        var o = new Object();
 
89
        o.appendChild = node.appendChild;
 
90
        o.appendChild(node);
 
91
    } catch(e) {
 
92
        print("caught: " + e);
 
93
    }
 
94
    
 
95
    try {
 
96
        node.appendChild();
 
97
    } catch(e) {
 
98
        print("caught: " + e);
 
99
    }
 
100
    
 
101
    oldNodeType = node.nodeType;
 
102
    node.nodeType = 1;
 
103
    shouldBe("node.nodeType", oldNodeType);
 
104
    
 
105
    shouldBe("node instanceof Node", true);
 
106
    shouldBe("new Object() instanceof Node", false);
 
107
    
 
108
    print(Node);
 
109
}
 
110
 
 
111
test();