static void test_dom_node_hierarchy_navigation(DomNodeFixture* fixture, gconstpointer data) { WebKitDOMDocument* document; WebKitDOMHTMLHeadElement* head; WebKitDOMHTMLBodyElement* body; WebKitDOMNodeList* list; WebKitDOMNode* ptr; gulong i, length; document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); g_assert(document); g_assert(WEBKIT_DOM_IS_DOCUMENT(document)); head = webkit_dom_document_get_head(document); g_assert(head); g_assert(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(head)); /* Title, head's child */ g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(head))); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(head)); g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); ptr = webkit_dom_node_list_item(list, 0); g_assert(ptr); g_assert(WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(ptr)); g_object_unref(list); /* Body, Head sibling */ ptr = webkit_dom_node_get_next_sibling(WEBKIT_DOM_NODE(head)); g_assert(ptr); body = WEBKIT_DOM_HTML_BODY_ELEMENT(ptr); g_assert(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(body)); /* There is no third sibling */ ptr = webkit_dom_node_get_next_sibling(ptr); g_assert(ptr == NULL); /* Body's previous sibling is Head */ ptr = webkit_dom_node_get_previous_sibling(WEBKIT_DOM_NODE(body)); g_assert(ptr); g_assert(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(ptr)); /* Body has 3 children */ g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); length = webkit_dom_node_list_get_length(list); g_assert_cmpint(length, ==, 3); /* The three of them are P tags */ for (i = 0; i < length; i++) { ptr = webkit_dom_node_list_item(list, i); g_assert(ptr); g_assert(WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT(ptr)); } /* Go backwards */ for (i = 0; ptr; ptr = webkit_dom_node_get_previous_sibling(ptr), i++) /* Nothing */; g_assert_cmpint(i, ==, 3); g_object_unref(list); }
gchar* webkit_dom_html_head_element_get_profile(WebKitDOMHTMLHeadElement* self) { WebCore::JSMainThreadNullState state; g_return_val_if_fail(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(self), 0); WebCore::HTMLHeadElement* item = WebKit::core(self); gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::profileAttr)); return result; }
void webkit_dom_html_head_element_set_profile(WebKitDOMHTMLHeadElement* self, const gchar* value) { WebCore::JSMainThreadNullState state; g_return_if_fail(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(self)); g_return_if_fail(value); WebCore::HTMLHeadElement* item = WebKit::core(self); WTF::String convertedValue = WTF::String::fromUTF8(value); item->setAttributeWithoutSynchronization(WebCore::HTMLNames::profileAttr, convertedValue); }