Mikołaj Zalewski : msxml3: Add tests for XPath queries with namespaces.

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 18 13:56:10 CDT 2007


Module: wine
Branch: master
Commit: 37ea00731afccfadb1fd1a6ea1fd153bcb528f1b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=37ea00731afccfadb1fd1a6ea1fd153bcb528f1b

Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date:   Fri May 11 17:05:32 2007 +0200

msxml3: Add tests for XPath queries with namespaces.

---

 dlls/msxml3/tests/domdoc.c |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index bc55a8e..9c51b48 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1460,6 +1460,7 @@ static void test_IXMLDOMDocument2(void)
 static void test_XPath()
 {
     HRESULT r;
+    VARIANT var;
     VARIANT_BOOL b;
     IXMLDOMDocument2 *doc;
     IXMLDOMNode *rootNode;
@@ -1540,6 +1541,36 @@ static void test_XPath()
     ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_("//*[name()='foo:c']"), &list));
     expect_list_and_release(list, "E3.E4.E2.D1");
 
+    /* it has to be declared in SelectionNamespaces */
+    todo_wine ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+        _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
+
+    /* now the namespace can be used */
+    todo_wine ole_check(IXMLDOMDocument_selectNodes(doc, _bstr_("root//test:c"), &list));
+    todo_wine expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
+    todo_wine ole_check(IXMLDOMNode_selectNodes(rootNode, _bstr_(".//test:c"), &list));
+    todo_wine expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
+    todo_wine ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_("//test:c"), &list));
+    todo_wine expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
+    todo_wine ole_check(IXMLDOMNode_selectNodes(elem1Node, _bstr_(".//test:x"), &list));
+    todo_wine expect_list_and_release(list, "E5.E1.E4.E1.E2.D1");
+
+    /* SelectionNamespaces syntax error - the namespaces doesn't work anymore but the value is stored */
+    ole_expect(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+        _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###")), E_FAIL);
+
+    ole_expect(IXMLDOMDocument_selectNodes(doc, _bstr_("root//foo:c"), &list), E_FAIL);
+
+    todo_wine ole_check(IXMLDOMDocument2_getProperty(doc, _bstr_("SelectionNamespaces"), &var));
+    todo_wine expect_eq(V_VT(&var), VT_BSTR, int, "%x");
+    if (V_VT(&var) == VT_BSTR)
+        expect_bstr_eq_and_free(V_BSTR(&var), "xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' xmlns:foo=###");
+
+    /* extra attributes - same thing*/
+    ole_expect(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"),
+        _variantbstr_("xmlns:test='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' param='test'")), E_FAIL);
+    ole_expect(IXMLDOMDocument_selectNodes(doc, _bstr_("root//foo:c"), &list), E_FAIL);
+
     IXMLDOMNode_Release(rootNode);
     IXMLDOMNode_Release(elem1Node);
     IXMLDOMDocument_Release(doc);




More information about the wine-cvs mailing list