[PATCH 4/4] msxml3: partial stub domdoc_validate()
Adam Martinson
amartinson at codeweavers.com
Fri Oct 1 14:31:21 CDT 2010
---
dlls/msxml3/domdoc.c | 31 +++++++++++++++-
dlls/msxml3/tests/domdoc.c | 84 ++++++++++++++++++++++----------------------
2 files changed, 71 insertions(+), 44 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index fe3c53a..aafee7f 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -2302,8 +2302,35 @@ static HRESULT WINAPI domdoc_validate(
IXMLDOMParseError** err)
{
domdoc *This = impl_from_IXMLDOMDocument3( iface );
- FIXME("(%p)->(%p)\n", This, err);
- return E_NOTIMPL;
+ LONG state;
+ xmlValidCtxtPtr vctx;
+
+ TRACE("(%p)->(%p)\n", This, err);
+ domdoc_get_readyState(iface, &state);
+ if (state != READYSTATE_COMPLETE)
+ {
+ if (err)
+ *err = create_parseError(0, NULL, NULL, NULL, 0, 0, 0);
+ return E_PENDING;
+ }
+
+ vctx = xmlNewValidCtxt();
+ vctx->error = NULL; /* TODO: error callback */
+ vctx->warning = NULL; /* TODO: warning callback */
+
+ if (xmlValidateDocument(vctx, get_doc(This)))
+ {
+ if (err)
+ *err = create_parseError(0, NULL, NULL, NULL, 0, 0, 0);
+ xmlFreeValidCtxt(vctx);
+ return S_OK;
+ }
+
+ FIXME("partial stub!\n");
+ if (err)
+ *err = create_parseError(0xC00CE223, NULL, NULL, NULL, 0, 0, 0);
+ xmlFreeValidCtxt(vctx);
+ return S_FALSE;
}
static HRESULT WINAPI domdoc_setProperty(
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index ec4e593..bcdef52 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -3207,15 +3207,15 @@ static void test_IXMLDOMDocument2(void)
ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %i\n", res);
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(doc2, NULL), S_FALSE);
- todo_wine ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected a pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(doc2, NULL), S_FALSE);
+ ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
+ ok(err != NULL, "expected a pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_E_NOTWF */
- todo_wine ok(res == 0xC00CE223, "got %08x\n", res);
+ ok(res == 0xC00CE223, "got %08x\n", res);
IXMLDOMParseError_Release(err);
}
@@ -3229,12 +3229,12 @@ static void test_IXMLDOMDocument2(void)
ok(res == READYSTATE_COMPLETE, "expected READYSTATE_COMPLETE (4), got %i\n", res);
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected a pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(doc2, &err), S_FALSE);
+ ok(err != NULL, "expected a pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_E_NODTD */
todo_wine ok(res == 0xC00CE224, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3299,25 +3299,25 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_check(IXMLDOMDocument2_validate(dtddoc2, &err));
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_check(IXMLDOMDocument2_validate(dtddoc2, &err));
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_expect(IXMLDOMParseError_get_errorCode(err, &res), S_FALSE);
- todo_wine ok(res == 0, "got %08x\n", res);
+ ole_expect(IXMLDOMParseError_get_errorCode(err, &res), S_FALSE);
+ ok(res == 0, "got %08x\n", res);
IXMLDOMParseError_Release(err);
}
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0D), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ELEMENT_UNDECLARED */
todo_wine ok(res == 0xC00CE00D, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3326,12 +3326,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_0E), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ELEMENT_ID_NOT_FOUND */
todo_wine ok(res == 0xC00CE00E, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3340,12 +3340,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_11), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_EMPTY_NOT_ALLOWED */
todo_wine ok(res == 0xC00CE011, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3354,12 +3354,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_13), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ROOT_NAME_MISMATCH */
todo_wine ok(res == 0xC00CE013, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3368,12 +3368,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_14), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_INVALID_CONTENT */
todo_wine ok(res == 0xC00CE014, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3382,12 +3382,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_15), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ATTRIBUTE_NOT_DEFINED */
todo_wine ok(res == 0xC00CE015, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3396,12 +3396,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_16), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ATTRIBUTE_FIXED */
todo_wine ok(res == 0xC00CE016, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3410,12 +3410,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_17), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ATTRIBUTE_VALUE */
todo_wine ok(res == 0xC00CE017, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3424,12 +3424,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_18), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_ILLEGAL_TEXT */
todo_wine ok(res == 0xC00CE018, "got %08x\n", res);
IXMLDOMParseError_Release(err);
@@ -3438,12 +3438,12 @@ static void test_IXMLDOMDocument2(void)
ole_check(IXMLDOMDocument2_loadXML(dtddoc2, _bstr_(szEmailXML_20), &b));
ok( b == VARIANT_TRUE, "failed to load XML string\n");
err = NULL;
- todo_wine ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
- todo_wine ok(err != NULL, "expected pointer\n");
+ ole_expect(IXMLDOMDocument2_validate(dtddoc2, &err), S_FALSE);
+ ok(err != NULL, "expected pointer\n");
if (err)
{
res = 0;
- todo_wine ole_check(IXMLDOMParseError_get_errorCode(err, &res));
+ ole_check(IXMLDOMParseError_get_errorCode(err, &res));
/* XML_REQUIRED_ATTRIBUTE_MISSING */
todo_wine ok(res == 0xC00CE020, "got %08x\n", res);
IXMLDOMParseError_Release(err);
--
1.7.2.3
--------------020109000500070109080703--
More information about the wine-patches
mailing list