[PATCH v2 5/5] riched20/tests: Test ITextServices_TxSendMessage({WM_GETTEXT, EM_GETTEXTEX}) with OLE obejct.
Jactry Zeng
jzeng at codeweavers.com
Tue May 25 02:06:03 CDT 2021
Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
---
dlls/riched20/tests/txtsrv.c | 56 ++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c
index 0f6fc44cee6..38d3c6b128d 100644
--- a/dlls/riched20/tests/txtsrv.c
+++ b/dlls/riched20/tests/txtsrv.c
@@ -1217,6 +1217,61 @@ static void test_notifications( void )
ITextHost_Release( host );
}
+static void test_TxSendMesssage_gettext(void)
+{
+ const WCHAR *expected_string;
+ IOleClientSite *clientsite;
+ ITextServices *txtserv;
+ IRichEditOle *reole;
+ GETTEXTEX gettextex;
+ WCHAR buffer[1024];
+ REOBJECT reobject;
+ ITextHost *host;
+ LRESULT result;
+ HRESULT hr;
+
+ init_texthost(&txtserv, &host);
+
+ hr = ITextServices_TxSetText(txtserv, L"abcdefg");
+ ok(hr == S_OK, "Got hr: %#x.\n", hr);
+ hr = ITextServices_QueryInterface(txtserv, &IID_IRichEditOle, (void **)&reole);
+ ok(hr == S_OK, "Got hr: %#x.\n", hr);
+ hr = IRichEditOle_GetClientSite(reole, &clientsite);
+ ok(hr == S_OK, "Got hr: %#x.\n", hr);
+ fill_reobject_struct(&reobject, 3, NULL, NULL, clientsite, 10, 10, DVASPECT_CONTENT, 0, 1);
+ hr = IRichEditOle_InsertObject(reole, &reobject);
+ ok(hr == S_OK, "Got hr: %#x.\n", hr);
+
+ expected_string = L"abc defg";
+ hr = ITextServices_TxSendMessage(txtserv, WM_GETTEXT, sizeof(buffer), (LPARAM)buffer, &result);
+ ok(hr == S_OK, "Got hr %#x.\n", hr);
+ ok(result == lstrlenW(expected_string), "Got wrong length: %ld.\n", result);
+ ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
+
+ expected_string = L"abc\xfffc""defg";
+ gettextex.cb = sizeof(buffer);
+ gettextex.flags = GT_DEFAULT;
+ gettextex.codepage = 1200;
+ gettextex.lpDefaultChar = NULL;
+ gettextex.lpUsedDefChar = NULL;
+ memset(buffer, 0, sizeof(buffer));
+ hr = ITextServices_TxSendMessage(txtserv, EM_GETTEXTEX, (WPARAM)&gettextex, (LPARAM)buffer, &result);
+ ok(hr == S_OK, "Got hr %#x.\n", hr);
+ ok(result == lstrlenW(expected_string), "Got wrong length: %ld.\n", result);
+ ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
+
+ gettextex.flags = GT_RAWTEXT;
+ memset(buffer, 0, sizeof(buffer));
+ hr = ITextServices_TxSendMessage(txtserv, EM_GETTEXTEX, (WPARAM)&gettextex, (LPARAM)buffer, &result);
+ ok(result == lstrlenW(expected_string), "Got wrong length: %ld.\n", result);
+ ok(!lstrcmpW(buffer, expected_string), "Got wrong content: %s.\n", debugstr_w(buffer));
+
+ IOleClientSite_Release(clientsite);
+ IRichEditOle_Release(reole);
+ ITextServices_Release(txtserv);
+ ITextHost_Release(host);
+}
+
START_TEST( txtsrv )
{
ITextServices *txtserv;
@@ -1250,6 +1305,7 @@ START_TEST( txtsrv )
test_default_format();
test_TxGetScroll();
test_notifications();
+ test_TxSendMesssage_gettext();
}
if (wrapperCodeMem) VirtualFree(wrapperCodeMem, 0, MEM_RELEASE);
}
--
2.30.2
More information about the wine-devel
mailing list