static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data) { WebKitDOMDocument* document; WebKitDOMHTMLElement* body; WebKitDOMElement* p, *div; WebKitDOMNodeList* list; WebKitDOMNode* node; document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); g_assert(document); body = webkit_dom_document_get_body(document); g_assert(body); g_assert(WEBKIT_DOM_IS_HTML_ELEMENT(body)); /* Body shouldn't have any children at this point */ g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)) == FALSE); /* Insert one P element */ p = webkit_dom_document_create_element(document, "P", NULL); webkit_dom_node_append_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(p), NULL); /* Now it should have one, the same that we inserted */ g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); node = webkit_dom_node_list_item(list, 0); g_assert(node); g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(p), node)); g_object_unref(list); /* Replace the P tag with a DIV tag */ div = webkit_dom_document_create_element(document, "DIV", NULL); webkit_dom_node_replace_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE(p), NULL); g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); node = webkit_dom_node_list_item(list, 0); g_assert(node); g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(div), node)); g_object_unref(list); /* Now remove the tag */ webkit_dom_node_remove_child(WEBKIT_DOM_NODE(body), node, NULL); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 0); g_object_unref(list); /* TODO: insert_before, which does not seem to be working correctly */ }
static void test_dom_document_insert_row(DomDocumentFixture* fixture, gconstpointer data) { g_assert(fixture); WebKitWebView* view = (WebKitWebView*)fixture->webView; g_assert(view); WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); g_assert(WEBKIT_DOM_IS_DOCUMENT(document)); WebKitDOMElement* table = webkit_dom_document_get_element_by_id(document, "table"); g_assert(WEBKIT_DOM_IS_HTML_ELEMENT(table)); WebKitDOMHTMLCollection* rows = webkit_dom_html_table_element_get_rows(WEBKIT_DOM_HTML_TABLE_ELEMENT(table)); g_assert(WEBKIT_DOM_IS_HTML_COLLECTION(rows)); // Table is initially empty. g_assert_cmpint(webkit_dom_html_collection_get_length(rows), ==, 0); WebKitDOMHTMLElement* row = webkit_dom_html_table_element_insert_row(WEBKIT_DOM_HTML_TABLE_ELEMENT(table), -1, NULL); g_assert(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(row)); rows = webkit_dom_html_table_element_get_rows(WEBKIT_DOM_HTML_TABLE_ELEMENT(table)); g_assert(WEBKIT_DOM_IS_HTML_COLLECTION(rows)); g_assert_cmpint(webkit_dom_html_collection_get_length(rows), ==, 1); }