1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

user32/tests: Add exhaustive tests for Get/SetThreadDpiAwarenessContext.

This commit is contained in:
Fabian Maurer 2024-02-24 18:23:22 +01:00 committed by Alexandre Julliard
parent cbcf609108
commit 9ccfac44d5

View file

@ -3778,6 +3778,55 @@ static void test_dpi_aware(void)
test_metrics_for_dpi( 192 );
}
static void test_ThreadDpiAwarenessContext(ULONG_PTR flags)
{
int i;
DPI_AWARENESS_CONTEXT context, last_context;
DPI_AWARENESS awareness;
BOOL ret = pGetProcessDpiAwarenessInternal(GetCurrentProcess(), &awareness);
struct awareness_context_thread
{
ULONG_PTR context;
ULONG_PTR result_get;
ULONG_PTR result_set;
BOOL todo_get;
BOOL todo_set;
} awareness_contexts[] = {
{ 0x10 | flags, 0x10 | flags, 0x10 | flags },
{ 0x11 | flags, 0x11 | flags, 0x11 | flags },
{ 0x12, 0x12, 0x12 },
{ 0x22, 0x22, 0x22, TRUE, TRUE },
{ 0x80000010 | flags, 0x10 | awareness | flags, 0x80000010 | awareness | flags },
{ 0x80000011 | flags, 0x10 | awareness | flags, 0x80000010 | awareness | flags },
{ 0x80000012, 0x10 | awareness | flags, 0x80000010 | awareness | flags },
{ 0x80000022, 0x10 | awareness | flags, 0x80000010 | awareness | flags, FALSE, TRUE },
{ (ULONG_PTR)DPI_AWARENESS_CONTEXT_UNAWARE, 0x10 | flags, 0x10 | flags },
{ (ULONG_PTR)DPI_AWARENESS_CONTEXT_SYSTEM_AWARE, 0x11 | flags, 0x11 | flags },
{ (ULONG_PTR)DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE, 0x12, 0x12 },
{ (ULONG_PTR)DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2, 0x22, 0x22, TRUE, TRUE },
{ 0x12, 0x12 }, /* Only for last_result test */
};
ok(ret, "GetProcessDpiAwarenessInternal failed\n");
for (i = 0; i < ARRAY_SIZE(awareness_contexts); i++)
{
struct awareness_context_thread *item = &awareness_contexts[i];
last_context = pSetThreadDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)item->context );
ok(last_context != 0, "Failed to set context %p\n", (DPI_AWARENESS_CONTEXT)item->context );
if (i != 0)
{
struct awareness_context_thread *last = &awareness_contexts[i - 1];
todo_wine_if(awareness_contexts[i - 1].todo_set)
ok( last_context == (DPI_AWARENESS_CONTEXT)last->result_set, "For context %p - after set expected %p, got %p\n", (DPI_AWARENESS_CONTEXT)last->context, (DPI_AWARENESS_CONTEXT)last->result_set, last_context );
}
context = pGetThreadDpiAwarenessContext();
todo_wine_if(item->todo_get)
ok( context == (DPI_AWARENESS_CONTEXT)item->result_get, "For context %p - after get expected %p, got %p\n", (DPI_AWARENESS_CONTEXT)item->context, (DPI_AWARENESS_CONTEXT)item->result_get, context );
}
}
static void test_dpi_context(void)
{
DPI_AWARENESS awareness;
@ -3923,6 +3972,9 @@ static void test_dpi_context(void)
context = pGetThreadDpiAwarenessContext();
todo_wine
ok( context == (DPI_AWARENESS_CONTEXT)(0x11 | flags), "wrong context %p\n", context );
test_ThreadDpiAwarenessContext(flags);
for (i = 0; i < 0x100; i++)
{
awareness = pGetAwarenessFromDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)i );