Commit f097da9f authored by Dmitry Timoshkov's avatar Dmitry Timoshkov Committed by Alexandre Julliard

user32: Add a simple DrawState test, make it pass under Wine.

parent d06ff0ea
......@@ -2,6 +2,7 @@
* DrawText tests
*
* Copyright (c) 2004 Zach Gorman
* Copyright 2007 Dmitry Timoshkov
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
......@@ -243,11 +244,53 @@ static void test_TabbedText(void)
}
}
ReleaseDC( hwnd, hdc );
DestroyWindow( hwnd );
}
static void test_DrawState(void)
{
static const char text[] = "Sample text string";
HWND hwnd;
HDC hdc;
BOOL ret;
hwnd = CreateWindowExA(0, "static", NULL, WS_POPUP,
0, 0, 200, 200, 0, 0, 0, NULL);
assert(hwnd);
hdc = GetDC(hwnd);
assert(hdc);
SetLastError(0xdeadbeef);
ret = DrawState(hdc, GetStockObject(DKGRAY_BRUSH), NULL, (LPARAM)text, strlen(text),
0, 0, 10, 10, DST_TEXT);
ok(ret, "DrawState error %u\n", GetLastError());
SetLastError(0xdeadbeef);
ret = DrawState(hdc, GetStockObject(DKGRAY_BRUSH), NULL, (LPARAM)text, 0,
0, 0, 10, 10, DST_TEXT);
ok(ret, "DrawState error %u\n", GetLastError());
SetLastError(0xdeadbeef);
ret = DrawState(hdc, GetStockObject(DKGRAY_BRUSH), NULL, 0, strlen(text),
0, 0, 10, 10, DST_TEXT);
ok(!ret, "DrawState succeeded\n");
ok(GetLastError() == 0xdeadbeef, "not expected error %u\n", GetLastError());
SetLastError(0xdeadbeef);
ret = DrawState(hdc, GetStockObject(DKGRAY_BRUSH), NULL, 0, 0,
0, 0, 10, 10, DST_TEXT);
ok(!ret, "DrawState succeeded\n");
ok(GetLastError() == 0xdeadbeef, "not expected error %u\n", GetLastError());
ReleaseDC(hwnd, hdc);
DestroyWindow(hwnd);
}
START_TEST(text)
{
test_TabbedText();
test_DrawTextCalcRect();
test_DrawState();
}
......@@ -1587,6 +1587,8 @@ static BOOL UITOOLS_DrawState(HDC hdc, HBRUSH hbr, DRAWSTATEPROC func, LPARAM lp
if((opcode == DST_TEXT || opcode == DST_PREFIXTEXT) && !len) /* The string is '\0' terminated */
{
if (!lp) return FALSE;
if(unicode)
len = strlenW((LPWSTR)lp);
else
......
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