Jactry Zeng : riched32/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: d9ead0c899975780347916fe52f825681f8a16e6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d9ead0c899975780347916fe52f825681f8a16e6

Author: Jactry Zeng <jzeng at codeweavers.com>
Date:   Mon Dec 21 20:59:58 2015 +0800

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

diff --git a/dlls/riched32/tests/editor.c b/dlls/riched32/tests/editor.c
index d3a286e..40daae0 100644
--- a/dlls/riched32/tests/editor.c
+++ b/dlls/riched32/tests/editor.c
@@ -35,6 +35,7 @@
 #include <wine/test.h>
 
 static HMODULE hmoduleRichEdit;
+static BOOL is_lang_japanese;
 
 static HWND new_window(LPCSTR lpClassName, DWORD dwStyle, HWND parent) {
   HWND hwnd;
@@ -498,6 +499,32 @@ 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";
+    static int offset_test1[3][3] = {
+           {0, 4},  /* Line 1: |wine\n */
+           {5, 10, 1}, /* Line 2: |richedit\x8e\xf0\n */
+           {16, 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);
+      if (offset_test1[i][2])
+        todo_wine 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]);
+      else
+        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);
 }
 
@@ -1211,6 +1238,7 @@ START_TEST( editor )
    * RICHED32.DLL, so the linker doesn't actually link to it. */
   hmoduleRichEdit = LoadLibraryA("riched32.dll");
   ok(hmoduleRichEdit != NULL, "error: %d\n", (int) GetLastError());
+  is_lang_japanese = (PRIMARYLANGID(GetUserDefaultLangID()) == LANG_JAPANESE);
 
   test_WM_SETTEXT();
   test_EM_GETTEXTRANGE();




More information about the wine-cvs mailing list