[User32Test]
authorJames Tabor <james.tabor@reactos.org>
Thu, 13 Mar 2014 01:39:31 +0000 (01:39 +0000)
committerJames Tabor <james.tabor@reactos.org>
Thu, 13 Mar 2014 01:39:31 +0000 (01:39 +0000)
- Patch by Henri Verbeet : Fix TEXT_WordBreak() when no characters fit.
- Update text to wine head.

svn path=/trunk/; revision=62487

rostests/winetests/user32/text.c

index 217baab..19bcd72 100755 (executable)
@@ -42,6 +42,8 @@ static void test_DrawTextCalcRect(void)
         's','t','r','i','n','g','\0'};
     static CHAR emptystring[] = "";
     static WCHAR emptystringW[] = { 0 };
         's','t','r','i','n','g','\0'};
     static CHAR emptystring[] = "";
     static WCHAR emptystringW[] = { 0 };
+    static CHAR wordbreak_text[] = "line1 line2";
+    static WCHAR wordbreak_textW[] = {'l','i','n','e','1',' ','l','i','n','e','2',0};
     INT textlen, textheight, heightcheck;
     RECT rect = { 0, 0, 100, 0 };
     BOOL ret;
     INT textlen, textheight, heightcheck;
     RECT rect = { 0, 0, 100, 0 };
     BOOL ret;
@@ -556,6 +558,20 @@ static void test_DrawTextCalcRect(void)
         ok(rect.bottom, "rect.bottom should not be 0\n");
     }
 
         ok(rect.bottom, "rect.bottom should not be 0\n");
     }
 
+    SetRect(&rect, 0, 0, 1, 1);
+    heightcheck = DrawTextA(hdc, wordbreak_text, -1, &rect, DT_CALCRECT);
+    SetRect(&rect, 0, 0, 1, 1);
+    textheight = DrawTextA(hdc, wordbreak_text, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
+    ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
+       textheight, heightcheck * 2);
+
+    SetRect(&rect, 0, 0, 1, 1);
+    heightcheck = DrawTextW(hdc, wordbreak_textW, -1, &rect, DT_CALCRECT);
+    SetRect(&rect, 0, 0, 1, 1);
+    textheight = DrawTextW(hdc, wordbreak_textW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
+    ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
+       textheight, heightcheck * 2);
+
     SelectObject(hdc, hOldFont);
     ret = DeleteObject(hFont);
     ok( ret, "DeleteObject error %u\n", GetLastError());
     SelectObject(hdc, hOldFont);
     ret = DeleteObject(hFont);
     ok( ret, "DeleteObject error %u\n", GetLastError());