• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2/*
3Copyright © 2001-2004 World Wide Web Consortium,
4(Massachusetts Institute of Technology, European Research Consortium
5for Informatics and Mathematics, Keio University). All
6Rights Reserved. This work is distributed under the W3C® Software License [1] in the
7hope that it will be useful, but WITHOUT ANY WARRANTY; without even
8the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
10[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
11*/
12
13
14
15   /**
16    *  Gets URI that identifies the test.
17    *  @return uri identifier of test
18    */
19function getTargetURI() {
20      return "http://www.w3.org/2001/DOM-Test-Suite/level3/core/textreplacewholetext06";
21   }
22
23var docsLoaded = -1000000;
24var builder = null;
25
26//
27//   This function is called by the testing framework before
28//      running the test suite.
29//
30//   If there are no configuration exceptions, asynchronous
31//        document loading is started.  Otherwise, the status
32//        is set to complete and the exception is immediately
33//        raised when entering the body of the test.
34//
35function setUpPage() {
36   setUpPageStatus = 'running';
37   try {
38     //
39     //   creates test document builder, may throw exception
40     //
41     builder = createConfiguredBuilder();
42       setImplementationAttribute("namespaceAware", true);
43       setImplementationAttribute("expandEntityReferences", true);
44
45      docsLoaded = 0;
46
47      var docRef = null;
48      if (typeof(this.doc) != 'undefined') {
49        docRef = this.doc;
50      }
51      docsLoaded += preload(docRef, "doc", "hc_staff");
52
53       if (docsLoaded == 1) {
54          setUpPageStatus = 'complete';
55       }
56    } catch(ex) {
57    	catchInitializationError(builder, ex);
58        setUpPageStatus = 'complete';
59    }
60}
61
62
63
64//
65//   This method is called on the completion of
66//      each asychronous load started in setUpTests.
67//
68//   When every synchronous loaded document has completed,
69//      the page status is changed which allows the
70//      body of the test to be executed.
71function loadComplete() {
72    if (++docsLoaded == 1) {
73        setUpPageStatus = 'complete';
74    }
75}
76
77
78/**
79*
80	The method replaceWholeText substitutes the a specified text for the text of
81	the current node and all logically-adjacent text nodes.  This method raises
82	a NO_MODIFICATION_ALLOWED_ERR if one of the Text nodes being replaced is readonly.
83
84	Invoke replaceWholeText on an existing text node with newly created text and Entityreference
85	nodes (whose replacement text is a character entity reference) appended as children of its parent element node.
86	Where the nodes to be removed are read-only descendants of an EntityReference, the EntityReference
87        must be removed instead of the read-only nodes. Only if any EntityReference to be removed has
88        descendants that are not EntityReference, Text, or CDATASection nodes, the replaceWholeText
89        method must fail, raising a NO_MODIFICATION_ALLOWED_ERR. Verify that the method does not raise
90        an exception and verify the content of the returned text node.
91
92* @author IBM
93* @author Neil Delima
94* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Text3-replaceWholeText
95*/
96function textreplacewholetext06() {
97   var success;
98    if(checkInitialization(builder, "textreplacewholetext06") != null) return;
99    var doc;
100      var itemList;
101      var elementStrong;
102      var textNode;
103      var erefNode;
104      var replacedText;
105      var appendedChild;
106      var nodeValue;
107
108      var docRef = null;
109      if (typeof(this.doc) != 'undefined') {
110        docRef = this.doc;
111      }
112      doc = load(docRef, "doc", "hc_staff");
113      itemList = doc.getElementsByTagName("strong");
114      elementStrong = itemList.item(0);
115      textNode = doc.createTextNode("New Text");
116      erefNode = doc.createEntityReference("beta");
117      appendedChild = elementStrong.appendChild(textNode);
118      appendedChild = elementStrong.appendChild(erefNode);
119      textNode = elementStrong.firstChild;
120
121      replacedText = textNode.replaceWholeText("New Text and Cdata");
122      nodeValue = textNode.nodeValue;
123
124      assertEquals("textreplacewholetext06","New Text and Cdata",nodeValue);
125
126}
127
128
129
130
131function runTest() {
132   textreplacewholetext06();
133}
134