📄 elementtest.cpp
字号:
assert (pNNM->getNamedItem("a3")->nodeName() == "a3");
pNNM->removeNamedItem("a2");
assert (pNNM->length() == 2);
assert (!pElem->hasAttribute("a2"));
pNNM->removeNamedItem("a3");
assert (pNNM->length() == 1);
assert (!pElem->hasAttribute("a3"));
pElem->removeAttribute("a1");
assert (pNNM->length() == 0);
}
void ElementTest::testAttrMapNS()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pElem = pDoc->createElementNS("urn:ns1", "elem");
AutoPtr<NamedNodeMap> pNNM = pElem->attributes();
assert (pNNM->length() == 0);
pElem->setAttributeNS("urn:ns1", "a1", "v1");
assert (pNNM->length() == 1);
assert (pNNM->item(0)->nodeName() == "a1");
assert (pNNM->getNamedItemNS("urn:ns1", "a1")->nodeName() == "a1");
pElem->setAttributeNS("urn:ns1", "a2", "v2");
assert (pNNM->length() == 2);
assert (pNNM->item(0)->nodeName() == "a1");
assert (pNNM->getNamedItem("a1")->nodeName() == "a1");
assert (pNNM->item(1)->nodeName() == "a2");
assert (pNNM->getNamedItem("a2")->nodeName() == "a2");
Attr* pAttr = pDoc->createAttributeNS("urn:ns2", "a3");
pNNM->setNamedItem(pAttr);
pAttr->release();
assert (pNNM->length() == 3);
assert (pNNM->item(0)->nodeName() == "a1");
assert (pNNM->getNamedItemNS("urn:ns1", "a1")->nodeName() == "a1");
assert (pNNM->item(1)->nodeName() == "a2");
assert (pNNM->getNamedItemNS("urn:ns1", "a2")->nodeName() == "a2");
assert (pNNM->item(2)->nodeName() == "a3");
assert (pNNM->getNamedItemNS("urn:ns2", "a3")->nodeName() == "a3");
pNNM->removeNamedItemNS("urn:ns1", "a2");
assert (pNNM->length() == 2);
assert (!pElem->hasAttributeNS("urn:ns1", "a2"));
pNNM->removeNamedItemNS("urn:ns2", "a3");
assert (pNNM->length() == 1);
assert (!pElem->hasAttributeNS("urn:ns2", "a3"));
pElem->removeAttributeNS("urn:ns1", "a1");
assert (pNNM->length() == 0);
}
void ElementTest::testElementsByTagName()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pRoot = pDoc->createElement("root");
AutoPtr<NodeList> pNL1 = pRoot->getElementsByTagName("*");
AutoPtr<NodeList> pNL2 = pRoot->getElementsByTagName("elem");
assert (pNL1->length() == 0);
assert (pNL2->length() == 0);
AutoPtr<Element> pElem1 = pDoc->createElement("elem");
pRoot->appendChild(pElem1);
assert (pNL1->length() == 1);
assert (pNL2->length() == 1);
assert (pNL1->item(0) == pElem1);
assert (pNL2->item(0) == pElem1);
AutoPtr<Element> pElem2 = pDoc->createElement("Elem");
pRoot->appendChild(pElem2);
assert (pNL1->length() == 2);
assert (pNL2->length() == 1);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem2);
assert (pNL2->item(0) == pElem1);
AutoPtr<Element> pElem3 = pDoc->createElement("elem");
pRoot->appendChild(pElem3);
assert (pNL1->length() == 3);
assert (pNL2->length() == 2);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem2);
assert (pNL1->item(2) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem3);
AutoPtr<Element> pElem11 = pDoc->createElement("elem");
pElem1->appendChild(pElem11);
assert (pNL1->length() == 4);
assert (pNL2->length() == 3);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem2);
assert (pNL1->item(3) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem3);
AutoPtr<Element> pElem12 = pDoc->createElement("Elem");
pElem1->appendChild(pElem12);
assert (pNL1->length() == 5);
assert (pNL2->length() == 3);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem12);
assert (pNL1->item(3) == pElem2);
assert (pNL1->item(4) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem3);
AutoPtr<Element> pElem21 = pDoc->createElement("elem");
pElem2->appendChild(pElem21);
assert (pNL1->length() == 6);
assert (pNL2->length() == 4);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem12);
assert (pNL1->item(3) == pElem2);
assert (pNL1->item(4) == pElem21);
assert (pNL1->item(5) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem21);
assert (pNL2->item(3) == pElem3);
}
void ElementTest::testElementsByTagNameNS()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pRoot = pDoc->createElementNS("urn:ns1", "root");
AutoPtr<NodeList> pNL1 = pRoot->getElementsByTagNameNS("*", "*");
AutoPtr<NodeList> pNL2 = pRoot->getElementsByTagNameNS("*", "elem");
AutoPtr<NodeList> pNL3 = pRoot->getElementsByTagNameNS("urn:ns1", "elem");
assert (pNL1->length() == 0);
assert (pNL2->length() == 0);
AutoPtr<Element> pElem1 = pDoc->createElementNS("urn:ns1", "elem");
pRoot->appendChild(pElem1);
assert (pNL1->length() == 1);
assert (pNL2->length() == 1);
assert (pNL3->length() == 1);
assert (pNL1->item(0) == pElem1);
assert (pNL2->item(0) == pElem1);
assert (pNL3->item(0) == pElem1);
AutoPtr<Element> pElem2 = pDoc->createElementNS("urn:ns1", "Elem");
pRoot->appendChild(pElem2);
assert (pNL1->length() == 2);
assert (pNL2->length() == 1);
assert (pNL3->length() == 1);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem2);
assert (pNL2->item(0) == pElem1);
assert (pNL3->item(0) == pElem1);
AutoPtr<Element> pElem3 = pDoc->createElementNS("urn:ns2", "elem");
pRoot->appendChild(pElem3);
assert (pNL1->length() == 3);
assert (pNL2->length() == 2);
assert (pNL3->length() == 1);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem2);
assert (pNL1->item(2) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem3);
assert (pNL3->item(0) == pElem1);
AutoPtr<Element> pElem11 = pDoc->createElementNS("urn:ns1", "elem");
pElem1->appendChild(pElem11);
assert (pNL1->length() == 4);
assert (pNL2->length() == 3);
assert (pNL3->length() == 2);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem2);
assert (pNL1->item(3) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem3);
assert (pNL3->item(0) == pElem1);
assert (pNL3->item(1) == pElem11);
AutoPtr<Element> pElem12 = pDoc->createElementNS("urn:ns1", "Elem");
pElem1->appendChild(pElem12);
assert (pNL1->length() == 5);
assert (pNL2->length() == 3);
assert (pNL3->length() == 2);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem12);
assert (pNL1->item(3) == pElem2);
assert (pNL1->item(4) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem3);
assert (pNL3->item(0) == pElem1);
assert (pNL3->item(1) == pElem11);
AutoPtr<Element> pElem21 = pDoc->createElementNS("urn:ns1", "elem");
pElem2->appendChild(pElem21);
assert (pNL1->length() == 6);
assert (pNL2->length() == 4);
assert (pNL3->length() == 3);
assert (pNL1->item(0) == pElem1);
assert (pNL1->item(1) == pElem11);
assert (pNL1->item(2) == pElem12);
assert (pNL1->item(3) == pElem2);
assert (pNL1->item(4) == pElem21);
assert (pNL1->item(5) == pElem3);
assert (pNL2->item(0) == pElem1);
assert (pNL2->item(1) == pElem11);
assert (pNL2->item(2) == pElem21);
assert (pNL2->item(3) == pElem3);
assert (pNL3->item(0) == pElem1);
assert (pNL3->item(1) == pElem11);
assert (pNL3->item(2) == pElem21);
}
void ElementTest::testInnerText()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pRoot = pDoc->createElement("root");
AutoPtr<Text> pText1 = pDoc->createTextNode("text1");
AutoPtr<Element> pElem1 = pDoc->createElement("elem1");
AutoPtr<Text> pText2 = pDoc->createTextNode("text2");
AutoPtr<Text> pText3 = pDoc->createTextNode("text3");
pElem1->appendChild(pText2);
pRoot->appendChild(pText1);
pRoot->appendChild(pElem1);
pRoot->appendChild(pText3);
XMLString innerText = pRoot->innerText();
assert (innerText == "text1text2text3");
}
void ElementTest::testChildElement()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pRoot = pDoc->createElement("root");
AutoPtr<Element> pElem1 = pDoc->createElement("elem1");
AutoPtr<Element> pElem2 = pDoc->createElement("elem2");
AutoPtr<Element> pElem3 = pDoc->createElement("elem3");
AutoPtr<Element> pElem4 = pDoc->createElement("elem3");
pRoot->appendChild(pElem1);
pRoot->appendChild(pElem2);
pRoot->appendChild(pElem3);
pRoot->appendChild(pElem4);
assert (pRoot->getChildElement("elem1") == pElem1);
assert (pRoot->getChildElement("elem2") == pElem2);
assert (pRoot->getChildElement("elem3") == pElem3);
assert (pRoot->getChildElement("elem4") == 0);
assert (pElem1->getChildElement("elem11") == 0);
}
void ElementTest::testChildElementNS()
{
AutoPtr<Document> pDoc = new Document;
AutoPtr<Element> pRoot = pDoc->createElementNS("urn:ns", "root");
AutoPtr<Element> pElem1 = pDoc->createElementNS("urn:ns", "elem1");
AutoPtr<Element> pElem2 = pDoc->createElementNS("urn:ns", "elem2");
AutoPtr<Element> pElem3 = pDoc->createElementNS("urn:ns", "elem3");
AutoPtr<Element> pElem4 = pDoc->createElementNS("urn:ns", "elem3");
pRoot->appendChild(pElem1);
pRoot->appendChild(pElem2);
pRoot->appendChild(pElem3);
pRoot->appendChild(pElem4);
assert (pRoot->getChildElementNS("urn:ns", "elem1") == pElem1);
assert (pRoot->getChildElementNS("urn:ns", "elem2") == pElem2);
assert (pRoot->getChildElementNS("urn:ns", "elem3") == pElem3);
assert (pRoot->getChildElementNS("urn:ns", "elem4") == 0);
assert (pRoot->getChildElementNS("urn:NS", "elem1") == 0);
assert (pElem1->getChildElementNS("urn:ns", "elem11") == 0);
}
void ElementTest::setUp()
{
}
void ElementTest::tearDown()
{
}
CppUnit::Test* ElementTest::suite()
{
CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ElementTest");
CppUnit_addTest(pSuite, ElementTest, testAttributes);
CppUnit_addTest(pSuite, ElementTest, testAttributesNS);
CppUnit_addTest(pSuite, ElementTest, testAttrMap);
CppUnit_addTest(pSuite, ElementTest, testAttrMapNS);
CppUnit_addTest(pSuite, ElementTest, testElementsByTagName);
CppUnit_addTest(pSuite, ElementTest, testElementsByTagNameNS);
CppUnit_addTest(pSuite, ElementTest, testInnerText);
CppUnit_addTest(pSuite, ElementTest, testChildElement);
CppUnit_addTest(pSuite, ElementTest, testChildElementNS);
return pSuite;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -