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