From f93825c2b2c1c8c371eaf5472c7e698d291e3bc9 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Mon, 22 Mar 2010 20:50:32 +0000 Subject: [PATCH] [RICHED20_WINETEST] sync riched20_winetest to wine 1.1.41 svn path=/trunk/; revision=46345 --- rostests/winetests/riched20/editor.c | 61 ++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/rostests/winetests/riched20/editor.c b/rostests/winetests/riched20/editor.c index 8aa1c3930b2..ee266836f0f 100644 --- a/rostests/winetests/riched20/editor.c +++ b/rostests/winetests/riched20/editor.c @@ -4812,9 +4812,10 @@ static void test_WM_PASTE(void) static void test_EM_FORMATRANGE(void) { - int i, tpp_x, tpp_y; + int r, i, tpp_x, tpp_y; HDC hdc; HWND hwndRichEdit = new_richedit(NULL); + FORMATRANGE fr; static const struct { const char *string; /* The string */ int first; /* First 'pagebreak', 0 for don't care */ @@ -4834,14 +4835,29 @@ static void test_EM_FORMATRANGE(void) tpp_x = 1440 / GetDeviceCaps(hdc, LOGPIXELSX); tpp_y = 1440 / GetDeviceCaps(hdc, LOGPIXELSY); + /* Test the simple case where all the text fits in the page rect. */ + SendMessage(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"a"); + fr.hdc = fr.hdcTarget = hdc; + fr.rc.top = fr.rcPage.top = fr.rc.left = fr.rcPage.left = 0; + fr.rc.right = fr.rcPage.right = 500 * tpp_x; + fr.rc.bottom = fr.rcPage.bottom = 500 * tpp_y; + fr.chrg.cpMin = 0; + fr.chrg.cpMax = -1; + r = SendMessage(hwndRichEdit, EM_FORMATRANGE, FALSE, (LPARAM)&fr); + todo_wine ok(r == 2, "r=%d expected r=2\n", r); + + SendMessage(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"ab"); + fr.rc.bottom = fr.rcPage.bottom; + r = SendMessage(hwndRichEdit, EM_FORMATRANGE, FALSE, (LPARAM)&fr); + todo_wine ok(r == 3, "r=%d expected r=3\n", r); + SendMessage(hwndRichEdit, EM_FORMATRANGE, FALSE, 0); for (i = 0; i < sizeof(fmtstrings)/sizeof(fmtstrings[0]); i++) { - FORMATRANGE fr; GETTEXTLENGTHEX gtl; SIZE stringsize; - int r, len; + int len; SendMessage(hwndRichEdit, WM_SETTEXT, 0, (LPARAM) fmtstrings[i].string); @@ -5524,6 +5540,45 @@ static void test_EM_GETTEXTLENGTHEX(void) ret = SendMessageA(hwnd, EM_GETTEXTLENGTHEX, (WPARAM)>l, 0); ok(ret == 6, "ret %d\n",ret); + /* Unicode/NUMCHARS/NUMBYTES */ + SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM) test_string_2); + + gtl.flags = GTL_DEFAULT; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == lstrlen(test_string_2), + "GTL_DEFAULT gave %i, expected %i\n", ret, lstrlen(test_string_2)); + + gtl.flags = GTL_NUMCHARS; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == lstrlen(test_string_2), + "GTL_NUMCHARS gave %i, expected %i\n", ret, lstrlen(test_string_2)); + + gtl.flags = GTL_NUMBYTES; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == lstrlen(test_string_2)*2, + "GTL_NUMBYTES gave %i, expected %i\n", ret, lstrlen(test_string_2)*2); + + gtl.flags = GTL_PRECISE; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == lstrlen(test_string_2)*2, + "GTL_PRECISE gave %i, expected %i\n", ret, lstrlen(test_string_2)*2); + + gtl.flags = GTL_NUMCHARS | GTL_PRECISE; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == lstrlen(test_string_2), + "GTL_NUMCHAR | GTL_PRECISE gave %i, expected %i\n", ret, lstrlen(test_string_2)); + + gtl.flags = GTL_NUMCHARS | GTL_NUMBYTES; + gtl.codepage = 1200; + ret = SendMessage(hwnd, EM_GETTEXTLENGTHEX, (WPARAM) >l, 0); + ok(ret == E_INVALIDARG, + "GTL_NUMCHARS | GTL_NUMBYTES gave %i, expected %i\n", ret, E_INVALIDARG); + DestroyWindow(hwnd); }