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) ...@@ -45,6 +45,8 @@ static void test_DrawTextCalcRect(void)
static WCHAR emptystringW[] = { 0 }; static WCHAR emptystringW[] = { 0 };
static CHAR wordbreak_text[] = "line1 line2"; static CHAR wordbreak_text[] = "line1 line2";
static WCHAR wordbreak_textW[] = {'l','i','n','e','1',' ','l','i','n','e','2',0}; 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"; static char tabstring[] = "one\ttwo";
INT textlen, textheight, heightcheck; INT textlen, textheight, heightcheck;
RECT rect = { 0, 0, 100, 0 }, rect2; RECT rect = { 0, 0, 100, 0 }, rect2;
...@@ -590,6 +592,36 @@ static void test_DrawTextCalcRect(void) ...@@ -590,6 +592,36 @@ static void test_DrawTextCalcRect(void)
ok(textheight >= heightcheck * 6, "Got unexpected textheight %d, expected at least %d.\n", ok(textheight >= heightcheck * 6, "Got unexpected textheight %d, expected at least %d.\n",
textheight, heightcheck * 6); 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 */ /* DT_TABSTOP | DT_EXPANDTABS tests */
SetRect( &rect, 0,0, 10, 10); SetRect( &rect, 0,0, 10, 10);
textheight = DrawTextA(hdc, tabstring, -1, &rect, DT_TABSTOP | DT_EXPANDTABS ); 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