Ejemplo n.º 1
0
TEST(DOMParserTest, ParsesASimpleString) {
    string input = "<html><head><title>Hello, World!</title></head><body>This is the body. </body></html>";
    char *copy = strdup(input.c_str());
    DOMNode *node = DOMNode::create();

    XML h;
    DOMNode *pNode = h.parse(copy, node);
    ASSERT_TRUE(pNode != 0);

    DOMNode *htmlNode = pNode->child();
    ASSERT_STREQ(htmlNode->name(), "html");

    ASSERT_STREQ(htmlNode->child()->name(), "head");
    ASSERT_STREQ(htmlNode->last()->name(), "body");

    DOMNode *headNode = htmlNode->child();
    ASSERT_EQ(headNode->child(), headNode->last());
    ASSERT_EQ(headNode->child()->type(), DOMNode::ELEMENT);
    ASSERT_STREQ(headNode->child()->name(), "title");
    ASSERT_STREQ(headNode->child()->child()->content(), "Hello, World!");

    DOMNode *bodyNode = headNode->next();
    ASSERT_STREQ(bodyNode->name(), "body");
    ASSERT_EQ(bodyNode->child(), bodyNode->last());
    ASSERT_EQ(bodyNode->child()->type(), DOMNode::TEXT);
    ASSERT_STREQ(bodyNode->child()->content(), "This is the body. ");

    free(copy);
}