• 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/infoset06";
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
43      docsLoaded = 0;
44
45       if (docsLoaded == 0) {
46          setUpPageStatus = 'complete';
47       }
48    } catch(ex) {
49    	catchInitializationError(builder, ex);
50        setUpPageStatus = 'complete';
51    }
52}
53
54
55
56//
57//   This method is called on the completion of
58//      each asychronous load started in setUpTests.
59//
60//   When every synchronous loaded document has completed,
61//      the page status is changed which allows the
62//      body of the test to be executed.
63function loadComplete() {
64    if (++docsLoaded == 0) {
65        setUpPageStatus = 'complete';
66    }
67}
68
69//DOMErrorMonitor's require a document level variable named errorMonitor
70var errorMonitor;
71
72/**
73*
74Create a document with an XML 1.1 valid but XML 1.0 invalid element and
75normalize document with infoset set to true.
76
77* @author Curt Arnold
78* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#Document3-normalizeDocument
79* @see http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core#parameter-infoset
80*/
81function infoset06() {
82   var success;
83    if(checkInitialization(builder, "infoset06") != null) return;
84    var domImpl;
85      var nullString = null;
86
87      var nullDoctype = null;
88
89      var doc;
90      var elem;
91      var retval;
92      var domConfig;
93      errorMonitor = new DOMErrorMonitor();
94
95      var errors = new Array();
96
97      var error;
98      var severity;
99      var type;
100      var locator;
101      var relatedNode;
102      domImpl = getImplementation();
103doc = domImpl.createDocument(nullString,nullString,nullDoctype);
104
105	{
106		success = false;
107		try {
108            elem = doc.createElementNS("http://www.example.org/domts/wellformed01","LegalNameࢎ");
109        }
110		catch(ex) {
111      success = (typeof(ex.code) != 'undefined' && ex.code == 5);
112		}
113		assertTrue("xml10InvalidName",success);
114	}
115
116      try {
117      doc.xmlVersion = "1.1";
118
119
120      } catch (ex) {
121		  if (typeof(ex.code) != 'undefined') {
122       switch(ex.code) {
123       case /* NOT_SUPPORTED_ERR */ 9 :
124               return ;
125    default:
126          throw ex;
127          }
128       } else {
129       throw ex;
130        }
131         }
132        elem = doc.createElementNS("http://www.example.org/domts/wellformed01","LegalNameࢎ");
133      retval = doc.appendChild(elem);
134      doc.xmlVersion = "1.0";
135
136      domConfig = doc.domConfig;
137
138      domConfig.setParameter("infoset", true);
139	 domConfig.setParameter("error-handler", errorMonitor.handleError);
140	 doc.normalizeDocument();
141      errors = errorMonitor.allErrors;
142for(var indexN100A9 = 0;indexN100A9 < errors.length; indexN100A9++) {
143      error = errors[indexN100A9];
144      severity = error.severity;
145
146      assertEquals("severity",2,severity);
147       type = error.type;
148
149      assertEquals("type","wf-invalid-character-in-node-name",type);
150       locator = error.location;
151
152      relatedNode = locator.relatedNode;
153
154      assertSame("relatedNode",elem,relatedNode);
155
156	}
157   assertSize("oneError",1,errors);
158
159}
160
161
162
163
164function runTest() {
165   infoset06();
166}
167