- From: Curt Arnold <carnold@houston.rr.com>
- Date: Mon, 29 Dec 2003 20:02:18 -0600
- To: www-dom-ts@w3.org
One of my tasks from the last WG conference call was to describe how to
write tests when an operation may throw more than one error code.
Examples of such tests are nodeinsertbefore05, 06, and 10. The basic
formulation is like:
<try>
<insertBefore obj="doc" var="inserted" newChild="newDocType"
refChild="docType"/>
<fail id="throw_DOMException"/>
<catch>
<DOMException code="HIERARCHY_REQUEST_ERR"/>
<DOMException code="NOT_SUPPORTED_ERR"/>
</catch>
</try>
If the operation does not throw an exception, it hits the <fail/> method
which unconditionally fails the test. If a DOMException is thrown with
either of the specified codes, then the try block is left. If
DOMException with a different code is thrown, the exception appears not
to be caught (it is actually caught and rethrown) which will cause the
test to fail. The test-to-java transform produces the following code
for that fragment:
try {
inserted = doc.insertBefore(newDocType, docType);
fail("throw_DOMException");
}
catch (DOMException ex) {
switch (ex.code) {
case 3 :
break;
case 9 :
break;
default:
throw ex;
}
}
Received on Monday, 29 December 2003 21:02:17 UTC