Adam Martinson : msxml3/tests: Add namespace-related XSLPattern tests.

Alexandre Julliard julliard at winehq.org
Thu Oct 28 12:19:53 CDT 2010


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

Author: Adam Martinson <amartinson at codeweavers.com>
Date:   Wed Oct 27 09:37:36 2010 -0500

msxml3/tests: Add namespace-related XSLPattern tests.

---

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

diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 80557f3..039d9cd 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -6481,6 +6481,64 @@ static void test_XSLPattern(void)
     if (len)
         expect_list_and_release(list, "E2.E2.D1 E3.E2.D1");
 
+    /* namespace handling */
+    /* no registered namespaces */
+    ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("")));
+    list = NULL;
+
+    /* prefixes don't need to be registered, you may use them as they are in the doc */
+    todo_wine ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//bar:x"), &list));
+    if (list)
+    {
+        len = 0;
+        ole_check(IXMLDOMNodeList_get_length(list, &len));
+        todo_wine ok(len != 0, "expected filled list\n");
+        if (len)
+            todo_wine expect_list_and_release(list, "E5.E1.E4.E1.E2.D1 E6.E2.E4.E1.E2.D1");
+    }
+
+    /* prefixes must be explicitly specified in the name */
+    todo_wine ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:elem"), &list));
+    if (list)
+    {
+        len = 0;
+        ole_check(IXMLDOMNodeList_get_length(list, &len));
+        todo_wine ok(len == 0, "expected empty list\n");
+        if (len)
+            IXMLDOMNodeList_Release(list);
+    }
+
+    todo_wine ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:c"), &list));
+    if (list)
+    {
+        len = 0;
+        ole_check(IXMLDOMNodeList_get_length(list, &len));
+        todo_wine ok(len != 0, "expected filled list\n");
+        if (len)
+            todo_wine expect_list_and_release(list, "E3.E4.E2.D1");
+    }
+
+    /* explicitly register prefix foo */
+    ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29'")));
+
+    /* now we get the same behavior as XPath */
+    ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:c"), &list));
+    len = 0;
+    ole_check(IXMLDOMNodeList_get_length(list, &len));
+    ok(len != 0, "expected filled list\n");
+    if (len)
+        expect_list_and_release(list, "E3.E3.E2.D1 E3.E4.E2.D1");
+
+    /* set prefix foo to some non-existant namespace */
+    ole_check(IXMLDOMDocument2_setProperty(doc, _bstr_("SelectionNamespaces"), _variantbstr_("xmlns:foo='urn:non-existant-foo'")));
+
+    /* the registered prefix takes precedence */
+    ole_check(IXMLDOMDocument2_selectNodes(doc, _bstr_("//foo:c"), &list));
+    len = 0;
+    ole_check(IXMLDOMNodeList_get_length(list, &len));
+    ok(len == 0, "expected empty list\n");
+    if (len)
+        IXMLDOMNodeList_Release(list);
 
     IXMLDOMDocument2_Release(doc);
     free_bstrs();




More information about the wine-cvs mailing list