[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    [PATCH 2/4] msxml3/tests: Test for disabled element methods with writer domdoc dest.
From:       Jefferson Carpenter <jefferson () aoeu2code ! com>
Date:       2021-05-31 18:15:59
Message-ID: a661c0a7-a5ea-5ba5-da3a-127f7631f1fb () aoeu2code ! com
[Download RAW message or body]

["0002-msxml3-tests-Test-for-disabled-element-methods-with-.patch" (text/plain)]

From 30e5e9367df70b69041bb88fece87d32a4251930 Mon Sep 17 00:00:00 2001
From: Jefferson Carpenter <jeffersoncarpenter2@gmail.com>
Date: Mon, 31 May 2021 20:06:19 +0000
Subject: [PATCH 2/4] msxml3/tests: Test for disabled element methods with
 writer domdoc dest.

Signed-off-by: Jefferson Carpenter <jeffersoncarpenter2@gmail.com>
---
 dlls/msxml3/tests/saxreader.c | 77 +++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)

diff --git a/dlls/msxml3/tests/saxreader.c b/dlls/msxml3/tests/saxreader.c
index 1bd9787cb92..53e2af016f4 100644
--- a/dlls/msxml3/tests/saxreader.c
+++ b/dlls/msxml3/tests/saxreader.c
@@ -4918,6 +4918,58 @@ static void check_domnode_methods_disabled(IXMLDOMDocument \
*locked_doc, IXMLDOMN  IXMLDOMDocument_Release(stylesheet);
 }
 
+static void check_domelement_methods_disabled(IXMLDOMElement *locked_element)
+{
+    HRESULT hr;
+    BSTR bstr;
+    BSTR some_attribute;
+    VARIANT variant;
+    IXMLDOMAttribute *attribute_node;
+    IXMLDOMNodeList *node_list;
+
+    some_attribute = _bstr_("some-attribute");
+
+    bstr = (void*)0xdeadbeef;
+    hr = IXMLDOMElement_get_tagName(locked_element, &bstr);
+    ok(hr == S_OK, "%p: Unexpected hr %#x.\n", locked_element, hr);
+    ok(bstr != (void*)0xdeadbeef, "%p: Got %p.\n", locked_element, bstr);
+    ok(!lstrcmpW(bstr, L"BankAccount"), "%p: Incorrect tag name: %s.\n", \
locked_element, wine_dbgstr_w(bstr)); +    SysFreeString(bstr);
+
+    V_VT(&variant) = VT_EMPTY;
+    hr = IXMLDOMElement_getAttribute(locked_element, some_attribute, &variant);
+    ok(hr == S_FALSE, "%p: Unexpected hr %#x.\n", locked_element, hr);
+    ok(V_VT(&variant) == VT_NULL, "%p: Got %d.\n", locked_element, V_VT(&variant));
+
+    V_VT(&variant) = VT_BSTR;
+    V_BSTR(&variant) = _bstr_("some-value");
+    hr = IXMLDOMElement_setAttribute(locked_element, some_attribute, variant);
+    ok(hr == E_FAIL, "%p: Unexpected hr %#x.\n", locked_element, hr);
+
+    hr = IXMLDOMElement_removeAttribute(locked_element, some_attribute);
+    ok(hr == E_FAIL, "%p: Unexpected hr %#x.\n", locked_element, hr);
+
+    attribute_node = (void*)0xdeadbeef;
+    hr = IXMLDOMElement_getAttributeNode(locked_element, some_attribute, \
&attribute_node); +    ok(hr == S_FALSE, "%p: Unexpected hr %#x.\n", locked_element, \
hr); +    ok(attribute_node != (void*)0xdeadbeef, "%p: Got %p.\n", locked_element, \
attribute_node); +
+    hr = IXMLDOMElement_setAttributeNode(locked_element, NULL, NULL);
+    ok(hr == E_FAIL, "%p: Unexpected hr %#x.\n", locked_element, hr);
+
+    hr = IXMLDOMElement_removeAttributeNode(locked_element, NULL, NULL);
+    ok(hr == E_FAIL, "%p: Unexpected hr %#x.\n", locked_element, hr);
+
+    node_list = (void*)0xdeadbeef;
+    hr = IXMLDOMElement_getElementsByTagName(locked_element, \
_bstr_("some_tag_name"), &node_list); +    todo_wine ok(hr == E_PENDING, "%p: \
Unexpected hr %#x.\n", locked_element, hr); +    ok(node_list != (void*)0xdeadbeef, \
"%p: Got %p.\n", locked_element, node_list); +    if (node_list) \
IXMLDOMNodeList_Release(node_list); +
+    hr = IXMLDOMElement_normalize(locked_element);
+    ok(hr == E_FAIL, "%p: Unexpected hr %#x.\n", locked_element, hr);
+}
+
 static void test_mxwriter_domdoc_startDocument_disables_domdoc_methods(void)
 {
     HRESULT hr;
@@ -4937,6 +4989,8 @@ static void \
test_mxwriter_domdoc_startDocument_disables_domdoc_methods(void)  IXMLDOMText *text = \
NULL;  IXMLDOMComment *comment = NULL;
     IXMLDOMCDATASection *cdata_section = NULL;
+    /* for disabled element methods */
+    IXMLDOMElement *element = NULL;
     IXMLDOMDocument2 *domdoc2;
     IXMLDOMDocument3 *domdoc3;
 
@@ -5054,9 +5108,32 @@ static void \
                test_mxwriter_domdoc_startDocument_disables_domdoc_methods(void)
     if (import_text_node) check_domnode_methods_disabled(domdoc, import_text_node, \
DOMNodeDisabled_imported_text);  
 
+    /* Call IXMLDOMElement methods on element. */
+    element = NULL;
+    if (element_node) {
+        hr = IXMLDOMNode_QueryInterface(element_node, &IID_IXMLDOMElement, \
(void**)&element); +        ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    }
+    if (element) {
+        check_domelement_methods_disabled(element);
+        IXMLDOMElement_Release(element);
+    }
+
+    element = NULL;
+    if (import_element_node) {
+        hr = IXMLDOMNode_QueryInterface(import_element_node, &IID_IXMLDOMElement, \
(void**)&element); +        ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+    }
+    if (element) {
+        check_domelement_methods_disabled(element);
+        IXMLDOMElement_Release(element);
+    }
+
+
     if (import_text_node) IXMLDOMNode_Release(import_text_node);
     if (import_element_node) IXMLDOMNode_Release(import_element_node);
     if (text_node) IXMLDOMNode_Release(text_node);
+    if (element_node) IXMLDOMNode_Release(element_node);
     IXMLDOMDocument3_Release(domdoc3);
     IXMLDOMDocument2_Release(domdoc2);
     IXMLDOMDocument_Release(domdoc);
-- 
2.26.2



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic