212static void test_dom_document_evaluate(DomDocumentFixture* fixture, gconstpointer data)
213{
214 g_assert(fixture);
215 WebKitWebView* view = (WebKitWebView*)fixture->webView;
216 g_assert(view);
217 WebKitDOMDocument* document = webkit_web_view_get_dom_document(view);
218 g_assert(WEBKIT_DOM_IS_DOCUMENT(document));
219 WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_tag_name(document, "html");
220 g_assert(list);
221 gulong length = webkit_dom_node_list_get_length(list);
222 g_assert_cmpint(length, ==, 1);
223 WebKitDOMNode* html = webkit_dom_node_list_item(list, 0);
224 g_assert(WEBKIT_DOM_IS_NODE(html));
225
226 WebKitDOMXPathResult* result = webkit_dom_document_evaluate(document, "//div", html, NULL, 0, NULL, NULL);
227 g_assert(WEBKIT_DOM_IS_XPATH_RESULT(result));
228
229 int i = 0;
230 WebKitDOMNode* node;
231 while ( (node = webkit_dom_xpath_result_iterate_next(result, NULL)) != NULL) {
232 g_assert(node);
233 WebKitDOMElement* element = (WebKitDOMElement*)node;
234 g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "DIV");
235 i++;
236 }
237 g_assert_cmpint(i, ==, 2);
238
239 g_object_unref(list);
240}
241