From 13809112eb9f1e8a42c957766daafbce2d00d136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincas=20Mili=C5=ABnas?= Date: Mon, 11 Jul 2011 20:47:55 +0300 Subject: [PATCH 06/20] user32/tests: Added basic RegisterRawInputDevices tests (try 16) --- dlls/user32/tests/input.c | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 78 insertions(+), 0 deletions(-) diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index 7b5a397..d737e99 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -1975,6 +1975,83 @@ static void test_basic_get_registered_raw_input_devices(void) "expected 0, got %u\n", count); } +static void test_basic_register_raw_input_devices(void) +{ + RAWINPUTDEVICE device; + BOOL ret; + UINT ret2, count; + DWORD error; + + if (!pGetRegisteredRawInputDevices || !pRegisterRawInputDevices) + { + win_skip("GetRegisteredRawInputDevices and RegisterRawInputDevices are not available\n"); + return; + } + + /* Basic tests for RegisterRawInputDevices */ + SetLastError(0xdeadbeef); + ret = pRegisterRawInputDevices(NULL, 0, 0); + error = GetLastError(); + todo_wine ok(!ret, "RegisterRawInputDevices should have failed\n"); + todo_wine ok(error == ERROR_INVALID_PARAMETER, "RegisterRawInputDevices returned " + "wrong error code: %u\n", error); + + SetLastError(0xdeadbeef); + ret = pRegisterRawInputDevices(NULL, 0, sizeof(RAWINPUTDEVICE)); + error = GetLastError(); + todo_wine ok(!ret, "RegisterRawInputDevices should have failed\n"); + todo_wine ok(error == ERROR_INVALID_PARAMETER, "RegisterRawInputDevices returned " + "wrong error code: %u\n", error); + + device.usUsagePage = 0; + device.usUsage = 0; + device.dwFlags = 0; + device.hwndTarget = NULL; + SetLastError(0xdeadbeef); + ret = pRegisterRawInputDevices(&device, 0, sizeof(RAWINPUTDEVICE)); + error = GetLastError(); + todo_wine ok(!ret, "RegisterRawInputDevices should have failed\n"); + todo_wine ok(error == ERROR_INVALID_PARAMETER, "RegisterRawInputDevices returned " + "wrong error code: %u\n", error); + + SetLastError(0xdeadbeef); + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + error = GetLastError(); + todo_wine ok(!ret, "RegisterRawInputDevices should have failed\n"); + todo_wine ok(error == ERROR_INVALID_PARAMETER, "RegisterRawInputDevices returned " + "wrong error code: %u\n", error); + + device.usUsagePage = HID_USAGE_PAGE_GENERIC; + device.usUsage = HID_USAGE_GENERIC_MOUSE; + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + ok(ret, "RegisterRawInputDevices failed to subscribe to mouse raw input\n"); + + device.dwFlags = RIDEV_REMOVE; + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + ok(ret, "RegisterRawInputDevices failed to unsubscribe from mouse raw input\n"); + + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + ok(ret, "RegisterRawInputDevices failed to reunsubscribe from mouse raw input\n"); + + device.usUsagePage = 0xFF; + device.usUsage = 0xFF; + device.dwFlags = 0; + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + ok(ret, "RegisterRawInputDevices failed to subscribe to a non-existing device\n"); + + device.dwFlags = RIDEV_REMOVE; + ret = pRegisterRawInputDevices(&device, 1, sizeof(RAWINPUTDEVICE)); + ok(ret, "RegisterRawInputDevices failed to unsubscribe from a non-existing device\n"); + + /* Assert that no registrations are present */ + count = 0xdeadbeef; + ret2 = pGetRegisteredRawInputDevices(NULL, &count, sizeof(RAWINPUTDEVICE)); + ok(ret2 == 0, "GetRegisteredRawInputDevices returned wrong value: " + "expected 0, got %u\n", ret2); + todo_wine ok(count == 0, "GetRegisteredRawInputDevices returned incorrect registration count: " + "expected 0, got %u\n", count); +} + START_TEST(input) { init_function_pointers(); @@ -1999,6 +2076,7 @@ START_TEST(input) test_get_raw_input_device_info_w(); test_get_raw_input_device_info_a(); test_basic_get_registered_raw_input_devices(); + test_basic_register_raw_input_devices(); if(pGetMouseMovePointsEx) test_GetMouseMovePointsEx(); -- 1.7.3.4