gareth 2002/11/21 06:24:40 Modified: c/tests/DOM/DOMTest DTest.cpp Log: Tests added for isId, setIdAttribute, setIdAttributeNS, setIdAttributeNode Revision Changes Path 1.35 +105 -1 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.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- DTest.cpp 12 Nov 2002 17:52:01 -0000 1.34 +++ DTest.cpp 21 Nov 2002 14:24:39 -0000 1.35 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.35 2002/11/21 14:24:39 gareth + * Tests added for isId, setIdAttribute, setIdAttributeNS, setIdAttributeNode + * * Revision 1.34 2002/11/12 17:52:01 tng * Test update: do not issue "Test Run Successfully" if there was an error. * @@ -138,7 +141,7 @@ #include <xercesc/util/XMLException.hpp> #include <xercesc/util/XMLString.hpp> #include <xercesc/parsers/XercesDOMParser.hpp> - +#include <xercesc/dom/DOMException.hpp> #define EXCEPTIONSTEST(operation, expectedException, resultFlag, testNum) \ { \ @@ -1532,6 +1535,30 @@ OK = false; } + + + //isID tests + + XMLString::transcode("http://nsa", tempStr4, 3999); + XMLString::transcode("aa", tempStr5, 3999); + + DOMAttr *idAtt = document->createAttributeNS(tempStr4, tempStr5); + testElementNode->setAttributeNode(idAtt); + + + if(idAtt->isID()) { + fprintf(stderr, "isID failed in line %i\n", __LINE__); + OK = false; + } + + testElementNode->setIdAttributeNode(idAtt); + + if(!idAtt->isID()) { + fprintf(stderr, "isID failed in line %i\n", __LINE__); + OK = false; + } + //clean up + testElementNode->removeAttributeNode(idAtt); if (! OK) printf("\n*****The DOMAttr* method calls listed above failed, all others worked correctly.*****\n"); @@ -3351,6 +3378,83 @@ } + //setIdAttribute tests + + XMLString::transcode("http://nsa", tempStr4, 3999); + XMLString::transcode("aa", tempStr5, 3999); + + DOMAttr *idAtt = document->createAttributeNS(tempStr4, tempStr5); + + //tests for node not being on testElementNode + EXCEPTIONSTEST(testElementNode->setIdAttribute(tempStr4), DOMException::NOT_FOUND_ERR, OK, 1000); + EXCEPTIONSTEST(testElementNode->setIdAttributeNS(tempStr4, tempStr5), DOMException::NOT_FOUND_ERR, OK, 1001); + EXCEPTIONSTEST(testElementNode->setIdAttributeNode(idAtt), DOMException::NOT_FOUND_ERR, OK, 1002); + + //should test NO_MODIFICATION_ALLOWED_ERR but dont know how to without direct access to DOMAttrImpl. + + idAtt = document->createAttributeNS(tempStr4, tempStr5); + idAtt->setValue(tempStr3); + testElementNode->setAttributeNode(idAtt); + testElementNode->setIdAttributeNode(idAtt); + + if(!idAtt->isID()) { + fprintf(stderr, "setIdAttributeNode failed in line %i\n", __LINE__); + OK = false; + } + + DOMElement *idEle = document->getElementById(tempStr3); + + if(!idEle || !idEle->isSameNode(testElementNode)) { + fprintf(stderr, "setIdAttributeNode failed in line %i\n", __LINE__); + OK = false; + } + + testElementNode->removeAttributeNode(idAtt); + + + XMLString::transcode("someval", tempStr3, 3999); + idAtt = document->createAttributeNS(tempStr4, tempStr5); + idAtt->setValue(tempStr3); + testElementNode->setAttributeNode(idAtt); + testElementNode->setIdAttributeNS(tempStr4, tempStr5); + + if(!idAtt->isID()) { + fprintf(stderr, "setIdAttributeNS failed in line %i\n", __LINE__); + OK = false; + } + + idEle = document->getElementById(tempStr3); + + if(!idEle || !idEle->isSameNode(testElementNode)) { + fprintf(stderr, "setIdAttributeNS failed in line %i\n", __LINE__); + OK = false; + } + + testElementNode->removeAttributeNode(idAtt); + idAtt->release(); + + + XMLString::transcode("somevalDif", tempStr3, 3999); + idAtt = document->createAttribute(tempStr5); + idAtt->setValue(tempStr3); + testElementNode->setAttributeNode(idAtt); + testElementNode->setIdAttribute(tempStr5); + + if(!idAtt->isID()) { + fprintf(stderr, "setIdAttribute failed in line %i\n", __LINE__); + OK = false; + } + + idEle = document->getElementById(tempStr3); + + if(!idEle || !idEle->isSameNode(testElementNode)) { + fprintf(stderr, "setIdAttribute failed in line %i\n", __LINE__); + OK = false; + } + + testElementNode->removeAttributeNode(idAtt); + idAtt->release(); + if (!OK) printf("\n*****The DOMElement* method calls listed above failed, all others worked correctly.*****\n"); return OK;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]