tng 2002/09/23 13:09:23
Modified: c/tests/DOM/DOMTest DTest.cpp DTest.h
Log:
DOM L3: Test baseURI with different parser's setting.
Revision Changes Path
1.32 +169 -176 xml-xerces/c/tests/DOM/DOMTest/DTest.cpp
Index: DTest.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/tests/DOM/DOMTest/DTest.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- DTest.cpp 23 Sep 2002 18:27:48 -0000 1.31
+++ DTest.cpp 23 Sep 2002 20:09:23 -0000 1.32
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.32 2002/09/23 20:09:23 tng
+ * DOM L3: Test baseURI with different parser's setting.
+ *
* Revision 1.31 2002/09/23 18:27:48 tng
* DOM L3: Test baseURI. Added by Gareth Reakes and Thomas Ford.
*
@@ -1016,8 +1019,25 @@
// Test baseURI. BaseURI is set on nodes at parse time so we
// cannot use the docBuilder document above
- OK = test.testBaseURI();
+ //Setup parser
+
+ XercesDOMParser *parser = new XercesDOMParser;
+ parser->setValidationScheme(XercesDOMParser::Val_Auto);
+ parser->setDoNamespaces(true);
+ parser->setDoSchema(true);
+ parser->setCreateEntityReferenceNodes(true);
+
+ OK = test.testBaseURI(parser);
+
+ parser->setCreateEntityReferenceNodes(false);
+ OK = test.testBaseURI(parser);
+
+ parser->setDoNamespaces(false);
+ parser->setDoSchema(false);
+ OK = test.testBaseURI(parser);
+ parser->setCreateEntityReferenceNodes(true);
+ OK = test.testBaseURI(parser);
};
XMLPlatformUtils::Terminate();
@@ -4370,242 +4390,215 @@
*
*/
-bool DOMTest::testBaseURI(void) {
+bool DOMTest::testBaseURI(XercesDOMParser* parser) {
bool OK;
- //Run tests using both setDoNamespaces(true) and (false)
+ try {
+ // this one assumes executing in samples/data where personal-schema.xml
resides
+ // please modify if this is not correct
+ parser->parse("personal-schema.xml");
+ }
- const char *namespaceResolver;
- bool namespaceRes = true;
- bool doSchemaRes = true;
+ catch (...) {
+ fprintf(stderr, "parsing personal-schema.xml failed at line %i\n",
__LINE__);
+ return false;
+ }
- do {
+ // test only if there is no error
+ if (!parser->getErrorCount()) {
- //Setup parser
+ //Setup testing strings
+ XMLCh *fileSchema = XMLString::transcode("file://");
+ XMLCh *filePath = XMLString::transcode("samples/data/personal-schema.xml");
- XercesDOMParser *parser = new XercesDOMParser;
- parser->setValidationScheme(XercesDOMParser::Val_Auto);
- parser->setDoNamespaces(namespaceRes);
- parser->setDoSchema(doSchemaRes);
- parser->setCreateEntityReferenceNodes(true);
+ //Test document baseURI
+ DOMDocument *document = parser->getDocument();
- if(namespaceRes) {
- namespaceResolver = "setDoNamespaces(true)";
- }
- else {
- namespaceResolver = "setDoNamespaces(false)";
- }
+ //The baseURI should contain `file://' and
`samples/data/personal-schema.xml'
+ const XMLCh *docBaseURI = document->getBaseURI();
- try {
- // this one assumes executing in samples/data where personal-schema.xml
resides
- // please modify if this is not correct
- parser->parse("personal-schema.xml");
+ if(XMLString::patternMatch(docBaseURI, fileSchema) == -1) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
}
- catch (...) {
- fprintf(stderr, "parsing personal-schema.xml failed at line %i\n",
__LINE__);
- return false;
+ if(XMLString::patternMatch(docBaseURI, filePath) == -1) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
}
- // test only if there is no error
- if (!parser->getErrorCount()) {
-
- //Setup testing strings
- XMLCh *fileSchema = XMLString::transcode("file://");
- XMLCh *filePath =
XMLString::transcode("samples/data/personal-schema.xml");
-
- //Test document baseURI
- DOMDocument *document = parser->getDocument();
-
- //The baseURI should contain `file://' and
`samples/data/personal-schema.xml'
- const XMLCh *docBaseURI = document->getBaseURI();
+ //Create relative paths from document baseURI
- if(XMLString::patternMatch(docBaseURI, fileSchema) == -1) {
- OK = false;
- fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
- }
-
- if(XMLString::patternMatch(docBaseURI, filePath) == -1) {
- OK = false;
- fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
- }
-
- //Create relative paths from document baseURI
+ XMLCh *docBaseURIRoot = new XMLCh [ XMLString::stringLen(docBaseURI) ];
+ XMLString::copyNString(docBaseURIRoot, docBaseURI,
XMLString::lastIndexOf(docBaseURI, chForwardSlash) + 1);
- XMLCh *docBaseURIRoot = new XMLCh [ XMLString::stringLen(docBaseURI) ];
- XMLString::copyNString(docBaseURIRoot, docBaseURI,
XMLString::lastIndexOf(docBaseURI, chForwardSlash) + 1);
+ XMLCh *base_foobar = new XMLCh [ XMLString::stringLen(docBaseURIRoot) + 8];
+ XMLString::copyString(base_foobar, docBaseURIRoot);
+ XMLCh *foobar = XMLString::transcode("foo/bar");
+ XMLString::catString(base_foobar, foobar);
+
+ XMLCh *base_foobarbar = new XMLCh [ XMLString::stringLen(docBaseURIRoot) +
12];
+ XMLString::copyString(base_foobarbar, docBaseURIRoot);
+ XMLCh *foobarbar = XMLString::transcode("foo/bar/bar");
+ XMLString::catString(base_foobarbar, foobarbar);
+
+ XMLCh *base_foocarbar = new XMLCh [ XMLString::stringLen(docBaseURIRoot) +
12];
+ XMLString::copyString(base_foocarbar, docBaseURIRoot);
+ XMLCh *foocarbar = XMLString::transcode("foo/car/bar");
+ XMLString::catString(base_foocarbar, foocarbar);
+
+ XMLCh *file_autobar = XMLString::transcode("file:///auto/bar");
+ XMLCh *file_carfoo = XMLString::transcode("file:///car/foo/");
+ XMLCh *file_carfoobarbar = XMLString::transcode("file:///car/foo/bar/bar");
+
+ XMLCh *http_carcar = XMLString::transcode("http://www.example.com/car/car");
+ XMLCh *http_barfoo =
XMLString::transcode("http://www.example.com/bar/foo/");
+ XMLCh *http_barfoofoobar =
XMLString::transcode("http://www.example.com/bar/foo/foo/bar");
- XMLCh *base_foobar = new XMLCh [ XMLString::stringLen(docBaseURIRoot) +
8];
- XMLString::copyString(base_foobar, docBaseURIRoot);
- XMLCh *foobar = XMLString::transcode("foo/bar");
- XMLString::catString(base_foobar, foobar);
+ //Processing instruction before Document Element (has document baseURI)
- XMLCh *base_foobarbar = new XMLCh [
XMLString::stringLen(docBaseURIRoot) + 12];
- XMLString::copyString(base_foobarbar, docBaseURIRoot);
- XMLCh *foobarbar = XMLString::transcode("foo/bar/bar");
- XMLString::catString(base_foobarbar, foobarbar);
-
- XMLCh *base_foocarbar = new XMLCh [
XMLString::stringLen(docBaseURIRoot) + 12];
- XMLString::copyString(base_foocarbar, docBaseURIRoot);
- XMLCh *foocarbar = XMLString::transcode("foo/car/bar");
- XMLString::catString(base_foocarbar, foocarbar);
-
- XMLCh *file_autobar = XMLString::transcode("file:///auto/bar");
- XMLCh *file_carfoo = XMLString::transcode("file:///car/foo/");
- XMLCh *file_carfoobarbar =
XMLString::transcode("file:///car/foo/bar/bar");
-
- XMLCh *http_carcar =
XMLString::transcode("http://www.example.com/car/car");
- XMLCh *http_barfoo =
XMLString::transcode("http://www.example.com/bar/foo/");
- XMLCh *http_barfoofoobar =
XMLString::transcode("http://www.example.com/bar/foo/foo/bar");
-
- //Processing instruction before Document Element (has document baseURI)
-
- DOMNode *node = document->getFirstChild();
- while(node->getNodeType() != DOMNode::PROCESSING_INSTRUCTION_NODE)
- node = node->getNextSibling();
+ DOMNode *node = document->getFirstChild();
+ while(node->getNodeType() != DOMNode::PROCESSING_INSTRUCTION_NODE)
+ node = node->getNextSibling();
- if(XMLString::compareString(node->getBaseURI(), docBaseURI) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ if(XMLString::compareString(node->getBaseURI(), docBaseURI) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- //Document Element baseURI (same as document)
+ //Document Element baseURI (same as document)
- node = document->getDocumentElement();
+ node = document->getDocumentElement();
- if(XMLString::compareString(node->getBaseURI(), docBaseURI) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s), failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ if(XMLString::compareString(node->getBaseURI(), docBaseURI) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI, failed at line %i\n", __LINE__);
+ }
- // <level 1>
+ // <level 1>
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- DOMNode *level1 = node;
+ DOMNode *level1 = node;
- // <one>
+ // <one>
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- if(XMLString::compareString(node->getBaseURI(), base_foobar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ if(XMLString::compareString(node->getBaseURI(), base_foobar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- // <inner1>
+ // <inner1>
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- if(XMLString::compareString(node->getBaseURI(), base_foobarbar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ if(XMLString::compareString(node->getBaseURI(), base_foobarbar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- // <inner2>
+ // <inner2>
+ node = node->getNextSibling();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
node = node->getNextSibling();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
- if(XMLString::compareString(node->getBaseURI(), base_foocarbar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ if(XMLString::compareString(node->getBaseURI(), base_foocarbar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- // <?proc-inst-2?>
+ // <?proc-inst-2?>
+ node = node->getNextSibling();
+ while(node->getNodeType() != DOMNode::PROCESSING_INSTRUCTION_NODE)
node = node->getNextSibling();
- while(node->getNodeType() != DOMNode::PROCESSING_INSTRUCTION_NODE)
- node = node->getNextSibling();
-
- if(XMLString::compareString(node->getBaseURI(), base_foobar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
-
- // <level2>
- node = level1->getNextSibling();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), base_foobar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- DOMNode *level2 = node;
+ // <level2>
- if(XMLString::compareString(node->getBaseURI(), file_autobar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ node = level1->getNextSibling();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- // <two>
+ DOMNode *level2 = node;
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), file_autobar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- if(XMLString::compareString(node->getBaseURI(), file_carfoo) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ // <two>
- // <inner1>
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), file_carfoo) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- if(XMLString::compareString(node->getBaseURI(), file_carfoobarbar) !=
0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ // <inner1>
- // <level3>
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- node = level2->getNextSibling();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), file_carfoobarbar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- if(XMLString::compareString(node->getBaseURI(), http_carcar) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ // <level3>
- // <three>
+ node = level2->getNextSibling();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), http_carcar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- if(XMLString::compareString(node->getBaseURI(), http_barfoo) != 0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ // <three>
- // <inner1>
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
- node = node->getFirstChild();
- while(node->getNodeType() != DOMNode::ELEMENT_NODE)
- node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), http_barfoo) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
+ }
- if(XMLString::compareString(node->getBaseURI(), http_barfoofoobar) !=
0) {
- OK = false;
- fprintf(stderr, "checking baseURI (%s) failed at line %i\n",
namespaceResolver, __LINE__);
- }
+ // <inner1>
- namespaceRes = !namespaceRes;
+ node = node->getFirstChild();
+ while(node->getNodeType() != DOMNode::ELEMENT_NODE)
+ node = node->getNextSibling();
+ if(XMLString::compareString(node->getBaseURI(), http_barfoofoobar) != 0) {
+ OK = false;
+ fprintf(stderr, "checking baseURI failed at line %i\n", __LINE__);
}
else {
printf("baseURI test was not carried out\n");
}
- } while(namespaceRes == false);
+ }
return OK;
}
1.9 +6 -1 xml-xerces/c/tests/DOM/DOMTest/DTest.h
Index: DTest.h
===================================================================
RCS file: /home/cvs/xml-xerces/c/tests/DOM/DOMTest/DTest.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- DTest.h 23 Sep 2002 18:27:48 -0000 1.8
+++ DTest.h 23 Sep 2002 20:09:23 -0000 1.9
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.9 2002/09/23 20:09:23 tng
+ * DOM L3: Test baseURI with different parser's setting.
+ *
* Revision 1.8 2002/09/23 18:27:48 tng
* DOM L3: Test baseURI. Added by Gareth Reakes and Thomas Ford.
*
@@ -89,6 +92,8 @@
// define null for compatibility with original Java source code.
#define null 0
+class XercesDOMParser;
+
class DOMTest {
public:
static DOMElement *testElementNode;
@@ -154,7 +159,7 @@
bool testText(DOMDocument* document);
bool treeCompare(DOMNode* node, DOMNode* node2);
-bool testBaseURI(void);
+bool testBaseURI(XercesDOMParser* parser);
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]