Commit 90d934b5 authored by Brendan McGrath's avatar Brendan McGrath Committed by Alexandre Julliard

user32/tests: Add tests for word breaks before punctuation.

Whilst uniscribe won't break on the space here (see LB13 of the Unicode line breaking algorith), DrawText does
parent 12066a21
......@@ -45,6 +45,8 @@ static void test_DrawTextCalcRect(void)
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};
static WCHAR wordbreak_text_colonW[] = {'l','i','n','e','1',' ','l','i','n','e','2',' ',':',0};
static WCHAR wordbreak_text_csbW[] = {'l','i','n','e','1',' ','l','i','n','e','2',' ',']',0};
static char tabstring[] = "one\ttwo";
INT textlen, textheight, heightcheck;
RECT rect = { 0, 0, 100, 0 }, rect2;
......@@ -590,6 +592,36 @@ static void test_DrawTextCalcRect(void)
ok(textheight >= heightcheck * 6, "Got unexpected textheight %d, expected at least %d.\n",
textheight, heightcheck * 6);
/* Word break tests with space before punctuation */
SetRect(&rect, 0, 0, 200, 1);
textheight = DrawTextW(hdc, wordbreak_text_colonW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck);
rect2 = rect;
rect.right--;
textheight = DrawTextW(hdc, wordbreak_text_colonW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck * 2);
todo_wine ok(rect.right > rect2.right - 10, "Got unexpected textwdith %ld, expected larger than %ld.\n",
rect.right, rect2.right - 10);
SetRect(&rect, 0, 0, 200, 1);
textheight = DrawTextW(hdc, wordbreak_text_csbW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck);
rect2 = rect;
rect.right--;
textheight = DrawTextW(hdc, wordbreak_text_csbW, -1, &rect, DT_CALCRECT | DT_WORDBREAK);
ok(textheight == heightcheck * 2, "Got unexpected textheight %d, expected %d.\n",
textheight, heightcheck * 2);
todo_wine ok(rect.right > rect2.right - 10, "Got unexpected textwdith %ld, expected larger than %ld.\n",
rect.right, rect2.right - 10);
/* DT_TABSTOP | DT_EXPANDTABS tests */
SetRect( &rect, 0,0, 10, 10);
textheight = DrawTextA(hdc, tabstring, -1, &rect, DT_TABSTOP | DT_EXPANDTABS );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment