You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/05/21 20:44:29 UTC
cvs commit: xml-xerces/c/tests/DOM/DOMMemTest DOMMemTest.cpp
tng 02/05/21 11:44:29
Modified: c/tests/DOM/DOMMemTest DOMMemTest.cpp
Log:
This is the original tests/IDom/IDOMMemTest/IDOMMemTest.cpp
Revision Changes Path
1.33 +997 -1109 xml-xerces/c/tests/DOM/DOMMemTest/DOMMemTest.cpp
Index: DOMMemTest.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/tests/DOM/DOMMemTest/DOMMemTest.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- DOMMemTest.cpp 15 Mar 2002 13:55:13 -0000 1.32
+++ DOMMemTest.cpp 21 May 2002 18:44:28 -0000 1.33
@@ -1,7 +1,7 @@
/*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2002 The Apache Software Foundation. All rights
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,30 +48,24 @@
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
- * originally based on software copyright (c) 1999, International
+ * originally based on software copyright (c) 2002, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
//
-// Various DOM tests.
-// Contents include
-// 1. Basic functionality for DOMString
-// 2. Regression tests for bugs fixed.
-// All individual are wrapped in a memory leak checker.
-//
-// This is NOT a complete test of DOM functionality.
+// Various IDOM tests.
+// This is NOT a complete test of IDOM functionality.
//
/*
- * $Id: DOMMemTest.cpp,v 1.32 2002/03/15 13:55:13 tng Exp $
+ * $Id: DOMMemTest.cpp,v 1.33 2002/05/21 18:44:28 tng Exp $
*/
#include <stdio.h>
#include <string.h>
-#include <xercesc/dom/DOM.hpp>
-#include <xercesc/dom/DomMemDebug.hpp>
+#include <xercesc/idom/IDOM.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMLException.hpp>
#include <xercesc/util/XMLString.hpp>
@@ -87,23 +81,13 @@
};
-#define TESTPROLOG entryMemState = DomMemDebug();
-
-#define TESTEPILOG \
- exitMemState = DomMemDebug(); \
- if (entryMemState != exitMemState) { \
- printf(" Memory leak at line %d, file %s: ", __LINE__, __FILE__); \
- exitMemState.printDifference(entryMemState); \
- }
-
-
#define EXCEPTION_TEST(operation, expected_exception) \
{ \
try { \
operation; \
printf(" Error: no exception thrown at line %d\n", __LINE__); \
} \
- catch (DOM_DOMException &e) { \
+ catch (IDOM_DOMException &e) { \
if (e.code != expected_exception) \
printf(" Wrong exception code: %d at line %d\n", e.code, __LINE__); \
} \
@@ -113,805 +97,420 @@
}
+//temp XMLCh String Buffer
+XMLCh tempStr[4000];
+XMLCh tempStr2[4000];
+XMLCh tempStr3[4000];
+XMLCh tempStr4[4000];
+XMLCh tempStr5[4000];
+
//---------------------------------------------------------------------------------------
//
-// DOMStringTests tests of class DOMString
+// IDOMBasicTests Basic IDOM Level 1 tests
//
//---------------------------------------------------------------------------------------
-void DOMStringTests()
+void IDOMBasicTests()
{
- DomMemDebug entryMemState, exitMemState;
-
//
- // Test 1. Basic operations on a simple string.
+ // Test Doc01 Create a new empty document
//
- printf("DOM Memory Test.\n");
- TESTPROLOG;
{
- DOMString foo = "fop";
- TASSERT(foo.length() == 3);
- TASSERT(foo.equals(foo));
- TASSERT(foo != 0);
- TASSERT(foo.charAt(0) == chLatin_f);
- TASSERT(foo.charAt(2) == chLatin_p);
- TASSERT(foo.charAt(3) == chNull);
- }
- TESTEPILOG
-
- //
- // Construct from XMLCh *
- //
- TESTPROLOG
- {
- XMLCh a[] = {chLatin_H, chLatin_e, chLatin_l, chLatin_l, chLatin_o, chNull}; // Unicode "Hello"
- DOMString x(a);
- DOMString y = "Hello";
- TASSERT(x.equals(y));
-
- DOMString z(a+2, 3);
- TASSERT(z.equals("llo"));
- }
- TESTEPILOG
-
- //
- // Test 2. Empty strings shouldn't leave anything lying around
- //
- TESTPROLOG;
- {
- DOMString a;
- DOMString b;
- TASSERT (a==0);
- a = 0;
- TASSERT(a==0);
- TASSERT((a!=0) == false);
-
- DOMString c(0);
- TASSERT(c==0);
- TASSERT(c==a);
- }
- TESTEPILOG
-
-
- //
- // Test 3. Clones should be equal.
- TESTPROLOG;
- {
- DOMString a = "hello";
- DOMString b = a.clone();
- TASSERT(a.equals(b));
- TASSERT(a != b);
- a = 0;
- TASSERT(b.equals("hello"));
- TASSERT(a == 0);
- TASSERT(a.equals(""));
- }
- TESTEPILOG
-
-
- //
- // Test 4. Copy construction and assignemnt
- //
- TESTPROLOG;
- {
- DOMString a = "Test 04";
- DOMString b(a);
- DOMString c = a;
- DOMString d;
- DOMString e;
- d = a;
- TASSERT(a==b);
- TASSERT(a==c);
- TASSERT(a==d);
- TASSERT(a!=e);
- // printf (" test04 should have 1 handle, 1 buffer here. ");
+ // First precondition, so that lazily created strings do not appear
+ // as memory leaks.
+ IDOM_Document* doc;
+ doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ delete doc;
}
- TESTEPILOG
-
-
- //
- // Test 5 AppendData, degenerate cases.
- //
- TESTPROLOG;
- {
- DOMString a;
- DOMString b = "Test 05";
- a.appendData(b);
- TASSERT(a.equals(b));
- TASSERT(a!=b);
- TASSERT(a.equals("Test 05"));
- };
- TESTEPILOG
-
-
- //
- // Test 6 Append data, degenerate case 2
- //
- TESTPROLOG;
+ //
+ // Test Doc02 Create one of each kind of node using the
+ // document createXXX methods.
+ // Watch for memory leaks.
+ //
{
- DOMString a;
- DOMString b = "Test 06";
+ // Do all operations in a preconditioning step, to force the
+ // creation of implementation objects that are set up on first use.
+ // Don't watch for leaks in this block (no / )
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- b.appendData(a);
- TASSERT(!a.equals(b));
- TASSERT(a!=b);
- TASSERT(b.equals("Test 06"));
- TASSERT(a==0);
- }
- TESTEPILOG
+ XMLString::transcode("Doc02Element", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
+ IDOM_DocumentFragment* frag = doc->createDocumentFragment ();
- //
- // Test 7 Append Data, Common case, no extra space in original buffer.
- // Also, operator +=, which is a convenience alias for appendData.
- //
- TESTPROLOG;
- {
- DOMString a = "Test 07";
- DOMString b = "append";
+ XMLString::transcode("Doc02TextNode", tempStr, 3999);
+ IDOM_Text* text = doc->createTextNode(tempStr);
- a.appendData(b);
- TASSERT(a.equals("Test 07append"));
- TASSERT(b.equals("append"));
+ XMLString::transcode("Doc02Comment", tempStr, 3999);
+ IDOM_Comment* comment = doc->createComment(tempStr);
- a.appendData((XMLCh)0x31);
- TASSERT(a.equals("Test 07append1"));
+ XMLString::transcode("Doc02CDataSection", tempStr, 3999);
+ IDOM_CDATASection* cdataSec = doc->createCDATASection(tempStr);
- XMLCh s[] = {0x32, 0x33, 0x00};
- a.appendData(s);
- TASSERT(a.equals("Test 07append123"));
+ XMLString::transcode("Doc02DocumentType", tempStr, 3999);
+ IDOM_DocumentType* docType = doc->createDocumentType(tempStr);
- a = "Test 07a ";
- a += b;
- TASSERT(a.equals("Test 07a append"));
+ XMLString::transcode("Doc02Notation", tempStr, 3999);
+ IDOM_Notation* notation = doc->createNotation(tempStr);
- a += (XMLCh)0x31;
- TASSERT(a.equals("Test 07a append1"));
+ XMLString::transcode("Doc02PITarget", tempStr, 3999);
+ XMLString::transcode("Doc02PIData", tempStr2, 3999);
+ IDOM_ProcessingInstruction* pi = doc->createProcessingInstruction(tempStr, tempStr2);
- a += s;
- TASSERT(a.equals("Test 07a append123"));
+ XMLString::transcode("*", tempStr, 3999);
+ IDOM_NodeList* nodeList = doc->getElementsByTagName(tempStr);
+ delete doc;
}
- TESTEPILOG
-
-
- //
- // Test 8 Append Data, with plenty of extra space in buffer.
- //
- TESTPROLOG;
- {
- DOMString a;
- a.reserve(100);
- DOMString b("Test 08");
- DOMString c("append");
-
- TASSERT(a != 0); // (The String object has an identity, even if no contents)
- TASSERT(a.length() == 0);
- a.appendData(b);
- TASSERT(a.equals(b));
- TASSERT(a.equals("Test 08"));
- TASSERT(a != b);
- a.appendData(c);
- TASSERT(a.equals("Test 08append"));
- TASSERT(b.equals("Test 08"));
- TASSERT(c.equals("append"));
- };
- TESTEPILOG
-
-
-
- //
- // Test 9 Append Data, with plenty of extra space in buffer, but with
- // a clone, so that the original buffer can not be modified.
- //
- TESTPROLOG;
- {
- DOMString a;
- a.reserve(100);
- DOMString b("Test 09");
- DOMString c("append");
-
- TASSERT(a.length() == 0);
- a.appendData(b);
- TASSERT(a.equals(b));
- TASSERT(a.equals("Test 09"));
- TASSERT(a != b);
- DOMString d = a.clone();
- TASSERT(a.equals("Test 09"));
- TASSERT(b.equals("Test 09"));
- TASSERT(d.equals("Test 09"));
- TASSERT(a != b);
- TASSERT(a != d);
- TASSERT(b != d);
-
- a.appendData(c);
- TASSERT(a.equals("Test 09append"));
- TASSERT(b.equals("Test 09"));
- TASSERT(c.equals("append"));
- TASSERT(d.equals("Test 09"));
- };
- TESTEPILOG;
//
- // Test 10 DOMString Operator +
+ // Doc03 - Create a small document tree
//
- TESTPROLOG;
- {
- DOMString a;
- DOMString b("DOMString ");
- XMLCh s[] = {0x58, 0x4d, 0x4c, 0x20, 0x00}; // Unicode "XML "
- XMLCh Z = 0x5A; // Unicode 'Z'
-
- a = b + b;
- TASSERT(a.equals("DOMString DOMString "));
-
- a = b + s;
- TASSERT(a.equals("DOMString XML "));
-
- a = s + b;
- TASSERT(a.equals("XML DOMString "));
-
- a = b + Z;
- TASSERT(a.equals("DOMString Z"));
- a = Z + b;
- TASSERT(a.equals("ZDOMString "));
- }
- TESTEPILOG;
-
-
- //
- // Test 11 DOMString::subStringData(unsigned int offset, unsigned int count)
- //
- TESTPROLOG;
{
- DOMString srcString("This is the source string.");
- // 01234567890123456789012345
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- DOMString This = srcString.substringData(0,4);
- DOMString is = srcString.substringData(5,2);
- DOMString dot = srcString.substringData(25,1);
- DOMString offEnd = srcString.substringData(19, 1000);
+ XMLString::transcode("Doc03RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
- TASSERT(This.equals("This"));
- TASSERT(is .equals("is"));
- TASSERT(dot .equals("."));
- TASSERT(offEnd.equals("string."));
+ doc->appendChild(rootEl);
- EXCEPTION_TEST(srcString.substringData(-1, 10), DOM_DOMException::INDEX_SIZE_ERR);
- EXCEPTION_TEST(srcString.substringData(27, 1), DOM_DOMException::INDEX_SIZE_ERR);
+ XMLString::transcode("Doc03 text stuff", tempStr, 3999);
+ IDOM_Text* textNode = doc->createTextNode(tempStr);
- srcString.insertData(0, "x"); // Changing the source should not alter previously
- // extracted substrings.
+ rootEl->appendChild(textNode);
- TASSERT(This.equals("This"));
- TASSERT(is .equals("is"));
- TASSERT(dot .equals("."));
- TASSERT(offEnd.equals("string."));
- TASSERT(srcString.equals("xThis is the source string."));
+ XMLString::transcode("*", tempStr, 3999);
+ IDOM_NodeList* nodeList = doc->getElementsByTagName(tempStr);
+ delete doc;
+ };
- }
- TESTEPILOG;
//
- // Test 12 DOMString::insertData(unsigned int offset, DOMString &src)
+ // Attr01
//
- TESTPROLOG;
{
- DOMString aString("This is a string.");
- // 01234567890123456
-
- aString.insertData(17, " Added at end.");
- TASSERT(aString.equals("This is a string. Added at end."));
-
- aString = "This is a string.";
- EXCEPTION_TEST(aString.insertData(18, "x"), DOM_DOMException::INDEX_SIZE_ERR);
- TASSERT(aString.equals("This is a string."));
-
- aString = 0;
- aString.reserve(100);
- aString.appendData("This is a string.");
- aString.insertData(17, " Added at end.");
- TASSERT(aString.equals("This is a string. Added at end."));
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- aString.insertData(0, "So ");
- TASSERT(aString.equals("So This is a string. Added at end."));
+ XMLString::transcode("RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
- aString.insertData(2, "x");
- TASSERT(aString.equals("Sox This is a string. Added at end."));
-
- EXCEPTION_TEST(aString.substringData(-1, 1), DOM_DOMException::INDEX_SIZE_ERR);
-
-
- }
- TESTEPILOG;
-
-
- //
- // Minimal test of DOMString::transcode()
- //
- TESTPROLOG;
- {
- static char testStr[] = "This is our test string.";
+ doc->appendChild(rootEl);
+ {
+ XMLString::transcode("Attr01", tempStr, 3999);
+ IDOM_Attr* attr01 = doc->createAttribute(tempStr);
+ rootEl->setAttributeNode(attr01);
+ }
- DOMString DOMTestStr = testStr;
- char *roundTripString = DOMTestStr.transcode();
- TASSERT(strcmp(testStr, roundTripString) == 0);
- delete [] roundTripString;
- DOMString domstr2 = DOMString::transcode(testStr);
- TASSERT(domstr2.equals(DOMTestStr));
- }
- TESTEPILOG;
+ {
+ XMLString::transcode("Attr01", tempStr, 3999);
+ IDOM_Attr* attr02 = doc->createAttribute(tempStr);
+ rootEl->setAttributeNode(attr02);
+ }
+ delete doc;
+ };
//
- // String bugs submitted by David Chung
+ // Attr02
//
- TESTPROLOG;
- {
- DOMString greeting("hello");
- greeting.appendData(greeting);
- TASSERT(greeting.equals("hellohello"));
+ {
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- // Test DOMString.insertData, when source string is the same as the destination.
- // Implementation forces creation of a new buffer.
- //
- DOMString greeting2("Hello ");
- // 0123456789012345678
- greeting2.deleteData(5, 14); // Leave unused space at end of buffer.
- TASSERT(greeting2.equals("Hello"));
+ XMLString::transcode("RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
- greeting2.insertData(2, greeting2);
- TASSERT(greeting2.equals("HeHellollo"));
+ doc->appendChild(rootEl);
+ XMLString::transcode("Attr02", tempStr, 3999);
+ IDOM_Attr* attr01 = doc->createAttribute(tempStr);
- // DOMString.insertData(). Original buffer has space, and is retained.
- DOMString greeting3("Hello ");
- // 0123456789012345678
- greeting3.deleteData(5, 14); // Leave unused space at end of buffer.
- TASSERT(greeting3.equals("Hello"));
+ rootEl->setAttributeNode(attr01);
- greeting3.insertData(2, "ByeBye");
- TASSERT(greeting3.equals("HeByeByello"));
+ IDOM_Attr* attr02 = doc->createAttribute(tempStr);
+ rootEl->setAttributeNode(attr02);
+ delete doc;
}
- TESTEPILOG;
-
-
- //
- // String bug submitted by Nadav Aharoni
- //
- TESTPROLOG;
- {
- char testString[] = " ";
- testString[4] = 0;
- testString[5] = 'x';
- char *origString = testString;
- XMLString::trim(testString);
- TASSERT(strlen(testString) == 0);
- TASSERT(testString[5] == 'x');
-
- strcpy(testString, " Hello ");
- XMLString::trim(testString);
- TASSERT(strcmp(testString, "Hello") == 0);
- }
- TESTEPILOG;
-}
-//---------------------------------------------------------------------------------------
-//
-// DOMBasicTests Basic DOM Level 1 tests
-//
-//---------------------------------------------------------------------------------------
-void DOMBasicTests()
-{
- DomMemDebug entryMemState, exitMemState;
- //
- // Test Doc01 Create a new empty document
- //
- {
- // First precondition, so that lazily created strings do not appear
- // as memory leaks.
- DOM_Document doc;
- doc = DOM_Document::createDocument();
- }
- TESTPROLOG;
- {
- DOM_Document doc;
- doc = DOM_Document::createDocument();
- }
- TESTEPILOG
-
//
- // Test Doc02 Create one of each kind of node using the
- // document createXXX methods.
- // Watch for memory leaks.
+ // Attr03
//
- {
- // Do all operations in a preconditioning step, to force the
- // creation of implementation objects that are set up on first use.
- // Don't watch for leaks in this block (no TESTPROLOG / TESTEPILOG)
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element el = doc.createElement("Doc02Element");
- DOM_DocumentFragment frag = doc.createDocumentFragment ();
- DOM_Text text = doc.createTextNode("Doc02TextNode");
- DOM_Comment comment = doc.createComment("Doc02Comment");
- DOM_CDATASection cdataSec = doc.createCDATASection("Doc02CDataSection");
- DOM_DocumentType docType = doc.createDocumentType("Doc02DocumentType");
- DOM_Notation notation = doc.createNotation("Doc02Notation");
- DOM_ProcessingInstruction pi = doc.createProcessingInstruction("Doc02PITarget",
- "Doc02PIData");
- DOM_NodeList nodeList = doc.getElementsByTagName("*");
- }
-
- TESTPROLOG;
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element el = doc.createElement("Doc02Element");
- }
- TESTEPILOG;
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- TESTPROLOG
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_DocumentFragment frag = doc.createDocumentFragment ();
- };
- TESTEPILOG
+ XMLString::transcode("RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
+ doc->appendChild(rootEl);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element el = doc.createElement("Doc02Element");
- }
- TESTEPILOG;
+ XMLString::transcode("Attr03", tempStr, 3999);
+ IDOM_Attr* attr01 = doc->createAttribute(tempStr);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Text text = doc.createTextNode("Doc02TextNode");
- }
- TESTEPILOG;
+ rootEl->setAttributeNode(attr01);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Comment comment = doc.createComment("Doc02Comment");
- }
- TESTEPILOG;
+ XMLString::transcode("Attr03Value1", tempStr, 3999);
+ attr01->setValue(tempStr);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_CDATASection cdataSec = doc.createCDATASection("Doc02CDataSection");
+ XMLString::transcode("Attr03Value2", tempStr, 3999);
+ attr01->setValue(tempStr);
+ delete doc;
}
- TESTEPILOG;
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_DocumentType docType = doc.createDocumentType("Doc02DocumentType");
- }
- TESTEPILOG;
+ //
+ // Attr04
+ //
- TESTPROLOG;
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Notation notation = doc.createNotation("Doc02Notation");
- }
- TESTEPILOG;
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ XMLString::transcode("RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_ProcessingInstruction pi = doc.createProcessingInstruction("Doc02PITarget",
- "Doc02PIData");
- }
- TESTEPILOG;
+ doc->appendChild(rootEl);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Attr attribute = doc.createAttribute("Doc02Attribute");
- }
- TESTEPILOG;
+ XMLString::transcode("Attr04", tempStr, 3999);
+ IDOM_Attr* attr01 = doc->createAttribute(tempStr);
+ rootEl->setAttributeNode(attr01);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_EntityReference er = doc.createEntityReference("Doc02EntityReference");
- }
- TESTEPILOG;
+ XMLString::transcode("Attr04Value1", tempStr, 3999);
+ attr01->setValue(tempStr);
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_NodeList nodeList = doc.getElementsByTagName("*");
+ IDOM_Node* value = attr01->getFirstChild();
+ delete doc;
}
- TESTEPILOG;
- //
- // Doc03 - Create a small document tree
- //
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("Doc03RootElement");
- doc.appendChild(rootEl);
- DOM_Text textNode = doc.createTextNode("Doc03 text stuff");
- rootEl.appendChild(textNode);
-
- DOM_NodeList nodeList = doc.getElementsByTagName("*");
- };
- TESTEPILOG;
//
- // Attr01
+ // Text01
//
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("RootElement");
- doc.appendChild(rootEl);
- {
- DOM_Attr attr01 = doc.createAttribute("Attr01");
- rootEl.setAttributeNode(attr01);
- }
- TESTPROLOG;
- {
- DOM_Attr attr02 = doc.createAttribute("Attr01");
- rootEl.setAttributeNode(attr02);
- }
- TESTEPILOG
- };
-
- //
- // Attr02
- //
- TESTPROLOG;
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("RootElement");
- doc.appendChild(rootEl);
- DOM_Attr attr01 = doc.createAttribute("Attr02");
- rootEl.setAttributeNode(attr01);
- DOM_Attr attr02 = doc.createAttribute("Attr02");
- rootEl.setAttributeNode(attr02);
- }
- TESTEPILOG;
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ XMLString::transcode("RootElement", tempStr, 3999);
+ IDOM_Element* rootEl = doc->createElement(tempStr);
- //
- // Attr03
- //
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("RootElement");
- doc.appendChild(rootEl);
- DOM_Attr attr01 = doc.createAttribute("Attr03");
- rootEl.setAttributeNode(attr01);
-
- attr01.setValue("Attr03Value1");
- attr01.setValue("Attr03Value2");
- }
- TESTEPILOG;
+ doc->appendChild(rootEl);
+ XMLString::transcode("Hello Goodbye", tempStr, 3999);
+ IDOM_Text* txt1 = doc->createTextNode(tempStr);
+ rootEl->appendChild(txt1);
- //
- // Attr04
- //
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("RootElement");
- doc.appendChild(rootEl);
- DOM_Attr attr01 = doc.createAttribute("Attr04");
- rootEl.setAttributeNode(attr01);
+ txt1->splitText(6);
+ rootEl->normalize();
+ delete doc;
- attr01.setValue("Attr04Value1");
- DOM_Node value = attr01.getFirstChild();
}
- TESTEPILOG;
//
- // Text01
+ // Notation01
//
- TESTPROLOG;
+
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element rootEl = doc.createElement("RootElement");
- doc.appendChild(rootEl);
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- DOMString tmp("Hello Goodbye");
- DOM_Text txt1 = doc.createTextNode(tmp);
- tmp = 0;
- rootEl.appendChild(txt1);
+ XMLString::transcode("DocType_for_Notation01", tempStr, 3999);
+ IDOM_DocumentType* dt = doc->createDocumentType(tempStr);
- txt1.splitText(6);
- rootEl.normalize();
+ doc->appendChild(dt);
- }
- TESTEPILOG;
+ IDOM_NamedNodeMap* notationMap = dt->getNotations();
- //
- // Notation01
- //
- TESTPROLOG;
- {
- DOM_Document doc = DOM_Document::createDocument();
- DOM_DocumentType dt = doc.createDocumentType("DocType_for_Notation01");
- doc.appendChild(dt);
+ XMLString::transcode("Notation01", tempStr, 3999);
+ IDOM_Notation* nt1 = doc->createNotation(tempStr);
+ notationMap->setNamedItem (nt1);
- DOM_NamedNodeMap notationMap = dt.getNotations();
- DOM_Notation nt1 = doc.createNotation("Notation01");
- notationMap.setNamedItem (nt1);
- DOM_Node abc1 = notationMap.getNamedItem("Notation01");
- DOM_Notation nt2 = (DOM_Notation &) abc1;
+ IDOM_Node* abc1 = notationMap->getNamedItem(tempStr);
+
+ IDOM_Notation* nt2 = (IDOM_Notation*) abc1;
TASSERT(nt1==nt2);
- nt2 = DOM_Notation();
+ nt2 = 0;
nt1 = 0;
- DOM_Node abc6 = notationMap.getNamedItem("Notation01");
- nt2 = (DOM_Notation &) abc6;
+ IDOM_Node* abc6 = notationMap->getNamedItem(tempStr);
+ nt2 = (IDOM_Notation*) abc6;
+ delete doc;
}
- TESTEPILOG;
+
//
// NamedNodeMap01 - comparison operators.
//
- TESTPROLOG;
+
{
- DOM_NamedNodeMap nnm;
+ IDOM_NamedNodeMap* nnm = 0;
TASSERT(nnm == 0);
- DOM_Document doc = DOM_Document::createDocument();
- nnm = doc.getAttributes(); // Should be null, because node type
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ nnm = doc->getAttributes(); // Should be null, because node type
// is not Element.
TASSERT(nnm == 0);
TASSERT(!(nnm != 0));
- DOM_Element el = doc.createElement("NamedNodeMap01");
- DOM_NamedNodeMap nnm2 = el.getAttributes(); // Should be an empty, but non-null map.
+ XMLString::transcode("NamedNodeMap01", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
+
+ IDOM_NamedNodeMap* nnm2 = el->getAttributes(); // Should be an empty, but non-null map.
TASSERT(nnm2 != 0);
TASSERT(nnm != nnm2);
nnm = nnm2;
TASSERT(nnm == nnm2);
+ delete doc;
}
- TESTEPILOG;
+
//
// importNode quick test
//
- TESTPROLOG
+
{
- DOM_Document doc1 = DOM_Document::createDocument();
- DOM_Document doc2 = DOM_Document::createDocument();
+ IDOM_Document* doc1 = IDOM_DOMImplementation::getImplementation()->createDocument();
+ IDOM_Document* doc2 = IDOM_DOMImplementation::getImplementation()->createDocument();
+
+ XMLString::transcode("abc", tempStr, 3999);
+ IDOM_Element* el1 = doc1->createElement(tempStr);
+
+ doc1->appendChild(el1);
+ TASSERT(el1->getParentNode() != 0);
+ IDOM_Node* el2 = doc2->importNode(el1, true);
+ TASSERT(el2->getParentNode() == 0);
+ const XMLCh* tagName = el2->getNodeName();
- DOM_Element el1 = doc1.createElement("abc");
- doc1.appendChild(el1);
- TASSERT(el1.getParentNode() != 0);
- DOM_Node el2 = doc2.importNode(el1, true);
- TASSERT(el2.getParentNode() == 0);
- DOMString tagName = el2.getNodeName();
- TASSERT(tagName.equals("abc"));
- TASSERT(el2.getOwnerDocument() == doc2);
+ TASSERT(!XMLString::compareString(tagName, tempStr));
+
+ TASSERT(el2->getOwnerDocument() == doc2);
TASSERT(doc1 != doc2);
+ delete doc1;
+ delete doc2;
}
- TESTEPILOG;
+
//
// getLength() tests. Both Node CharacterData and NodeList implement
- // getLength(). Early versions of the DOM had a clash
+ // getLength(). Early versions of the IDOM had a clash
// between the two, originating in the implementation class
// hirearchy, which has NodeList as a (distant) base class
// of CharacterData. This is a regression test to verify
// that the problem stays fixed.
//
- TESTPROLOG
+
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Text tx = doc.createTextNode("Hello");
- DOM_Element el = doc.createElement("abc");
- el.appendChild(tx);
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
- int textLength = tx.getLength();
+ XMLString::transcode("Hello", tempStr, 3999);
+ IDOM_Text* tx = doc->createTextNode(tempStr);
+
+ XMLString::transcode("abc", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
+
+ el->appendChild(tx);
+
+ int textLength = tx->getLength();
TASSERT(textLength == 5);
- DOM_NodeList nl = tx.getChildNodes();
- int nodeListLen = nl.getLength();
+ IDOM_NodeList* nl = tx->getChildNodes();
+ int nodeListLen = nl->getLength();
TASSERT(nodeListLen == 0);
- nl = el.getChildNodes();
- nodeListLen = nl.getLength();
+ nl = el->getChildNodes();
+ nodeListLen = nl->getLength();
TASSERT(nodeListLen == 1);
+ delete doc;
}
//
// NodeList - comparison operators, basic operation.
//
- TESTPROLOG;
+
{
- DOM_NodeList nl;
- DOM_NodeList nl2;
+ IDOM_NodeList* nl = 0;
+ IDOM_NodeList* nl2 = 0;
TASSERT(nl == 0);
TASSERT(!(nl != 0));
TASSERT(nl == nl2);
- DOM_Document doc = DOM_Document::createDocument();
- nl = doc.getChildNodes(); // Should be non-null, but empty
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ nl = doc->getChildNodes(); // Should be non-null, but empty
TASSERT(nl != 0);
- int len = nl.getLength();
+ int len = nl->getLength();
TASSERT(len == 0);
- DOM_Element el = doc.createElement("NodeList01");
- doc.appendChild(el);
- len = nl.getLength();
+ XMLString::transcode("NodeList01", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
+
+ doc->appendChild(el);
+ len = nl->getLength();
TASSERT(len == 1);
TASSERT(nl != nl2);
nl2 = nl;
TASSERT(nl == nl2);
+ delete doc;
}
- TESTEPILOG;
+
//
// Name validity checking.
//
- TESTPROLOG;
+
{
- DOM_Document doc = DOM_Document::createDocument();
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
try
{
- DOM_Element el = doc.createElement("!@@ bad element name");
+ XMLString::transcode("!@@ bad element name", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
TASSERT(false); // Exception above should prevent us reaching here.
}
- catch ( DOM_DOMException &e)
+ catch ( IDOM_DOMException e)
{
- TASSERT(e.code == DOM_DOMException::INVALID_CHARACTER_ERR);
+ TASSERT(e.code == IDOM_DOMException::INVALID_CHARACTER_ERR);
}
catch (...)
{
TASSERT(false); // Wrong exception thrown.
}
+ delete doc;
}
- TESTEPILOG;
+
//
// Assignment ops return value
//
- TESTPROLOG;
+
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element el = doc.createElement("NodeList01");
- doc.appendChild(el);
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+
+ XMLString::transcode("NodeList01", tempStr, 3999);
+ IDOM_Element* el = doc->createElement(tempStr);
+
+ doc->appendChild(el);
- DOM_Element n1, n2, n3;
+ IDOM_Element* n1, *n2, *n3;
n1 = n2 = n3 = el;
TASSERT(n1 == n2);
@@ -920,8 +519,9 @@
TASSERT(n1 != 0);
n1 = n2 = n3 = 0;
TASSERT(n1 == 0);
+ delete doc;
}
- TESTEPILOG;
+
//
@@ -929,54 +529,70 @@
// bug in attributes of cloned nodes that occured when the "owned" flag
// was not set in the clone.
//
- TESTPROLOG;
+
{
- DOM_Document doc = DOM_Document::createDocument();
- DOM_Element root = doc.createElement("CTestRoot");
- root.setAttribute("CTestAttr", "CTestAttrValue");
-
- DOMString s = root.getAttribute("CTestAttr");
- TASSERT(s.equals("CTestAttrValue"));
-
- DOM_Node abc2 = root.cloneNode(true);
- DOM_Element cloned = (DOM_Element &) abc2;
- DOM_Attr a = cloned.getAttributeNode("CTestAttr");
+ IDOM_Document* doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+
+ XMLString::transcode("CTestRoot", tempStr, 3999);
+ IDOM_Element* root = doc->createElement(tempStr);
+
+ XMLString::transcode("CTestAttr", tempStr, 3999);
+ XMLString::transcode("CTestAttrValue", tempStr2, 3999);
+ root->setAttribute(tempStr, tempStr2);
+
+ const XMLCh* s = root->getAttribute(tempStr);
+ TASSERT(!XMLString::compareString(s, tempStr2));
+
+ IDOM_Node* abc2 = root->cloneNode(true);
+ IDOM_Element* cloned = (IDOM_Element*) abc2;
+ IDOM_Attr* a = cloned->getAttributeNode(tempStr);
TASSERT(a != 0);
- s = a.getValue();
- TASSERT(s.equals("CTestAttrValue"));
+ s = a->getValue();
+ TASSERT(!XMLString::compareString(s, tempStr2));
a = 0;
- a = cloned.getAttributeNode("CTestAttr");
+ a = cloned->getAttributeNode(tempStr);
TASSERT(a != 0);
- s = a.getValue();
- TASSERT(s.equals("CTestAttrValue"));
+ s = a->getValue();
+ TASSERT(!XMLString::compareString(s, tempStr2));
+ delete doc;
}
- TESTEPILOG;
+
//
// splitText()
// Regression test for a bug from Tinny Ng
//
- TESTPROLOG;
+
{
- DOM_Document doc;
- doc = DOM_Document::createDocument();
- DOM_Text tn, tn1, tn2;
- tn = doc.createTextNode ("0123456789");
+ IDOM_Document* doc;
+ doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+ IDOM_Text* tn, *tn1, *tn2;
+
+ XMLString::transcode("0123456789", tempStr, 3999);
+ tn = doc->createTextNode (tempStr);
+
+ tn1 = tn->splitText(5);
+
+ XMLString::transcode("01234", tempStr, 3999);
+ TASSERT(!XMLString::compareString(tn->getNodeValue(), tempStr));
- tn1 = tn.splitText(5);
- TASSERT( tn.getNodeValue().equals("01234"));
- TASSERT(tn1.getNodeValue().equals("56789"));
+ XMLString::transcode("56789", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(tn1->getNodeValue(), tempStr2));
- tn2 = tn.splitText(5);
- TASSERT( tn.getNodeValue().equals("01234"));
- TASSERT(tn2.getNodeValue().equals(""));
- EXCEPTION_TEST(tn.splitText(6), DOM_DOMException::INDEX_SIZE_ERR);
+ tn2 = tn->splitText(5);
+ TASSERT(!XMLString::compareString(tn->getNodeValue(), tempStr));
+
+ XMLString::transcode("", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(tn2->getNodeValue(), tempStr2));
+
+ EXCEPTION_TEST(tn->splitText(6), IDOM_DOMException::INDEX_SIZE_ERR);
+ delete doc;
}
- TESTEPILOG;
+
}
@@ -984,17 +600,14 @@
//---------------------------------------------------------------------------------------
//
-// DOMNSTests DOM Name Space tests
+// IDOMNSTests IDOM Name Space tests
//
//---------------------------------------------------------------------------------------
-void DOMNSTests()
+void IDOMNSTests()
{
- DomMemDebug entryMemState, exitMemState;
-
-
//
- // DOM Level 2 tests. These should be split out as a separate test.
+ // IDOM Level 2 tests. These should be split out as a separate test.
//
@@ -1002,204 +615,329 @@
// hasFeature. The set of supported options tested here is for Xerces 1.1
// Note: because the implementation lazily creates some of the comprison
// strings within the implementation, this test must be pre-flighted
- // outside of the TESPROLOG/TESTEPILOG macros to avoid spurious
+ // outside of the TESPROLOG/ macros to avoid spurious
// reports of memory leaks.
//
// Also test the case-insensitive
//
{
- DOM_DOMImplementation impl;
- TASSERT(impl.hasFeature("XmL", "2.0") == true);
- TASSERT(impl.hasFeature("xML", "") == true);
- // We also support 1.0
- TASSERT(impl.hasFeature("XMl", "1.0") == true);
- TASSERT(impl.hasFeature("xMl", "3.0") == false);
- TASSERT(impl.hasFeature("TrAveRsal", "") == true);
+
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+ XMLString::transcode("1.0", tempStr, 3999);
+ XMLString::transcode("2.0", tempStr2, 3999);
+ XMLString::transcode("3.0", tempStr3, 3999);
+ XMLString::transcode("", tempStr4, 3999);
+
+ XMLString::transcode("XmL", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr2) == true);
+
+ XMLString::transcode("xML", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("XMl", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr) == true);
+
+ XMLString::transcode("xMl", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr3) == false);
+
+ XMLString::transcode("TrAveRsal", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
}
- TESTPROLOG;
- {
- DOM_DOMImplementation impl;
- TASSERT(impl.hasFeature("XML", "") == true);
- TASSERT(impl.hasFeature("XML", "1.0") == true);
- TASSERT(impl.hasFeature("XML", "2.0") == true);
- TASSERT(impl.hasFeature("XML", "3.0") == false);
-
- TASSERT(impl.hasFeature("Core", "") == true);
- TASSERT(impl.hasFeature("coRe", "1.0") == true);
- TASSERT(impl.hasFeature("core", "2.0") == true);
- TASSERT(impl.hasFeature("cORe", "3.0") == false);
-
- TASSERT(impl.hasFeature("Traversal", "") == true);
- TASSERT(impl.hasFeature("traversal", "1.0") == false);
- TASSERT(impl.hasFeature("TraVersal", "2.0") == true);
-
- TASSERT(impl.hasFeature("Range", "") == true);
- TASSERT(impl.hasFeature("raNge", "1.0") == false);
- TASSERT(impl.hasFeature("RaNge", "2.0") == true);
-
-
- TASSERT(impl.hasFeature("HTML", "") == false);
- TASSERT(impl.hasFeature("Views", "") == false);
- TASSERT(impl.hasFeature("StyleSheets", "") == false);
- TASSERT(impl.hasFeature("CSS", "") == false);
- TASSERT(impl.hasFeature("CSS2", "") == false);
- TASSERT(impl.hasFeature("Events", "") == false);
- TASSERT(impl.hasFeature("UIEvents", "") == false);
- TASSERT(impl.hasFeature("MouseEvents", "") == false);
- TASSERT(impl.hasFeature("MutationEvents", "") == false);
- TASSERT(impl.hasFeature("HTMLEvents", "") == false);
+
+ {
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+ XMLString::transcode("1.0", tempStr, 3999);
+ XMLString::transcode("2.0", tempStr2, 3999);
+ XMLString::transcode("3.0", tempStr3, 3999);
+ XMLString::transcode("", tempStr4, 3999);
+
+ XMLString::transcode("XmL", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
+ TASSERT(impl->hasFeature(tempStr5, tempStr) == true);
+ TASSERT(impl->hasFeature(tempStr5, tempStr2) == true);
+ TASSERT(impl->hasFeature(tempStr5, tempStr3) == false);
+
+ XMLString::transcode("Core", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("coRe", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr) == true);
+
+ XMLString::transcode("core", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr2) == true);
+
+ XMLString::transcode("cORe", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr3) == false);
+
+ XMLString::transcode("Traversal", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("traversal", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr) == false);
+
+ XMLString::transcode("TraVersal", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr2) == true);
+
+ XMLString::transcode("Range", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("raNge", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr) == false);
+
+ XMLString::transcode("RaNge", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr2) == true);
+
+
+ XMLString::transcode("HTML", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("Views", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("StyleSheets", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("CSS", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("CSS2", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("Events", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("UIEvents", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("MouseEvents", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("MutationEvents", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("HTMLEvents", tempStr5, 3999);
+ TASSERT(impl->hasFeature(tempStr5, tempStr4) == false);
}
- TESTEPILOG;
+
//
// isSupported test (similar to hasFeature)
//
- TESTPROLOG;
+
{
- DOM_Document doc;
- doc = DOM_Document::createDocument();
- TASSERT(doc.isSupported("XML", "") == true);
- TASSERT(doc.isSupported("XML", "1.0") == true);
- TASSERT(doc.isSupported("XML", "2.0") == true);
- TASSERT(doc.isSupported("XML", "3.0") == false);
-
- TASSERT(doc.isSupported("Core", "") == true);
- TASSERT(doc.isSupported("coRe", "1.0") == true);
- TASSERT(doc.isSupported("core", "2.0") == true);
- TASSERT(doc.isSupported("cORe", "3.0") == false);
-
- TASSERT(doc.isSupported("Traversal", "") == true);
- TASSERT(doc.isSupported("traversal", "1.0") == false);
- TASSERT(doc.isSupported("TraVersal", "2.0") == true);
-
- TASSERT(doc.isSupported("Range", "") == true);
- TASSERT(doc.isSupported("raNge", "1.0") == false);
- TASSERT(doc.isSupported("RaNge", "2.0") == true);
-
-
- TASSERT(doc.isSupported("HTML", "") == false);
- TASSERT(doc.isSupported("Views", "") == false);
- TASSERT(doc.isSupported("StyleSheets", "") == false);
- TASSERT(doc.isSupported("CSS", "") == false);
- TASSERT(doc.isSupported("CSS2", "") == false);
- TASSERT(doc.isSupported("Events", "") == false);
- TASSERT(doc.isSupported("UIEvents", "") == false);
- TASSERT(doc.isSupported("MouseEvents", "") == false);
- TASSERT(doc.isSupported("MutationEvents", "") == false);
- TASSERT(doc.isSupported("HTMLEvents", "") == false);
+ IDOM_Document* doc;
+ doc = IDOM_DOMImplementation::getImplementation()->createDocument();
+
+ XMLString::transcode("1.0", tempStr, 3999);
+ XMLString::transcode("2.0", tempStr2, 3999);
+ XMLString::transcode("3.0", tempStr3, 3999);
+ XMLString::transcode("", tempStr4, 3999);
+
+ XMLString::transcode("XmL", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == true);
+ TASSERT(doc->isSupported(tempStr5, tempStr) == true);
+ TASSERT(doc->isSupported(tempStr5, tempStr2) == true);
+ TASSERT(doc->isSupported(tempStr5, tempStr3) == false);
+
+ XMLString::transcode("Core", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("coRe", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr) == true);
+
+ XMLString::transcode("core", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr2) == true);
+
+ XMLString::transcode("cORe", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr3) == false);
+
+ XMLString::transcode("Traversal", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("traversal", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr) == false);
+
+ XMLString::transcode("TraVersal", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr2) == true);
+
+ XMLString::transcode("Range", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == true);
+
+ XMLString::transcode("raNge", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr) == false);
+
+ XMLString::transcode("RaNge", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr2) == true);
+
+
+ XMLString::transcode("HTML", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("Views", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("StyleSheets", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("CSS", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("CSS2", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("Events", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("UIEvents", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("MouseEvents", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("MutationEvents", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+
+ XMLString::transcode("HTMLEvents", tempStr5, 3999);
+ TASSERT(doc->isSupported(tempStr5, tempStr4) == false);
+ delete doc;
}
- TESTEPILOG;
+
//
// CreateDocumentType
//
- TESTPROLOG;
+
{
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
+ XMLString::transcode("foo:docName", tempStr, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode( "http://sysId", tempStr3, 3999);
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr, tempStr2, tempStr3);
TASSERT(dt != 0);
- TASSERT(dt.getNodeType() == DOM_Node::DOCUMENT_TYPE_NODE);
- TASSERT(dt.getNodeName().equals(qName));
- TASSERT(dt.getNamespaceURI().equals(0));
- TASSERT(dt.getPrefix().equals(0));
- TASSERT(dt.getLocalName().equals(0));
- TASSERT(dt.getPublicId().equals(pubId));
- TASSERT(dt.getSystemId().equals(sysId));
- TASSERT(dt.getInternalSubset().equals(0));
- TASSERT(dt.getOwnerDocument() == 0);
-
- DOM_NamedNodeMap nnm = dt.getEntities();
- TASSERT(nnm.getLength() == 0);
- nnm = dt.getNotations();
- TASSERT(nnm.getLength() == 0);
+ TASSERT(dt->getNodeType() == IDOM_Node::DOCUMENT_TYPE_NODE);
+ TASSERT(!XMLString::compareString(dt->getNodeName(), tempStr));
+ TASSERT(dt->getNamespaceURI() == 0);
+ TASSERT(dt->getPrefix() == 0);
+ TASSERT(dt->getLocalName() == 0);
+ TASSERT(!XMLString::compareString(dt->getPublicId(), tempStr2));
+ TASSERT(!XMLString::compareString(dt->getSystemId(), tempStr3));
+ TASSERT(dt->getInternalSubset() == 0);
+ TASSERT(dt->getOwnerDocument() == 0);
+
+ IDOM_NamedNodeMap* nnm = dt->getEntities();
+ TASSERT(nnm->getLength() == 0);
+ nnm = dt->getNotations();
+ TASSERT(nnm->getLength() == 0);
+ delete dt;
//
// Qualified name without prefix should also work.
//
- qName = "docName";
- dt = impl.createDocumentType(qName, pubId, sysId);
+ XMLString::transcode("docName", tempStr, 3999);
+ dt = impl->createDocumentType(tempStr, tempStr2, tempStr3);
TASSERT(dt != 0);
- TASSERT(dt.getNodeType() == DOM_Node::DOCUMENT_TYPE_NODE);
- TASSERT(dt.getNodeName().equals(qName));
- TASSERT(dt.getNamespaceURI().equals(0));
- TASSERT(dt.getPrefix().equals(0));
- TASSERT(dt.getLocalName().equals(0));
- TASSERT(dt.getPublicId().equals(pubId));
- TASSERT(dt.getSystemId().equals(sysId));
- TASSERT(dt.getInternalSubset().equals(0));
- TASSERT(dt.getOwnerDocument() == 0);
+ TASSERT(dt->getNodeType() == IDOM_Node::DOCUMENT_TYPE_NODE);
+ TASSERT(!XMLString::compareString(dt->getNodeName(), tempStr));
+ TASSERT(dt->getNamespaceURI() == 0);
+ TASSERT(dt->getPrefix() == 0);
+ TASSERT(dt->getLocalName() == 0);
+ TASSERT(!XMLString::compareString(dt->getPublicId(), tempStr2));
+ TASSERT(!XMLString::compareString(dt->getSystemId(), tempStr3));
+ TASSERT(dt->getInternalSubset() == 0);
+ TASSERT(dt->getOwnerDocument() == 0);
// Creating a DocumentType with invalid or malformed qName should fail.
- EXCEPTION_TEST(impl.createDocumentType("<docName", pubId, sysId), DOM_DOMException::INVALID_CHARACTER_ERR);
- EXCEPTION_TEST(impl.createDocumentType(":docName", pubId, sysId), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(impl.createDocumentType("docName:", pubId, sysId), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(impl.createDocumentType("doc::Name", pubId, sysId), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(impl.createDocumentType("doc:N:ame", pubId, sysId), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("<docName", tempStr, 3999);
+ EXCEPTION_TEST(impl->createDocumentType(tempStr, tempStr2, tempStr3), IDOM_DOMException::INVALID_CHARACTER_ERR);
+
+ XMLString::transcode(":docName", tempStr, 3999);
+ EXCEPTION_TEST(impl->createDocumentType(tempStr, tempStr2, tempStr3), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("docName:", tempStr, 3999);
+ EXCEPTION_TEST(impl->createDocumentType(tempStr, tempStr2, tempStr3), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("doc::Name", tempStr, 3999);
+ EXCEPTION_TEST(impl->createDocumentType(tempStr, tempStr2, tempStr3), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("doc:N:ame", tempStr, 3999);
+ EXCEPTION_TEST(impl->createDocumentType(tempStr, tempStr2, tempStr3), IDOM_DOMException::NAMESPACE_ERR);
+ delete dt;
+
}
- TESTEPILOG;
+
//
- // DOMImplementation::CreateDocument
+ // IDOMImplementation::CreateDocument
{
- // Preflight the operations that will lazily create DOMStrings
+ // Preflight the operations that will lazily create IDOMStrings
// in the implementation. This prevents incorrect reports of
// memory leaks in the real test.
- DOM_DOMImplementation impl;
- DOM_DocumentType dt;
- DOM_Document doc = impl.createDocument("", "a", dt);
- doc.getNodeName();
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+ IDOM_DocumentType* dt = 0;
+
+ XMLString::transcode("", tempStr2, 3999);
+ XMLString::transcode("a", tempStr, 3999);
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr, dt);
+
+ doc->getNodeName();
+ delete doc;
}
//
- TESTPROLOG;
+
{
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
+ XMLString::transcode("foo:docName", tempStr3, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode( "http://sysId", tempStr, 3999);
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
- DOMString docNSURI = "http://document.namespace";
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr3, tempStr2, tempStr);
- DOM_Document doc = impl.createDocument(docNSURI, qName, dt);
+ XMLString::transcode("http://document.namespace", tempStr2, 3999);
- TASSERT(dt.getOwnerDocument() == doc);
- TASSERT(doc.getOwnerDocument() == 0);
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr3, dt);
- TASSERT(doc.getNodeType() == DOM_Node::DOCUMENT_NODE);
- TASSERT(doc.getDoctype() == dt);
- TASSERT(doc.getNodeName().equals("#document"));
+ TASSERT(dt->getOwnerDocument() == doc);
+ TASSERT(doc->getOwnerDocument() == 0);
- TASSERT(doc.getNodeValue() == 0);
- TASSERT(doc.getNamespaceURI().equals(0));
- TASSERT(doc.getPrefix().equals(0));
- TASSERT(doc.getLocalName().equals(0));
+ TASSERT(doc->getNodeType() == IDOM_Node::DOCUMENT_NODE);
+ TASSERT(doc->getDoctype() == dt);
- DOM_Element el = doc.getDocumentElement();
+ XMLString::transcode("#document", tempStr, 3999);
+ TASSERT(!XMLString::compareString(doc->getNodeName(), tempStr));
- TASSERT(el.getLocalName().equals("docName"));
- TASSERT(el.getNamespaceURI().equals(docNSURI));
- TASSERT(el.getNodeName().equals(qName));
- TASSERT(el.getOwnerDocument() == doc);
- TASSERT(el.getParentNode() == doc);
- TASSERT(el.getPrefix().equals("foo"));
- TASSERT(el.getTagName().equals(qName));
- TASSERT(el.hasChildNodes() == false);
+ TASSERT(doc->getNodeValue() == 0);
+ TASSERT(doc->getNamespaceURI() == 0);
+ TASSERT(doc->getPrefix() == 0);
+ TASSERT(doc->getLocalName() == 0);
+
+ IDOM_Element* el = doc->getDocumentElement();
+
+ XMLString::transcode("docName", tempStr, 3999);
+ TASSERT(!XMLString::compareString(el->getLocalName(), tempStr));
+
+ TASSERT(!XMLString::compareString(el->getNamespaceURI(), tempStr2));
+ TASSERT(!XMLString::compareString(el->getNodeName(), tempStr3));
+ TASSERT(el->getOwnerDocument() == doc);
+ TASSERT(el->getParentNode() == doc);
+
+ XMLString::transcode("foo", tempStr, 3999);
+ TASSERT(!XMLString::compareString(el->getPrefix(), tempStr));
+
+ TASSERT(!XMLString::compareString(el->getTagName(), tempStr3));
+ TASSERT(el->hasChildNodes() == false);
//
@@ -1207,24 +945,27 @@
//
try
{
- DOM_Document doc2 = impl.createDocument(docNSURI, qName, dt);
+ IDOM_Document* doc2 = impl->createDocument(tempStr2, tempStr3, dt);
TASSERT(false); // should not reach here.
}
- catch ( DOM_DOMException &e)
+ catch ( IDOM_DOMException &e)
{
- TASSERT(e.code == DOM_DOMException::WRONG_DOCUMENT_ERR);
+ TASSERT(e.code == IDOM_DOMException::WRONG_DOCUMENT_ERR);
}
catch (...)
{
TASSERT(false); // Wrong exception thrown.
}
+ delete doc;
// Creating a document with null NamespaceURI and DocumentType
- doc = impl.createDocument(docNSURI, qName, 0);
+ doc = impl->createDocument(tempStr2, tempStr3, 0);
// Namespace tests of createDocument are covered by createElementNS below
+ delete doc;
+ delete dt;
}
- TESTEPILOG;
+
@@ -1232,439 +973,583 @@
//
// CreateElementNS methods
//
- TESTPROLOG;
+
{
// Set up an initial (root element only) document.
//
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+
+ XMLString::transcode("foo:docName", tempStr3, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode( "http://sysId", tempStr, 3999);
+
+
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr3, tempStr2, tempStr);
+
+ XMLString::transcode("http://document.namespace", tempStr2, 3999);
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
-
- DOMString docNSURI = "http://document.namespace";
- DOM_Document doc = impl.createDocument(docNSURI, qName, dt);
- DOM_Element rootEl = doc.getDocumentElement();
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr3, dt);
+ IDOM_Element* rootEl = doc->getDocumentElement();
//
// CreateElementNS
//
- DOM_Element ela = doc.createElementNS("http://nsa", "a:ela"); // prefix and URI
- DOM_Element elb = doc.createElementNS("http://nsb", "elb"); // URI, no prefix.
- DOM_Element elc = doc.createElementNS("", "elc"); // No URI, no prefix.
-
- rootEl.appendChild(ela);
- rootEl.appendChild(elb);
- rootEl.appendChild(elc);
-
- TASSERT(ela.getNodeName().equals("a:ela"));
- TASSERT(ela.getNamespaceURI().equals("http://nsa"));
- TASSERT(ela.getPrefix().equals("a"));
- TASSERT(ela.getLocalName().equals("ela"));
- TASSERT(ela.getTagName().equals("a:ela"));
-
- TASSERT(elb.getNodeName().equals("elb"));
- TASSERT(elb.getNamespaceURI().equals("http://nsb"));
- TASSERT(elb.getPrefix().equals(""));
- TASSERT(elb.getLocalName().equals("elb"));
- TASSERT(elb.getTagName().equals("elb"));
-
- TASSERT(elc.getNodeName().equals("elc"));
- TASSERT(elc.getNamespaceURI().equals(""));
- TASSERT(elc.getPrefix().equals(""));
- TASSERT(elc.getLocalName().equals("elc"));
- TASSERT(elc.getTagName().equals("elc"));
+ XMLString::transcode("http://nsa", tempStr5, 3999);
+ XMLString::transcode("a:ela", tempStr, 3999);
+ IDOM_Element* ela = doc->createElementNS(tempStr5, tempStr); // prefix and URI
+
+ TASSERT(!XMLString::compareString(ela->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(ela->getNamespaceURI(), tempStr5));
+ XMLString::transcode("a", tempStr3, 3999);
+ TASSERT(!XMLString::compareString(ela->getPrefix(), tempStr3));
+ XMLString::transcode("ela", tempStr3, 3999);
+ TASSERT(!XMLString::compareString(ela->getLocalName(), tempStr3));
+ TASSERT(!XMLString::compareString(ela->getTagName(), tempStr));
+
+
+ XMLString::transcode("", tempStr3, 3999);
+ XMLString::transcode("http://nsb", tempStr2, 3999);
+ XMLString::transcode("elb", tempStr, 3999);
+ IDOM_Element* elb = doc->createElementNS(tempStr2, tempStr); // URI, no prefix.
+
+ TASSERT(!XMLString::compareString(elb->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(elb->getNamespaceURI(), tempStr2));
+ TASSERT(!XMLString::compareString(elb->getPrefix(), tempStr3));
+ TASSERT(!XMLString::compareString(elb->getLocalName(), tempStr));
+ TASSERT(!XMLString::compareString(elb->getTagName(), tempStr));
+
+
+ XMLString::transcode("elc", tempStr, 3999);
+ IDOM_Element* elc = doc->createElementNS(tempStr3, tempStr); // No URI, no prefix.
+
+ TASSERT(!XMLString::compareString(elc->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(elc->getNamespaceURI(), tempStr3));
+ TASSERT(!XMLString::compareString(elc->getPrefix(), tempStr3));
+ TASSERT(!XMLString::compareString(elc->getLocalName(), tempStr));
+ TASSERT(!XMLString::compareString(elc->getTagName(), tempStr));
+
+ rootEl->appendChild(ela);
+ rootEl->appendChild(elb);
+ rootEl->appendChild(elc);
// Badly formed qualified name
- EXCEPTION_TEST(doc.createElementNS("http://nsa", "<a"), DOM_DOMException::INVALID_CHARACTER_ERR);
- EXCEPTION_TEST(doc.createElementNS("http://nsa", ":a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS("http://nsa", "a:"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS("http://nsa", "a::a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS("http://nsa", "a:a:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("<a", tempStr4, 3999);
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr4), IDOM_DOMException::INVALID_CHARACTER_ERR);
+
+ XMLString::transcode(":a", tempStr4, 3999);
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr4), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a:", tempStr4, 3999);
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr4), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a::a", tempStr4, 3999);
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr4), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a:a:a", tempStr4, 3999);
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr4), IDOM_DOMException::NAMESPACE_ERR);
// xml:a must have namespaceURI == "http://www.w3.org/XML/1998/namespace"
- DOMString xmlURI = "http://www.w3.org/XML/1998/namespace";
- TASSERT(doc.createElementNS(xmlURI, "xml:a").getNamespaceURI().equals(xmlURI));
- EXCEPTION_TEST(doc.createElementNS("http://nsa", "xml:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS("", "xml:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS(0, "xml:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("http://www.w3.org/XML/1998/namespace", tempStr4, 3999);
+ XMLString::transcode("xml:a",tempStr2, 3999);
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr4, tempStr2)->getNamespaceURI(), tempStr4));
+ EXCEPTION_TEST(doc->createElementNS(tempStr5, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createElementNS(tempStr3, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createElementNS(0, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//unlike Attribute, xmlns (no different from foo) can have any namespaceURI for Element
- TASSERT(doc.createElementNS("http://nsa", "xmlns").getNamespaceURI().equals("http://nsa"));
- TASSERT(doc.createElementNS(xmlURI, "xmlns").getNamespaceURI().equals(xmlURI));
- TASSERT(doc.createElementNS("", "xmlns").getNamespaceURI().equals(""));
- TASSERT(doc.createElementNS(0, "xmlns").getNamespaceURI().equals(""));
+ XMLString::transcode("xmlns", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr5, tempStr2)->getNamespaceURI(), tempStr5));
+
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr4, tempStr2)->getNamespaceURI(), tempStr4));
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr3, tempStr2)->getNamespaceURI(), tempStr3));
+ TASSERT(!XMLString::compareString(doc->createElementNS(0, tempStr2)->getNamespaceURI(), tempStr3));
//unlike Attribute, xmlns:a (no different from foo:a) can have any namespaceURI for Element
//except "" and null
- TASSERT(doc.createElementNS("http://nsa", "xmlns:a").getNamespaceURI().equals("http://nsa"));
- TASSERT(doc.createElementNS(xmlURI, "xmlns:a").getNamespaceURI().equals(xmlURI));
- EXCEPTION_TEST(doc.createElementNS("", "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS(0, "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("xmlns:a", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr5, tempStr2)->getNamespaceURI(), tempStr5));
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr4, tempStr2)->getNamespaceURI(), tempStr4));
+ EXCEPTION_TEST(doc->createElementNS(tempStr3, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createElementNS(0, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//In fact, any prefix != null should have a namespaceURI != 0 or != ""
- TASSERT(doc.createElementNS("http://nsa", "foo:a").getNamespaceURI().equals("http://nsa"));
- EXCEPTION_TEST(doc.createElementNS("", "foo:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createElementNS(0, "foo:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("foo:a", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(doc->createElementNS(tempStr5, tempStr2)->getNamespaceURI(), tempStr5));
+ EXCEPTION_TEST(doc->createElementNS(tempStr3, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createElementNS(0, tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//Change prefix
- DOM_Element elem = doc.createElementNS("http://nsa", "foo:a");
- elem.setPrefix("bar");
- TASSERT(elem.getNodeName().equals("bar:a"));
- TASSERT(elem.getNamespaceURI().equals("http://nsa"));
- TASSERT(elem.getPrefix().equals("bar"));
- TASSERT(elem.getLocalName().equals("a"));
- TASSERT(elem.getTagName().equals("bar:a"));
+ IDOM_Element* elem = doc->createElementNS(tempStr5, tempStr2);
+ XMLString::transcode("bar", tempStr2, 3999);
+ elem->setPrefix(tempStr2);
+ XMLString::transcode("bar:a", tempStr4, 3999);
+ TASSERT(!XMLString::compareString(elem->getNodeName(), tempStr4));
+ TASSERT(!XMLString::compareString(elem->getNamespaceURI(), tempStr5));
+ TASSERT(!XMLString::compareString(elem->getPrefix(), tempStr2));
+ XMLString::transcode("a", tempStr, 3999);
+ TASSERT(!XMLString::compareString(elem->getLocalName(), tempStr));
+ TASSERT(!XMLString::compareString(elem->getTagName(), tempStr4));
//The spec does not prevent us from setting prefix to a node without prefix
- elem = doc.createElementNS("http://nsa", "a");
- TASSERT(elem.getPrefix().equals(""));
- elem.setPrefix("bar");
- TASSERT(elem.getNodeName().equals("bar:a"));
- TASSERT(elem.getNamespaceURI().equals("http://nsa"));
- TASSERT(elem.getPrefix().equals("bar"));
- TASSERT(elem.getLocalName().equals("a"));
- TASSERT(elem.getTagName().equals("bar:a"));
+ elem = doc->createElementNS(tempStr5, tempStr);
+ TASSERT(!XMLString::compareString(elem->getPrefix(), tempStr3));
+ elem->setPrefix(tempStr2);
+ TASSERT(!XMLString::compareString(elem->getNodeName(), tempStr4));
+ TASSERT(!XMLString::compareString(elem->getNamespaceURI(), tempStr5));
+ TASSERT(!XMLString::compareString(elem->getPrefix(), tempStr2));
+ TASSERT(!XMLString::compareString(elem->getLocalName(), tempStr));
+ TASSERT(!XMLString::compareString(elem->getTagName(), tempStr4));
+
//Special case for xml:a where namespaceURI must be xmlURI
- elem = doc.createElementNS(xmlURI, "foo:a");
- elem.setPrefix("xml");
- elem = doc.createElementNS("http://nsa", "foo:a");
- EXCEPTION_TEST(elem.setPrefix("xml"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("foo:a", tempStr, 3999);
+ XMLString::transcode("http://www.w3.org/XML/1998/namespace", tempStr4, 3999);
+ elem = doc->createElementNS(tempStr4, tempStr);
+ XMLString::transcode("xml", tempStr2, 3999);
+ elem->setPrefix(tempStr2);
+ elem = doc->createElementNS(tempStr5, tempStr);
+ EXCEPTION_TEST(elem->setPrefix(tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//However, there is no restriction on prefix xmlns
- elem.setPrefix("xmlns");
+ XMLString::transcode("xmlns", tempStr4, 3999);
+ elem->setPrefix(tempStr4);
//Also an element can not have a prefix with namespaceURI == null or ""
- elem = doc.createElementNS(0, "a");
- EXCEPTION_TEST(elem.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
- elem = doc.createElementNS("", "a");
- EXCEPTION_TEST(elem.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("a", tempStr, 3999);
+ XMLString::transcode("foo", tempStr2, 3999);
+ elem = doc->createElementNS(0, tempStr);
+ EXCEPTION_TEST(elem->setPrefix(tempStr2), IDOM_DOMException::NAMESPACE_ERR);
+ elem = doc->createElementNS(tempStr3, tempStr);
+ EXCEPTION_TEST(elem->setPrefix(tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//Only prefix of Element and Attribute can be changed
- EXCEPTION_TEST(doc.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->setPrefix(tempStr2), IDOM_DOMException::NAMESPACE_ERR);
//Prefix of readonly Element can not be changed.
- //However, there is no way to create such DOM_Element for testing yet.
+ //However, there is no way to create such IDOM_Element* for testing yet.
+ delete doc;
+ delete dt;
}
- TESTEPILOG;
+
//
// CreateAttributeNS methods
//
- TESTPROLOG;
+
{
// Set up an initial (root element only) document.
//
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+
+ XMLString::transcode("foo:docName", tempStr3, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode( "http://sysId", tempStr, 3999);
+
+
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr3, tempStr2, tempStr);
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
-
- DOMString docNSURI = "http://document.namespace";
- DOM_Document doc = impl.createDocument(docNSURI, qName, dt);
- DOM_Element rootEl = doc.getDocumentElement();
+ XMLString::transcode("http://document.namespace", tempStr2, 3999);
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr3, dt);
+ IDOM_Element* rootEl = doc->getDocumentElement();
//
// CreateAttributeNS
//
- DOM_Attr attra = doc.createAttributeNS("http://nsa", "a:attra"); // prefix and URI
- DOM_Attr attrb = doc.createAttributeNS("http://nsb", "attrb"); // URI, no prefix.
- DOM_Attr attrc = doc.createAttributeNS("", "attrc"); // No URI, no prefix.
-
- TASSERT(attra.getNodeName().equals("a:attra"));
- TASSERT(attra.getNamespaceURI().equals("http://nsa"));
- TASSERT(attra.getPrefix().equals("a"));
- TASSERT(attra.getLocalName().equals("attra"));
- TASSERT(attra.getName().equals("a:attra"));
- TASSERT(attra.getOwnerElement() == 0);
-
- TASSERT(attrb.getNodeName().equals("attrb"));
- TASSERT(attrb.getNamespaceURI().equals("http://nsb"));
- TASSERT(attrb.getPrefix().equals(""));
- TASSERT(attrb.getLocalName().equals("attrb"));
- TASSERT(attrb.getName().equals("attrb"));
- TASSERT(attrb.getOwnerElement() == 0);
-
- TASSERT(attrc.getNodeName().equals("attrc"));
- TASSERT(attrc.getNamespaceURI().equals(""));
- TASSERT(attrc.getPrefix().equals(""));
- TASSERT(attrc.getLocalName().equals("attrc"));
- TASSERT(attrc.getName().equals("attrc"));
- TASSERT(attrc.getOwnerElement() == 0);
+ XMLString::transcode("http://nsa", tempStr5, 3999);
+ XMLString::transcode("http://nsb", tempStr4, 3999);
+ XMLString::transcode("", tempStr3, 3999);
+
+
+ XMLString::transcode("a:attra", tempStr, 3999);
+ IDOM_Attr* attra = doc->createAttributeNS(tempStr5, tempStr); // prefix and URI
+ TASSERT(!XMLString::compareString(attra->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(attra->getNamespaceURI(), tempStr5));
+
+ XMLString::transcode("a", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(attra->getPrefix(), tempStr2));
+
+ XMLString::transcode("attra", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(attra->getLocalName(), tempStr2));
+ TASSERT(!XMLString::compareString(attra->getName(), tempStr));
+ TASSERT(attra->getOwnerElement() == 0);
+
+ XMLString::transcode("attrb", tempStr2, 3999);
+ IDOM_Attr* attrb = doc->createAttributeNS(tempStr4, tempStr2); // URI, no prefix.
+ TASSERT(!XMLString::compareString(attrb->getNodeName(), tempStr2));
+ TASSERT(!XMLString::compareString(attrb->getNamespaceURI(), tempStr4));
+ TASSERT(!XMLString::compareString(attrb->getPrefix(), tempStr3));
+ TASSERT(!XMLString::compareString(attrb->getLocalName(), tempStr2));
+ TASSERT(!XMLString::compareString(attrb->getName(), tempStr2));
+ TASSERT(attrb->getOwnerElement() == 0);
+
+
+
+ XMLString::transcode("attrc", tempStr2, 3999);
+ IDOM_Attr* attrc = doc->createAttributeNS(tempStr3, tempStr2);
+ TASSERT(!XMLString::compareString(attrc->getNodeName(), tempStr2));
+ TASSERT(!XMLString::compareString(attrc->getNamespaceURI(), tempStr3));
+ TASSERT(!XMLString::compareString(attrc->getPrefix(), tempStr3));
+ TASSERT(!XMLString::compareString(attrc->getLocalName(), tempStr2));
+ TASSERT(!XMLString::compareString(attrc->getName(), tempStr2));
+ TASSERT(attrc->getOwnerElement() == 0);
// Badly formed qualified name
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "<a"), DOM_DOMException::INVALID_CHARACTER_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", ":a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "a:"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "a::a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "a:a:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("<a", tempStr, 3999);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::INVALID_CHARACTER_ERR);
+
+ XMLString::transcode(":a", tempStr, 3999);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a:", tempStr, 3999);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a::a", tempStr, 3999);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+
+ XMLString::transcode("a:a:a", tempStr, 3999);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
// xml:a must have namespaceURI == "http://www.w3.org/XML/1998/namespace"
- DOMString xmlURI = "http://www.w3.org/XML/1998/namespace";
- TASSERT(doc.createAttributeNS(xmlURI, "xml:a").getNamespaceURI().equals(xmlURI));
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "xml:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("", "xml:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(0, "xml:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("http://www.w3.org/XML/1998/namespace", tempStr2, 3999);
+ XMLString::transcode("xml:a", tempStr, 3999);
+ TASSERT(!XMLString::compareString(doc->createAttributeNS(tempStr2, tempStr)->getNamespaceURI(), tempStr2));
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr3, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(0, tempStr), IDOM_DOMException::NAMESPACE_ERR);
//unlike Element, xmlns must have namespaceURI == "http://www.w3.org/2000/xmlns/"
- DOMString xmlnsURI = "http://www.w3.org/2000/xmlns/";
- TASSERT(doc.createAttributeNS(xmlnsURI, "xmlns").getNamespaceURI().equals(xmlnsURI));
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "xmlns"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(xmlURI, "xmlns"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("", "xmlns"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(0, "xmlns"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("http://www.w3.org/2000/xmlns/", tempStr4, 3999);
+ XMLString::transcode("xmlns", tempStr, 3999);
+ TASSERT(!XMLString::compareString(doc->createAttributeNS(tempStr4, tempStr)->getNamespaceURI(), tempStr4));
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr2, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr3, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(0, tempStr), IDOM_DOMException::NAMESPACE_ERR);
//unlike Element, xmlns:a must have namespaceURI == "http://www.w3.org/2000/xmlns/"
- TASSERT(doc.createAttributeNS(xmlnsURI, "xmlns:a").getNamespaceURI().equals(xmlnsURI));
- EXCEPTION_TEST(doc.createAttributeNS("http://nsa", "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(xmlURI, "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS("", "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(0, "xmlns:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("xmlns:a", tempStr, 3999);
+ TASSERT(!XMLString::compareString(doc->createAttributeNS(tempStr4, tempStr)->getNamespaceURI(), tempStr4));
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr5, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr2, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr3, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(0, tempStr), IDOM_DOMException::NAMESPACE_ERR);
//In fact, any prefix != null should have a namespaceURI != 0 or != ""
- TASSERT(doc.createAttributeNS("http://nsa", "foo:a").getNamespaceURI().equals("http://nsa"));
- EXCEPTION_TEST(doc.createAttributeNS("", "foo:a"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(doc.createAttributeNS(0, "foo:a"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("foo:a", tempStr, 3999);
+ TASSERT(!XMLString::compareString(doc->createAttributeNS(tempStr5, tempStr)->getNamespaceURI(), tempStr5));
+ EXCEPTION_TEST(doc->createAttributeNS(tempStr3, tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->createAttributeNS(0, tempStr), IDOM_DOMException::NAMESPACE_ERR);
//Change prefix
- DOM_Attr attr = doc.createAttributeNS("http://nsa", "foo:a");
- attr.setPrefix("bar");
- TASSERT(attr.getNodeName().equals("bar:a"));
- TASSERT(attr.getNamespaceURI().equals("http://nsa"));
- TASSERT(attr.getPrefix().equals("bar"));
- TASSERT(attr.getLocalName().equals("a"));
- TASSERT(attr.getName().equals("bar:a"));
+ IDOM_Attr* attr = doc->createAttributeNS(tempStr5, tempStr);
+ XMLString::transcode("bar", tempStr4, 3999);
+ XMLString::transcode("bar:a", tempStr, 3999);
+ XMLString::transcode("a", tempStr2, 3999);
+ attr->setPrefix(tempStr4);
+
+ TASSERT(!XMLString::compareString(attr->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(attr->getNamespaceURI(), tempStr5));
+ TASSERT(!XMLString::compareString(attr->getPrefix(), tempStr4));
+ TASSERT(!XMLString::compareString(attr->getName(), tempStr));
//The spec does not prevent us from setting prefix to a node without prefix
- attr = doc.createAttributeNS("http://nsa", "a");
- TASSERT(attr.getPrefix().equals(""));
- attr.setPrefix("bar");
- TASSERT(attr.getNodeName().equals("bar:a"));
- TASSERT(attr.getNamespaceURI().equals("http://nsa"));
- TASSERT(attr.getPrefix().equals("bar"));
- TASSERT(attr.getLocalName().equals("a"));
- TASSERT(attr.getName().equals("bar:a"));
+ TASSERT(!XMLString::compareString(attr->getLocalName(), tempStr2));
+ attr = doc->createAttributeNS(tempStr5, tempStr2);
+ TASSERT(!XMLString::compareString(attr->getPrefix(), tempStr3));
+ attr->setPrefix(tempStr4);
+ TASSERT(!XMLString::compareString(attr->getNodeName(), tempStr));
+ TASSERT(!XMLString::compareString(attr->getNamespaceURI(), tempStr5));
+ TASSERT(!XMLString::compareString(attr->getPrefix(), tempStr4));
+ TASSERT(!XMLString::compareString(attr->getLocalName(), tempStr2));
+ TASSERT(!XMLString::compareString(attr->getName(), tempStr));
+
+
//Special case for xml:a where namespaceURI must be xmlURI
- attr = doc.createAttributeNS(xmlURI, "foo:a");
- attr.setPrefix("xml");
- attr = doc.createAttributeNS("http://nsa", "foo:a");
- EXCEPTION_TEST(attr.setPrefix("xml"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("foo:a", tempStr, 3999);
+ XMLString::transcode("xml", tempStr4, 3999);
+ XMLString::transcode("http://www.w3.org/XML/1998/namespace", tempStr2, 3999);
+
+ attr = doc->createAttributeNS(tempStr2, tempStr);
+ attr->setPrefix(tempStr4);
+ attr = doc->createAttributeNS(tempStr5, tempStr);
+ EXCEPTION_TEST(attr->setPrefix(tempStr4), IDOM_DOMException::NAMESPACE_ERR);
//Special case for xmlns:a where namespaceURI must be xmlURI
- attr = doc.createAttributeNS(xmlnsURI, "foo:a");
- attr.setPrefix("xmlns");
- attr = doc.createAttributeNS("http://nsa", "foo:a");
- EXCEPTION_TEST(attr.setPrefix("xmlns"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("http://www.w3.org/2000/xmlns/", tempStr2, 3999);
+ attr = doc->createAttributeNS(tempStr2, tempStr);
+
+ XMLString::transcode("xmlns", tempStr4, 3999);
+ attr->setPrefix(tempStr4);
+ attr = doc->createAttributeNS(tempStr5, tempStr);
+ EXCEPTION_TEST(attr->setPrefix(tempStr4), IDOM_DOMException::NAMESPACE_ERR);
//Special case for xmlns where no prefix can be set
- attr = doc.createAttributeNS(xmlnsURI, "xmlns");
- EXCEPTION_TEST(attr.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
- EXCEPTION_TEST(attr.setPrefix("xmlns"), DOM_DOMException::NAMESPACE_ERR);
+ attr = doc->createAttributeNS(tempStr2, tempStr4);
+
+ XMLString::transcode("foo", tempStr, 3999);
+ EXCEPTION_TEST(attr->setPrefix(tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(attr->setPrefix(tempStr4), IDOM_DOMException::NAMESPACE_ERR);
//Also an attribute can not have a prefix with namespaceURI == null or ""
- attr = doc.createAttributeNS(0, "a");
- EXCEPTION_TEST(attr.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
- attr = doc.createAttributeNS("", "a");
- EXCEPTION_TEST(attr.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
+ XMLString::transcode("a", tempStr4, 3999);
+ attr = doc->createAttributeNS(0, tempStr4);
+ EXCEPTION_TEST(attr->setPrefix(tempStr), IDOM_DOMException::NAMESPACE_ERR);
+ attr = doc->createAttributeNS(tempStr3, tempStr4);
+ EXCEPTION_TEST(attr->setPrefix(tempStr), IDOM_DOMException::NAMESPACE_ERR);
//Only prefix of Element and Attribute can be changed
- EXCEPTION_TEST(doc.setPrefix("foo"), DOM_DOMException::NAMESPACE_ERR);
+ EXCEPTION_TEST(doc->setPrefix(tempStr), IDOM_DOMException::NAMESPACE_ERR);
//Prefix of readonly Attribute can not be changed.
- //However, there is no way to create such DOM_Attribute for testing yet.
+ //However, there is no way to create such IDOM_Attribute for testing yet.
+ delete doc;
+ delete dt;
}
- TESTEPILOG;
+
//
// getElementsByTagName*
//
- TESTPROLOG;
+
{
// Set up an initial (root element only) document.
//
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
+
+ XMLString::transcode("foo:docName", tempStr3, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode( "http://sysId", tempStr, 3999);
+
+
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr3, tempStr2, tempStr);
+
+ XMLString::transcode("http://document.namespace", tempStr2, 3999);
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr3, dt);
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
-
- DOMString docNSURI = "http://document.namespace";
- DOM_Document doc = impl.createDocument(docNSURI, qName, dt);
- DOM_Element rootEl = doc.getDocumentElement();
+ IDOM_Element* rootEl = doc->getDocumentElement();
//
// Populate the document
//
- DOM_Element ela = doc.createElementNS("http://nsa", "a:ela");
- rootEl.appendChild(ela);
- DOM_Element elb = doc.createElementNS("http://nsb", "elb");
- rootEl.appendChild(elb);
- DOM_Element elc = doc.createElementNS("", "elc");
- rootEl.appendChild(elc);
- DOM_Element eld = doc.createElementNS("http://nsa", "d:ela");
- rootEl.appendChild(eld);
- DOM_Element ele = doc.createElementNS("http://nse", "elb");
- rootEl.appendChild(ele);
+ XMLString::transcode("http://nsa", tempStr5, 3999);
+ XMLString::transcode("http://nsb", tempStr4, 3999);
+ XMLString::transcode("", tempStr3, 3999);
+
+ XMLString::transcode("a:ela", tempStr, 3999);
+ IDOM_Element* ela = doc->createElementNS(tempStr5, tempStr);
+ rootEl->appendChild(ela);
+
+ XMLString::transcode("elb", tempStr2, 3999);
+ IDOM_Element* elb = doc->createElementNS(tempStr4, tempStr2);
+ rootEl->appendChild(elb);
+
+ XMLString::transcode("elc", tempStr, 3999);
+ IDOM_Element* elc = doc->createElementNS(tempStr3, tempStr);
+ rootEl->appendChild(elc);
+
+ XMLString::transcode("d:ela", tempStr, 3999);
+ IDOM_Element* eld = doc->createElementNS(tempStr5, tempStr);
+ rootEl->appendChild(eld);
+
+ XMLString::transcode("http://nse", tempStr, 3999);
+ IDOM_Element* ele = doc->createElementNS(tempStr, tempStr2);
+ rootEl->appendChild(ele);
//
- // Access with DOM Level 1 getElementsByTagName
+ // Access with IDOM Level 1 getElementsByTagName
//
- DOM_NodeList nl;
+ IDOM_NodeList* nl;
- nl = doc.getElementsByTagName("a:ela");
- TASSERT(nl.getLength() == 1);
- TASSERT(nl.item(0) == ela);
+ XMLString::transcode("a:ela", tempStr, 3999);
+ nl = doc->getElementsByTagName(tempStr);
+ TASSERT(nl->getLength() == 1);
+ TASSERT(nl->item(0) == ela);
- nl = doc.getElementsByTagName("elb");
- TASSERT(nl.getLength() == 2);
- TASSERT(nl.item(0) == elb);
- TASSERT(nl.item(1) == ele);
+ nl = doc->getElementsByTagName(tempStr2);
+ TASSERT(nl->getLength() == 2);
+ TASSERT(nl->item(0) == elb);
+ TASSERT(nl->item(1) == ele);
- nl = doc.getElementsByTagName("d:ela");
- TASSERT(nl.getLength() == 1);
- TASSERT(nl.item(0) == eld);
+ XMLString::transcode("d:ela", tempStr, 3999);
+ nl = doc->getElementsByTagName(tempStr);
+ TASSERT(nl->getLength() == 1);
+ TASSERT(nl->item(0) == eld);
//
- // Access with DOM Level 2 getElementsByTagNameNS
+ // Access with IDOM Level 2 getElementsByTagNameNS
//
- nl = doc.getElementsByTagNameNS("", "elc");
- TASSERT(nl.getLength() == 1);
- TASSERT(nl.item(0) == elc);
+ XMLString::transcode("elc", tempStr, 3999);
+ nl = doc->getElementsByTagNameNS(tempStr3, tempStr);
+ TASSERT(nl->getLength() == 1);
+ TASSERT(nl->item(0) == elc);
- nl = doc.getElementsByTagNameNS(0, "elc");
- TASSERT(nl.getLength() == 1);
- TASSERT(nl.item(0) == elc);
+ nl = doc->getElementsByTagNameNS(0, tempStr);
+ TASSERT(nl->getLength() == 1);
+ TASSERT(nl->item(0) == elc);
- nl = doc.getElementsByTagNameNS("http://nsa", "ela");
- TASSERT(nl.getLength() == 2);
- TASSERT(nl.item(0) == ela);
- TASSERT(nl.item(1) == eld);
+ XMLString::transcode("ela", tempStr, 3999);
+ nl = doc->getElementsByTagNameNS(tempStr5, tempStr);
+ TASSERT(nl->getLength() == 2);
+ TASSERT(nl->item(0) == ela);
+ TASSERT(nl->item(1) == eld);
- nl = doc.getElementsByTagNameNS("", "elb");
- TASSERT(nl.getLength() == 0);
+ nl = doc->getElementsByTagNameNS(tempStr3, tempStr2);
+ TASSERT(nl->getLength() == 0);
- nl = doc.getElementsByTagNameNS("http://nsb", "elb");
- TASSERT(nl.getLength() == 1);
- TASSERT(nl.item(0) == elb);
+ nl = doc->getElementsByTagNameNS(tempStr4, tempStr2);
+ TASSERT(nl->getLength() == 1);
+ TASSERT(nl->item(0) == elb);
- nl = doc.getElementsByTagNameNS("*", "elb");
- TASSERT(nl.getLength() == 2);
- TASSERT(nl.item(0) == elb);
- TASSERT(nl.item(1) == ele);
+ XMLString::transcode("*", tempStr, 3999);
+ nl = doc->getElementsByTagNameNS(tempStr, tempStr2);
+ TASSERT(nl->getLength() == 2);
+ TASSERT(nl->item(0) == elb);
+ TASSERT(nl->item(1) == ele);
- nl = doc.getElementsByTagNameNS("http://nsa", "*");
- TASSERT(nl.getLength() == 2);
- TASSERT(nl.item(0) == ela);
- TASSERT(nl.item(1) == eld);
+ nl = doc->getElementsByTagNameNS(tempStr5, tempStr);
+ TASSERT(nl->getLength() == 2);
+ TASSERT(nl->item(0) == ela);
+ TASSERT(nl->item(1) == eld);
- nl = doc.getElementsByTagNameNS("*", "*");
- TASSERT(nl.getLength() == 6); // Gets the document root element, plus 5 more
+ nl = doc->getElementsByTagNameNS(tempStr, tempStr);
+ TASSERT(nl->getLength() == 6); // Gets the document root element, plus 5 more
- TASSERT(nl.item(6) == 0);
- // TASSERT(nl.item(-1) == 0);
+ TASSERT(nl->item(6) == 0);
+ // TASSERT(nl->item(-1) == 0);
- nl = rootEl.getElementsByTagNameNS("*", "*");
- TASSERT(nl.getLength() == 5);
+ nl = rootEl->getElementsByTagNameNS(tempStr, tempStr);
+ TASSERT(nl->getLength() == 5);
- nl = doc.getElementsByTagNameNS("http://nsa", "d:ela");
- TASSERT(nl.getLength() == 0);
+ XMLString::transcode("d:ela", tempStr2, 3999);
+ nl = doc->getElementsByTagNameNS(tempStr5, tempStr2);
+ TASSERT(nl->getLength() == 0);
//
// Node lists are Live
//
- nl = doc.getElementsByTagNameNS("*", "*");
- DOM_NodeList nla = ela.getElementsByTagNameNS("*", "*");
+ nl = doc->getElementsByTagNameNS(tempStr, tempStr);
+ IDOM_NodeList* nla = ela->getElementsByTagNameNS(tempStr, tempStr);
- TASSERT(nl.getLength() == 6);
- TASSERT(nla.getLength() == 0);
+ TASSERT(nl->getLength() == 6);
+ TASSERT(nla->getLength() == 0);
- rootEl.removeChild(elc);
- TASSERT(nl.getLength() == 5);
- TASSERT(nla.getLength() == 0);
-
- ela.appendChild(elc);
- TASSERT(nl.getLength() == 6);
- TASSERT(nla.getLength() == 1);
+ rootEl->removeChild(elc);
+ TASSERT(nl->getLength() == 5);
+ TASSERT(nla->getLength() == 0);
+
+ ela->appendChild(elc);
+ TASSERT(nl->getLength() == 6);
+ TASSERT(nla->getLength() == 1);
+ delete doc;
+ delete dt;
}
- TESTEPILOG;
+
//
// Attributes and NamedNodeMaps.
//
- TESTPROLOG;
+
{
// Set up an initial (root element only) document.
//
- DOM_DOMImplementation impl;
+ IDOM_DOMImplementation* impl = IDOM_DOMImplementation::getImplementation();
- DOMString qName = "foo:docName";
- DOMString pubId = "pubId";
- DOMString sysId = "http://sysId";
- DOM_DocumentType dt = impl.createDocumentType(qName, pubId, sysId);
-
- DOMString docNSURI = "http://document.namespace";
- DOM_Document doc = impl.createDocument(docNSURI, qName, dt);
- DOM_Element rootEl = doc.getDocumentElement();
+ XMLString::transcode("foo:docName", tempStr, 3999);
+ XMLString::transcode("pubId", tempStr2, 3999);
+ XMLString::transcode("http://sysId", tempStr3, 3999);
+ IDOM_DocumentType* dt = impl->createDocumentType(tempStr, tempStr2, tempStr3);
+
+ XMLString::transcode("http://document.namespace", tempStr2, 3999);
+ IDOM_Document* doc = impl->createDocument(tempStr2, tempStr, dt);
+ IDOM_Element* rootEl = doc->getDocumentElement();
//
// Create a set of attributes and hang them on the root element.
//
- DOM_Attr attra = doc.createAttributeNS("http://nsa", "a:attra");
- rootEl.setAttributeNodeNS(attra);
- DOM_Attr attrb = doc.createAttributeNS("http://nsb", "attrb");
- rootEl.setAttributeNodeNS(attrb);
- DOM_Attr attrc = doc.createAttributeNS("", "attrc");
- rootEl.setAttributeNodeNS(attrc);
- DOM_Attr attrd = doc.createAttributeNS("http://nsa", "d:attra");
- rootEl.setAttributeNodeNS(attrd);
- DOM_Attr attre = doc.createAttributeNS("http://nse", "attrb");
- rootEl.setAttributeNodeNS(attre);
+ XMLString::transcode("http://nsa", tempStr5, 3999);
+ XMLString::transcode("http://nsb", tempStr4, 3999);
+ XMLString::transcode("", tempStr3, 3999);
+ XMLString::transcode("a:attra", tempStr2, 3999);
+
+ IDOM_Attr* attra = doc->createAttributeNS(tempStr5, tempStr2);
+ rootEl->setAttributeNodeNS(attra);
+
+ XMLString::transcode("attrb", tempStr, 3999);
+ IDOM_Attr* attrb = doc->createAttributeNS(tempStr4, tempStr);
+ rootEl->setAttributeNodeNS(attrb);
+
+ XMLString::transcode("attrc", tempStr, 3999);
+ IDOM_Attr* attrc = doc->createAttributeNS(tempStr3, tempStr);
+ rootEl->setAttributeNodeNS(attrc);
+
+ XMLString::transcode("d:attra", tempStr, 3999);
+ IDOM_Attr* attrd = doc->createAttributeNS(tempStr5, tempStr);
+ rootEl->setAttributeNodeNS(attrd);
+
+ XMLString::transcode("http://nse", tempStr2, 3999);
+ XMLString::transcode("attrb", tempStr, 3999);
+ IDOM_Attr* attre = doc->createAttributeNS(tempStr2, tempStr);
+ rootEl->setAttributeNodeNS(attre);
//
// Check that the attribute nodes were created with the correct properties.
//
- TASSERT(attra.getNodeName().equals("a:attra"));
- TASSERT(attra.getNamespaceURI().equals("http://nsa"));
- TASSERT(attra.getLocalName().equals("attra"));
- TASSERT(attra.getName().equals("a:attra"));
- TASSERT(attra.getNodeType() == DOM_Node::ATTRIBUTE_NODE);
- TASSERT(attra.getNodeValue().equals(""));
- TASSERT(attra.getPrefix().equals("a"));
- TASSERT(attra.getSpecified() == true);
- TASSERT(attra.getValue().equals(""));
- TASSERT(attra.getOwnerElement() == 0);
+ XMLString::transcode("a:attra", tempStr2, 3999);
+ TASSERT(!XMLString::compareString(attra->getNodeName(), tempStr2));
+ TASSERT(!XMLString::compareString(attra->getNamespaceURI(), tempStr5));
+
+ XMLString::transcode("attra", tempStr, 3999);
+ TASSERT(!XMLString::compareString(attra->getLocalName(), tempStr));
+ TASSERT(!XMLString::compareString(attra->getName(), tempStr2));
+ TASSERT(attra->getNodeType() == IDOM_Node::ATTRIBUTE_NODE);
+ TASSERT(!XMLString::compareString(attra->getNodeValue(), tempStr3));
+
+ XMLString::transcode("a", tempStr, 3999);
+ TASSERT(!XMLString::compareString(attra->getPrefix(), tempStr));
+ TASSERT(attra->getSpecified() == true);
+ TASSERT(!XMLString::compareString(attra->getValue(), tempStr3));
+ TASSERT(attra->getOwnerElement() == 0);
// Test methods of NamedNodeMap
- DOM_NamedNodeMap nnm = rootEl.getAttributes();
- TASSERT(nnm.getLength() == 4);
- TASSERT(nnm.getNamedItemNS("http://nsa", "attra") == attrd);
- TASSERT(nnm.getNamedItemNS("http://nsb", "attrb") == attrb);
- TASSERT(nnm.getNamedItemNS("http://nse", "attrb") == attre);
- TASSERT(nnm.getNamedItemNS("", "attrc") == attrc);
- TASSERT(nnm.getNamedItemNS("", "attra") == 0);
- TASSERT(nnm.getNamedItemNS("http://nsa", "attrb") == 0);
+ IDOM_NamedNodeMap* nnm = rootEl->getAttributes();
+ TASSERT(nnm->getLength() == 4);
+
+ XMLString::transcode("attra", tempStr2, 3999);
+ XMLString::transcode("attrb", tempStr, 3999);
+
+ TASSERT(nnm->getNamedItemNS(tempStr5, tempStr2) == attrd);
+ TASSERT(nnm->getNamedItemNS(tempStr4, tempStr) == attrb);
+ TASSERT(nnm->getNamedItemNS(tempStr3, tempStr2) == 0);
+ TASSERT(nnm->getNamedItemNS(tempStr5, tempStr) == 0);
+
+ XMLString::transcode("http://nse", tempStr2, 3999);
+ TASSERT(nnm->getNamedItemNS(tempStr2, tempStr) == attre);
+
+ XMLString::transcode("attrc", tempStr2, 3999);
+ TASSERT(nnm->getNamedItemNS(tempStr3, tempStr2) == attrc);
// Test hasAttributes, hasAttribute, hasAttributeNS
- TASSERT(doc.hasAttributes() == false);
- TASSERT(attrc.hasAttributes() == false);
- TASSERT(rootEl.hasAttributes() == true);
- TASSERT(rootEl.hasAttribute("attrc") == true);
- TASSERT(rootEl.hasAttribute("wrong") == false);
- TASSERT(rootEl.hasAttributeNS("http://nsa", "attra") == true);
- TASSERT(rootEl.hasAttributeNS("http://nsa", "wrong") == false);
+ TASSERT(doc->hasAttributes() == false);
+ TASSERT(attrc->hasAttributes() == false);
+ TASSERT(rootEl->hasAttributes() == true);
+ TASSERT(rootEl->hasAttribute(tempStr2) == true);
+
+ XMLString::transcode("wrong", tempStr, 3999);
+ TASSERT(rootEl->hasAttribute(tempStr) == false);
+
+ XMLString::transcode("attra", tempStr2, 3999);
+ TASSERT(rootEl->hasAttributeNS(tempStr5, tempStr2) == true);
+ TASSERT(rootEl->hasAttributeNS(tempStr5, tempStr) == false);
+ delete doc;
+ delete dt;
}
- TESTEPILOG;
+
//
//
@@ -1679,7 +1564,7 @@
// main
//
//---------------------------------------------------------------------------------------
-int main()
+int mymain()
{
try {
XMLPlatformUtils::Initialize();
@@ -1692,19 +1577,22 @@
return -1;
}
-
- DOMStringTests();
- DOMBasicTests();
- DOMNSTests();
+ IDOMBasicTests();
+ IDOMNSTests();
//
// Print Final allocation stats for full set of tests
//
XMLPlatformUtils::Terminate();
- DomMemDebug().print();
+
return 0;
};
+int main() {
+ for (int i = 0; i<50; i++)
+ mymain();
+ printf("Test Run Successfully\n");
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org