Paul Vriens : riched32/tests: Correct a test to better show the behavior.

Alexandre Julliard julliard at winehq.org
Wed Jun 10 10:16:59 CDT 2009


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

Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date:   Wed Jun 10 13:17:45 2009 +0200

riched32/tests: Correct a test to better show the behavior.

---

 dlls/riched32/tests/editor.c |   56 ++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 15 deletions(-)

diff --git a/dlls/riched32/tests/editor.c b/dlls/riched32/tests/editor.c
index 8e0388c..da74b72 100644
--- a/dlls/riched32/tests/editor.c
+++ b/dlls/riched32/tests/editor.c
@@ -827,7 +827,7 @@ static void test_word_wrap(void)
     POINTL point = {0, 60}; /* This point must be below the first line */
     const char *text = "Must be long enough to test line wrapping";
     DWORD dwCommonStyle = WS_VISIBLE|WS_POPUP|WS_VSCROLL|ES_MULTILINE;
-    int res, pos, lines;
+    int res, pos, lines, prevlines, reflines[3];
 
     /* Test the effect of WS_HSCROLL and ES_AUTOHSCROLL styles on wrapping
      * when specified on window creation and set later. */
@@ -920,29 +920,55 @@ static void test_word_wrap(void)
     ok(pos, "pos=%d indicating no word wrap when it is expected.\n", pos);
     DestroyWindow(hwnd);
 
-    /* Test to see if wrapping happens with redraw disabled. */
+    /* First lets see if the text would wrap normally (needed for reference) */
     hwnd = CreateWindow(RICHEDIT_CLASS10A, NULL, dwCommonStyle,
-                        0, 0, 400, 80, NULL, NULL, hmoduleRichEdit, NULL);
+                        0, 0, 200, 80, NULL, NULL, hmoduleRichEdit, NULL);
+    ok(hwnd != NULL, "error: %d\n", (int) GetLastError());
+    ok(IsWindowVisible(hwnd), "Window should be visible.\n");
+    res = SendMessage(hwnd, EM_REPLACESEL, FALSE, (LPARAM) text);
+    ok(res, "EM_REPLACESEL failed.\n");
+    /* Should have wrapped */
+    reflines[0] = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
+    ok(reflines[0] > 1, "Line was expected to wrap (%d lines).\n", reflines[0]);
+    /* Resize the window to fit the line */
+    MoveWindow(hwnd, 0, 0, 600, 80, TRUE);
+    /* Text should not be wrapped */
+    reflines[1] = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
+    ok(reflines[1] == 1, "Line wasn't expected to wrap (%d lines).\n", reflines[1]);
+    /* Resize the window again to make sure the line wraps again */
+    MoveWindow(hwnd, 0, 0, 10, 80, TRUE);
+    reflines[2] = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
+    ok(reflines[2] > 1, "Line was expected to wrap (%d lines).\n", reflines[2]);
+    DestroyWindow(hwnd);
+
+    /* Same test with redraw disabled */
+    hwnd = CreateWindow(RICHEDIT_CLASS10A, NULL, dwCommonStyle,
+                        0, 0, 200, 80, NULL, NULL, hmoduleRichEdit, NULL);
     ok(hwnd != NULL, "error: %d\n", (int) GetLastError());
     ok(IsWindowVisible(hwnd), "Window should be visible.\n");
+    /* Redraw is disabled by making the window invisible. */
     SendMessage(hwnd, WM_SETREDRAW, FALSE, 0);
-    /* redraw is disabled by making the window invisible. */
     ok(!IsWindowVisible(hwnd), "Window shouldn't be visible.\n");
     res = SendMessage(hwnd, EM_REPLACESEL, FALSE, (LPARAM) text);
     ok(res, "EM_REPLACESEL failed.\n");
-    MoveWindow(hwnd, 0, 0, 100, 80, TRUE);
-    SendMessage(hwnd, WM_SETREDRAW, TRUE, 0);
-    /* Wrapping didn't happen while redraw was disabled. */
+    /* Should have wrapped */
+    prevlines = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
+    ok(prevlines == reflines[0],
+        "Line was expected to wrap (%d lines).\n", prevlines);
+    /* Resize the window to fit the line, no change to the number of lines */
+    MoveWindow(hwnd, 0, 0, 600, 80, TRUE);
     lines = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
-    todo_wine ok(lines == 1, "Line wasn't expected to wrap (lines=%d).\n", lines);
-    /* There isn't even a rewrap from resizing the window. */
+    todo_wine
+    ok(lines == prevlines ||
+        broken(lines == reflines[1]), /* Win98, WinME and NT4 */
+        "Expected no change in the number of lines\n");
+    /* Resize the window again to make sure the line wraps again */
+    MoveWindow(hwnd, 0, 0, 10, 80, TRUE);
     lines = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
-    todo_wine ok(lines == 1, "Line wasn't expected to wrap (lines=%d).\n", lines);
-    res = SendMessage(hwnd, EM_REPLACESEL, FALSE, (LPARAM) text);
-    ok(res, "EM_REPLACESEL failed.\n");
-    lines = SendMessage(hwnd, EM_GETLINECOUNT, 0, 0);
-    ok(lines > 1, "Line was expected to wrap (lines=%d).\n", lines);
-
+    todo_wine
+    ok(lines == prevlines ||
+        broken(lines == reflines[2]), /* Win98, WinME and NT4 */
+        "Expected no change in the number of lines\n");
     DestroyWindow(hwnd);
 }
 




More information about the wine-cvs mailing list