?? dtest.cpp
字號:
XMLString::transcode("bb", tempStr2, 3999); XMLString::transcode("pnsb:bb", tempStr3, 3999); // start the rename tests // rename the NS Attribute DOMAttr* renameTest = (DOMAttr*) document->renameNode(renameTestAttributeNS, tempStr, tempStr3); // test the name if (XMLString::compareString(tempStr, renameTest->getNamespaceURI())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr2, renameTest->getLocalName())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr3, renameTest->getNodeName())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the child / nodevalue if (XMLString::compareString(tempStr4, renameTest->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr4, renameTest->getFirstChild()->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the owner element if (!renameTestElement->getAttributeNodeNS(tempStr, tempStr2)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestElement->getAttributeNodeNS(tempStr4, tempStr5)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test user data void* renamedocument = renameTest->getUserData(tempStr4); if (document != renamedocument) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test isSame and isEqual if (!renameTestAttributeNS->isEqualNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (!renameTestAttributeNS->isSameNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // rename the Attribute (null namespace) renameTest = (DOMAttr*) document->renameNode(renameTestAttribute, 0, tempStr2); // test the name if (renameTest->getNamespaceURI()) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTest->getLocalName()) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr2, renameTest->getNodeName())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the child / nodevalue if (XMLString::compareString(tempStr5, renameTest->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr5, renameTest->getFirstChild()->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the owner element if (!renameTestElement->getAttributeNode(tempStr2)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestElement->getAttributeNode(tempStr5)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test user data renamedocument = renameTest->getUserData(tempStr5); if (document != renamedocument) { fprintf(stderr, "'set/getUserData' in line %i does not work\n", __LINE__); OK = false; } // test isSame and isEqual if (!renameTestAttribute->isEqualNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (!renameTestAttribute->isSameNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // rename the Attribute (with namespace) renameTest = (DOMAttr*) document->renameNode(renameTestAttribute, tempStr, tempStr3); // test the name if (XMLString::compareString(tempStr, renameTest->getNamespaceURI())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr2, renameTest->getLocalName())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr3, renameTest->getNodeName())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the child / nodevalue if (XMLString::compareString(tempStr5, renameTest->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (XMLString::compareString(tempStr5, renameTest->getFirstChild()->getNodeValue())) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestAttribute->getFirstChild()) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test the owner element if (!renameTestElement->getAttributeNodeNS(tempStr, tempStr2)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestElement->getAttributeNodeNS(0, tempStr2)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestElement->getAttributeNode(tempStr2)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test user data renamedocument = renameTest->getUserData(tempStr5); if (document != renamedocument) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } // test userdatahandler USERDATAHANDLERTEST(userhandler, DOMUserDataHandler::NODE_RENAMED, tempStr5, document, renameTestAttribute, renameTest, __LINE__); // test isSame and isEqual // a new node is created here, so both isSame and isEqual are not compared if (renameTestAttribute->isEqualNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); OK = false; } if (renameTestAttribute->isSameNode(renameTest)) { fprintf(stderr, "renameNode failed in line %i\n", __LINE__); 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"); return OK;};/** * This method tests DOMCDATASection* methods for the XML DOM implementation * @param document org.w3c.dom.DOMDocument * */bool DOMTest::testCDATASection(DOMDocument* document){ DOMNode* node; DOMNode* node2; bool T = true; bool OK = true;// For debugging***** printf("\n testCDATASection's outputs:\n"); XMLString::transcode("dBodyLevel23", tempStr, 3999); node = document->getDocumentElement()->getElementsByTagName(tempStr)->item(0)->getFirstChild(); // node gets DOMCDATASection* node node2 = node->cloneNode(T);//*****? // Check nodes for equality, both their name and value or lack thereof if (!(!XMLString::compareString(node->getNodeName(), node2->getNodeName()) && // Compares node names for equality (node->getNodeValue() != 0 && node2->getNodeValue() != 0) // Checks to make sure each node has a value node ? !XMLString::compareString(node->getNodeValue(), node2->getNodeValue()) // If both have value nodes test those value nodes for equality : (node->getNodeValue() == 0 && node2->getNodeValue() == 0))) // If one node doesn't have a value node make sure both don't { fprintf(stderr, "'cloneNode' did not clone the DOMCDATASection* node correctly\n"); OK = false; } // Deep clone test comparison is in testNode & testDocument // Test the user data // Test simple set and get DOMCDATASection* userTest = (DOMCDATASection*) node; DOMCDATASection* userFirst = (DOMCDATASection*) node2; XMLCh* userSecond = tempStr2; XMLString::transcode("first", tempStr, 3999); XMLString::transcode("document", tempStr2, 3999); userTest->setUserData(tempStr2, (void*) document, 0); void* mydocument = userTest->getUserData(tempStr2); if (document != mydocument) { fprintf(stderr, "'set/getUserData' in line %i does not work\n", __LINE__); OK = false; } userTest->setUserData(tempStr, (void*) userFirst, 0); void* myFirst = userTest->getUserData(tempStr); if (userFirst != myFirst) { fprintf(stderr, "'set/getUserData' in line %i does not work\n", __LINE__); OK = false; } // Test overwrite void* myFirst2 = userTest->setUserData(tempStr, (void*) userSecond, 0); void* mySecond = userTest->getUserData(tempStr); if (userSecond != mySecond) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } if (userFirst != myFirst2) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } if (userFirst == mySecond) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } // Test null // test non-exist key XMLString::transcode("not-exist", tempStr3, 3999); if (userTest->getUserData(tempStr3)) { fprintf(stderr, "get non-exist user data in line %i does not work\n", __LINE__); OK = false; } // use a node that does not have user data set before if (userFirst->getUserData(tempStr)) { fprintf(stderr, "get non-exist user data in line %i does not work\n", __LINE__); OK = false; } // Test reset void* mySecond2 = userTest->setUserData(tempStr, (void*) 0, 0); void* myNull = userTest->getUserData(tempStr); if (userSecond != mySecond2) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } if (myNull) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } void* mydocument2 = userTest->setUserData(tempStr2, (void*) 0, 0); void* myNull2 = userTest->getUserData(tempStr2); if (mydocument != mydocument2) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } if (myNull2) { fprintf(stderr, "overwrite userdata with same key in line %i does not work\n", __LINE__); OK = false; } //the userTest user data table should be null now if (userTest->getUserData(tempStr)) { fprintf(stderr, "get non-exist user data in line %i does not work\n", __LINE__); OK = false; } if (userTest->getUserData(tempStr2)) { fprintf(stderr, "get non-exist user data in line %i does not work\n", __LINE__); OK = false; } // Test DOMUserDataHandler // test clone userTest->setUserData(tempStr2, (void*) document, &userhandler); DOMNode* mycloned = userTest->cloneNode(true); USERDATAHANDLERTEST(userhandler, DOMUserDataHandler::NODE_CLONED, tempStr2, d
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -