Jactry Zeng : riched20/tests: Test EM_LINELENGTH with multibyte character.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Dec 21 15:10:33 CST 2015


Module: wine
Branch: master
Commit: 99f0f6b91b981407b9f18c8b499f339dcf76f5a6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=99f0f6b91b981407b9f18c8b499f339dcf76f5a6

Author: Jactry Zeng <jzeng at codeweavers.com>
Date:   Mon Dec 21 21:00:28 2015 +0800

riched20/tests: Test EM_LINELENGTH with multibyte character.

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/editor.c | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c
index efa0b29..6c4195c 100644
--- a/dlls/riched20/tests/editor.c
+++ b/dlls/riched20/tests/editor.c
@@ -46,6 +46,7 @@ static CHAR string1[MAX_PATH], string2[MAX_PATH], string3[MAX_PATH];
        format, string1, string2, string3);
 
 static HMODULE hmoduleRichEdit;
+static BOOL is_lang_japanese;
 
 static HWND new_window(LPCSTR lpClassName, DWORD dwStyle, HWND parent) {
   HWND hwnd;
@@ -486,6 +487,28 @@ static void test_EM_LINELENGTH(void)
         offset_test[i][0], result, offset_test[i][1]);
   }
 
+  /* Test with multibyte character */
+  if (!is_lang_japanese)
+    skip("Skip multibyte character tests on non-Japanese platform\n");
+  else
+  {
+    const char *text1 =
+          "wine\n"
+          "richedit\x8e\xf0\n"
+          "wine";
+    int offset_test1[3][2] = {
+           {0, 4},  /* Line 1: |wine\n */
+           {5, 9},  /* Line 2: |richedit\x8e\xf0\n */
+           {15, 4}, /* Line 3: |wine */
+    };
+    SendMessageA(hwndRichEdit, WM_SETTEXT, 0, (LPARAM)text1);
+    for (i = 0; i < sizeof(offset_test1)/sizeof(offset_test1[0]); i++) {
+      result = SendMessageA(hwndRichEdit, EM_LINELENGTH, offset_test1[i][0], 0);
+      ok(result == offset_test1[i][1], "Length of line at offset %d is %ld, expected %d\n",
+         offset_test1[i][0], result, offset_test1[i][1]);
+    }
+  }
+
   DestroyWindow(hwndRichEdit);
 }
 
@@ -4009,7 +4032,7 @@ static void test_EM_SETTEXTEX(void)
   ok(result == 0, "EM_SETTEXTEX: Test UTF8 with BOM set wrong text: Result: %s\n", bufACP);
 
   /* Test multibyte character */
-  if (PRIMARYLANGID(GetUserDefaultLangID()) != LANG_JAPANESE)
+  if (!is_lang_japanese)
     skip("Skip multibyte character tests on non-Japanese platform\n");
   else
   {
@@ -4882,7 +4905,7 @@ static void test_EM_REPLACESEL(int redraw)
     ok(r == 7, "EM_GETLINECOUNT returned %d, expected 7\n", r);
 
     /* Test with  multibyte character */
-    if (PRIMARYLANGID(GetUserDefaultLangID()) != LANG_JAPANESE)
+    if (!is_lang_japanese)
         skip("Skip multibyte character tests on non-Japanese platform\n");
     else
     {
@@ -8160,6 +8183,7 @@ START_TEST( editor )
    * RICHED20.DLL, so the linker doesn't actually link to it. */
   hmoduleRichEdit = LoadLibraryA("riched20.dll");
   ok(hmoduleRichEdit != NULL, "error: %d\n", (int) GetLastError());
+  is_lang_japanese = (PRIMARYLANGID(GetUserDefaultLangID()) == LANG_JAPANESE);
 
   test_WM_CHAR();
   test_EM_FINDTEXT(FALSE);




More information about the wine-cvs mailing list