tng         2002/08/16 12:22:29

  Modified:    c/tests/DOM/DOMTest DTest.cpp
  Log:
  Test DOM L3 lookupNamespacePrefix, lookupNamespaceURI support.   Added by Gareth 
Reakes.
  
  Revision  Changes    Path
  1.28      +142 -0    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.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DTest.cpp 16 Aug 2002 16:03:02 -0000      1.27
  +++ DTest.cpp 16 Aug 2002 19:22:29 -0000      1.28
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.28  2002/08/16 19:22:29  tng
  + * Test DOM L3 lookupNamespacePrefix, lookupNamespaceURI support.   Added by Gareth 
Reakes.
  + *
    * Revision 1.27  2002/08/16 16:03:02  tng
    * [Bug 11360] Release user data using handler.
    *
  @@ -163,6 +166,43 @@
           OK = false; \
       }
   
  +#define LOOKUPNSTEST(thisNode, prefix, uri, pass, line) \
  +    prefixResult = XMLString::compareString(thisNode->lookupNamespacePrefix(uri, 
false), prefix); \
  +    prefixResult2 = XMLString::compareString(thisNode->lookupNamespacePrefix(uri, 
true), prefix); \
  +    uriResult = XMLString::compareString(thisNode->lookupNamespaceURI(prefix), 
uri); \
  +    if(pass) { \
  +        if(prefixResult != 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", line); \
  +        OK = false; \
  +        } \
  +        if(prefixResult2 != 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", line); \
  +        OK = false; \
  +        } \
  +            if(uriResult != 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespaceURI does not work in line %i\n", 
line); \
  +        OK = false;\
  +            } \
  +        } \
  +    else { \
  +        if(prefixResult == 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", line); \
  +        OK = false; \
  +        } \
  +        if(prefixResult2 == 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", line); \
  +        OK = false; \
  +        } \
  +            if(uriResult == 0) { \
  +        fprintf(stderr, "DOMNode::lookupNamespaceURI does not work in line %i\n", 
line); \
  +        OK = false; \
  +            } \
  +        } \
  +
  +int prefixResult;
  +int prefixResult2;
  +int uriResult;
  +
   #define COMPARETREEPOSITIONTEST(thisNode, otherNode, position, line) \
       myposition = thisNode->compareTreePosition(otherNode); \
       if (position == DOMNode::TREE_POSITION_DISCONNECTED) {  \
  @@ -507,6 +547,108 @@
   
       COMPARETREEPOSITIONTEST(docNotation, docFirstElement, 
DOMNode::TREE_POSITION_DISCONNECTED, __LINE__);
   
  +
  +    //now do some lookupNamespaceURI and lookupNamespacePrefix
  +    //first lets add some attributes
  +    XMLString::transcode("http://www.w3.org/2000/xmlns/";, tempStr, 3999);
  +    XMLString::transcode("xmlns:pre1", tempStr2, 3999);
  +    XMLString::transcode("pre1URI", tempStr3, 3999);
  +    XMLString::transcode("pre1", tempStr4, 3999);
  +
  +    DOMAttr *attr1 = doc->createAttributeNS(tempStr, tempStr2);
  +    attr1->setValue(tempStr3);
  +    docFirstElement->setAttributeNodeNS(attr1);
  +
  +
  +    LOOKUPNSTEST(docProcessingInstruction, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel24, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel23, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel21, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel31, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel32, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docCDATASection, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docFirstElement, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docReferenceEntity, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docFirstElementAttr, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(doc, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docNotation, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docTextNode2, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docTextNode4, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docComment, tempStr4, tempStr3, true, __LINE__);
  +
  +    XMLString::transcode("xmlns:pre2", tempStr2, 3999);
  +    XMLString::transcode("pre2URI", tempStr3, 3999);
  +    XMLString::transcode("pre2", tempStr4, 3999);
  +
  +    DOMAttr *attr2 = doc->createAttributeNS(tempStr, tempStr2);
  +    attr2->setValue(tempStr3);
  +    docBodyLevel21->setAttributeNodeNS(attr2);
  +
  +
  +    LOOKUPNSTEST(docProcessingInstruction, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel24, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel23, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel21, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel31, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel32, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docCDATASection, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docFirstElement, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docReferenceEntity, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docFirstElementAttr, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(doc, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docNotation, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docComment, tempStr4, tempStr3, false, __LINE__);
  +    LOOKUPNSTEST(docTextNode2, tempStr4, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docTextNode4, tempStr4, tempStr3, false, __LINE__);
  +
  +
  +    XMLString::transcode("xmlns", tempStr2, 3999);
  +    XMLString::transcode("default", tempStr3, 3999);
  +    XMLString::transcode("", tempStr4, 3999);
  +
  +
  +    DOMAttr *attr3 = doc->createAttributeNS(tempStr, tempStr2);
  +    attr3->setValue(tempStr3);
  +    docFirstElement->setAttributeNodeNS(attr3);
  +
  +    LOOKUPNSTEST(docProcessingInstruction, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel24, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel23, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel21, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel31, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docBodyLevel32, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docCDATASection, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docFirstElement, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docReferenceEntity, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docFirstElementAttr, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(doc, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docComment, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docTextNode2, 0, tempStr3, true, __LINE__);
  +    LOOKUPNSTEST(docTextNode4, 0, tempStr3, true, __LINE__);
  +
  +    //this has to be done separately because negative lookup is the same as default 
ns lookup!!!
  +
  +    prefixResult = 
XMLString::compareString(docNotation->lookupNamespacePrefix(tempStr3, false), 0);
  +    prefixResult2 = 
XMLString::compareString(docNotation->lookupNamespacePrefix(tempStr3, true), 0);
  +
  +    uriResult = XMLString::compareString(docNotation->lookupNamespaceURI(0), 0);
  +    if(prefixResult != 0) {
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", __LINE__);
  +        OK = false;
  +    }
  +    if(prefixResult2 != 0) {
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", __LINE__);
  +        OK = false;
  +    }
  +    if(uriResult != 0) {
  +        fprintf(stderr, "DOMNode::lookupNamespacePrefix does not work in line 
%i\n", __LINE__);
  +        OK = false;
  +    }
  +
  +
  +    docFirstElement->removeAttributeNode(attr1);
  +    docBodyLevel21->removeAttributeNode(attr2);
  +    docFirstElement->removeAttributeNode(attr3);
   
   //***********Following are for errorTests
       DOMDocumentFragment* docDocFragment = doc->createDocumentFragment();
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to