Jactry Zeng : riched20/tests: Test ITextServices_TxGetText() with OLE obejct.

Alexandre Julliard julliard at winehq.org
Mon May 24 15:59:53 CDT 2021


Module: wine
Branch: master
Commit: 3e08cebeee6e6fd56a47cea62bb1ae58232c6d21
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=3e08cebeee6e6fd56a47cea62bb1ae58232c6d21

Author: Jactry Zeng <jzeng at codeweavers.com>
Date:   Thu May 20 15:56:12 2021 +0800

riched20/tests: Test ITextServices_TxGetText() with OLE obejct.

Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/riched20/tests/txtsrv.c | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c
index fe27be26edb..1f789da8a37 100644
--- a/dlls/riched20/tests/txtsrv.c
+++ b/dlls/riched20/tests/txtsrv.c
@@ -650,9 +650,30 @@ static BOOL init_texthost(ITextServices **txtserv, ITextHost **ret)
     return TRUE;
 }
 
+static void fill_reobject_struct(REOBJECT *reobj, LONG cp, LPOLEOBJECT poleobj,
+        LPSTORAGE pstg, LPOLECLIENTSITE polesite, LONG sizel_cx,
+        LONG sizel_cy, DWORD aspect, DWORD flags, DWORD user)
+{
+    reobj->cbStruct = sizeof(*reobj);
+    reobj->clsid = CLSID_NULL;
+    reobj->cp = cp;
+    reobj->poleobj = poleobj;
+    reobj->pstg = pstg;
+    reobj->polesite = polesite;
+    reobj->sizel.cx = sizel_cx;
+    reobj->sizel.cy = sizel_cy;
+    reobj->dvaspect = aspect;
+    reobj->dwFlags = flags;
+    reobj->dwUser = user;
+}
+
 static void test_TxGetText(void)
 {
+    const WCHAR *expected_string;
+    IOleClientSite *clientsite;
     ITextServices *txtserv;
+    IRichEditOle *reole;
+    REOBJECT reobject;
     ITextHost *host;
     HRESULT hres;
     BSTR rettext;
@@ -664,6 +685,24 @@ static void test_TxGetText(void)
     ok(hres == S_OK, "ITextServices_TxGetText failed (result = %x)\n", hres);
     SysFreeString(rettext);
 
+    hres = ITextServices_TxSetText(txtserv, L"abcdefg");
+    ok(hres == S_OK, "Got hres: %#x.\n", hres);
+    hres = ITextServices_QueryInterface(txtserv, &IID_IRichEditOle, (void **)&reole);
+    ok(hres == S_OK, "Got hres: %#x.\n", hres);
+    hres = IRichEditOle_GetClientSite(reole, &clientsite);
+    ok(hres == S_OK, "Got hres: %#x.\n", hres);
+    expected_string = L"abc\xfffc""defg";
+    fill_reobject_struct(&reobject, 3, NULL, NULL, clientsite, 10, 10, DVASPECT_CONTENT, 0, 1);
+    hres = IRichEditOle_InsertObject(reole, &reobject);
+    ok(hres == S_OK, "Got hres: %#x.\n", hres);
+    hres = ITextServices_TxGetText(txtserv, &rettext);
+    ok(hres == S_OK, "Got hres: %#x.\n", hres);
+    ok(lstrlenW(rettext) == lstrlenW(expected_string), "Got wrong length: %d.\n", lstrlenW(rettext));
+    todo_wine ok(!lstrcmpW(rettext, expected_string), "Got wrong content: %s.\n", debugstr_w(rettext));
+    SysFreeString(rettext);
+    IOleClientSite_Release(clientsite);
+    IRichEditOle_Release(reole);
+
     ITextServices_Release(txtserv);
     ITextHost_Release(host);
 }




More information about the wine-cvs mailing list