SDL: Add mouse test cases (#6563)

From a5b0583b7cdfc235399a32681fc5767f47c3b533 Mon Sep 17 00:00:00 2001
From: ZX_Huang <[EMAIL REDACTED]>
Date: Thu, 24 Nov 2022 03:28:34 +0800
Subject: [PATCH] Add mouse test cases (#6563)

* Add mouse test cases

* fix SDL_GetGlobalMouseState result type

* fix other platforms compile error
---
 test/testautomation_mouse.c | 54 +++++++++++++++++++++++++++++++++++--
 1 file changed, 52 insertions(+), 2 deletions(-)

diff --git a/test/testautomation_mouse.c b/test/testautomation_mouse.c
index f8334803ea21..fcde5dee9aa1 100644
--- a/test/testautomation_mouse.c
+++ b/test/testautomation_mouse.c
@@ -559,6 +559,49 @@ mouse_getMouseFocus(void *arg)
     return TEST_COMPLETED;
 }
 
+/**
+ * @brief Check call to SDL_GetDefaultCursor
+ *
+ * @sa http://wiki.libsdl.org/SDL_GetDefaultCursor
+ */
+int
+mouse_getDefaultCursor(void *arg)
+{
+    SDL_Cursor *cursor;
+
+    /* Get current cursor */
+    cursor = SDL_GetDefaultCursor();
+    SDLTest_AssertPass("Call to SDL_GetDefaultCursor()");
+    SDLTest_AssertCheck(cursor != NULL, "Validate result from SDL_GetDefaultCursor() is not NULL");
+
+    return TEST_COMPLETED;
+}
+
+/**
+ * @brief Check call to SDL_GetGlobalMouseState
+ *
+ * @sa http://wiki.libsdl.org/SDL_GetGlobalMouseState
+ */
+int
+mouse_getGlobalMouseState(void *arg)
+{
+    int x;
+    int y;
+    Uint32 state;
+
+    x = INT_MIN;
+    y = INT_MIN;
+
+    /* Get current cursor */
+    state = SDL_GetGlobalMouseState(&x, &y);
+    SDLTest_AssertPass("Call to SDL_GetGlobalMouseState()");
+    SDLTest_AssertCheck(x > INT_MIN, "Validate that value of x is > INT_MIN, got: %i", x);
+    SDLTest_AssertCheck(y > INT_MIN, "Validate that value of y is > INT_MIN, got: %i", y);
+    SDLTest_AssertCheck(_mouseStateCheck(state), "Validate state returned from function, got: %" SDL_PRIu32, state);
+
+    return TEST_COMPLETED;
+}
+
 /* ================= Test References ================== */
 
 /* Mouse test cases */
@@ -592,10 +635,17 @@ static const SDLTest_TestCaseReference mouseTest9 =
 static const SDLTest_TestCaseReference mouseTest10 =
         { (SDLTest_TestCaseFp)mouse_getSetRelativeMouseMode, "mouse_getSetRelativeMouseMode", "Check call to SDL_GetRelativeMouseMode and SDL_SetRelativeMouseMode", TEST_ENABLED };
 
-/* Sequence of Mouse test cases */
+static const SDLTest_TestCaseReference mouseTest11 = 
+        { (SDLTest_TestCaseFp) mouse_getDefaultCursor, "mouse_getDefaultCursor", "Check call to mouse_getDefaultCursor", TEST_ENABLED };
+
+static const SDLTest_TestCaseReference mouseTest12 = 
+        { (SDLTest_TestCaseFp) mouse_getGlobalMouseState, "mouse_getGlobalMouseState", "Check call to mouse_getGlobalMouseState", TEST_ENABLED };
+
+
+    /* Sequence of Mouse test cases */
 static const SDLTest_TestCaseReference *mouseTests[] =  {
     &mouseTest1, &mouseTest2, &mouseTest3, &mouseTest4, &mouseTest5, &mouseTest6,
-    &mouseTest7, &mouseTest8, &mouseTest9, &mouseTest10, NULL
+    &mouseTest7, &mouseTest8, &mouseTest9, &mouseTest10, &mouseTest11, &mouseTest12, NULL
 };
 
 /* Mouse test suite (global) */