riched20/tests: Add a test to show the insert style is cleared if the selection changes.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2016-10-13 16:52:48 +01:00 committed by Alexandre Julliard
parent 7c609f07b4
commit 9bce3e6113
1 changed files with 59 additions and 0 deletions

View File

@ -1057,6 +1057,14 @@ static void test_EM_SETCHARFORMAT(void)
/* Set two effects on an empty selection */
SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"wine");
/* first clear bold, italic */
SendMessageA(hwndRichEdit, EM_SETSEL, 0, -1);
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
cf2.dwMask = CFM_BOLD | CFM_ITALIC;
cf2.dwEffects = 0;
SendMessageA(hwndRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
SendMessageA(hwndRichEdit, EM_SETSEL, 2, 2); /* Empty selection */
memset(&cf2, 0, sizeof(CHARFORMAT2A));
@ -1084,6 +1092,14 @@ static void test_EM_SETCHARFORMAT(void)
/* Setting the (empty) selection to exactly the same place as before should
NOT clear the insertion style! */
SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"wine");
/* first clear bold, italic */
SendMessageA(hwndRichEdit, EM_SETSEL, 0, -1);
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
cf2.dwMask = CFM_BOLD | CFM_ITALIC;
cf2.dwEffects = 0;
SendMessageA(hwndRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
SendMessageA(hwndRichEdit, EM_SETSEL, 2, 2); /* Empty selection */
memset(&cf2, 0, sizeof(CHARFORMAT2A));
@ -1108,8 +1124,51 @@ static void test_EM_SETCHARFORMAT(void)
ok((cf2.dwEffects & CFE_BOLD) == CFE_BOLD,
"%d, cf2.dwEffects == 0x%08x expected effect 0x%08x\n", i, cf2.dwEffects, CFE_BOLD);
/* Moving the selection will clear the insertion style */
SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"wine");
/* first clear bold, italic */
SendMessageA(hwndRichEdit, EM_SETSEL, 0, -1);
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
cf2.dwMask = CFM_BOLD | CFM_ITALIC;
cf2.dwEffects = 0;
SendMessageA(hwndRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
SendMessageA(hwndRichEdit, EM_SETSEL, 2, 2); /* Empty selection */
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
cf2.dwMask = CFM_BOLD;
cf2.dwEffects = CFE_BOLD;
SendMessageA(hwndRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
/* Move selection and then put it back, insert style should be forgotten here. */
SendMessageA(hwndRichEdit, EM_SETSEL, 3, 3);
SendMessageA(hwndRichEdit, EM_SETSEL, 2, 2); /* Empty selection */
/* Selection is now nonempty */
SendMessageA(hwndRichEdit, EM_REPLACESEL, 0, (LPARAM)"newi");
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
SendMessageA(hwndRichEdit, EM_SETSEL, 2, 6);
SendMessageA(hwndRichEdit, EM_GETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
ok(((cf2.dwMask & CFM_BOLD) == CFM_BOLD),
"%d, cf2.dwMask == 0x%08x expected mask 0x%08x\n", i, cf2.dwMask, CFM_BOLD);
ok((cf2.dwEffects & CFE_BOLD) == 0,
"%d, cf2.dwEffects == 0x%08x not expecting effect 0x%08x\n", i, cf2.dwEffects, CFE_BOLD);
/* Ditto with EM_EXSETSEL */
SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)"wine");
/* first clear bold, italic */
SendMessageA(hwndRichEdit, EM_SETSEL, 0, -1);
memset(&cf2, 0, sizeof(CHARFORMAT2A));
cf2.cbSize = sizeof(CHARFORMAT2A);
cf2.dwMask = CFM_BOLD | CFM_ITALIC;
cf2.dwEffects = 0;
SendMessageA(hwndRichEdit, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
cr.cpMin = 2; cr.cpMax = 2;
SendMessageA(hwndRichEdit, EM_EXSETSEL, 0, (LPARAM)&cr); /* Empty selection */