test/testautomation_keyboard.c
author Alex Baines <alex@abaines.me.uk>
Tue, 19 Aug 2014 23:31:50 +0100
changeset 9097 56d712662a82
parent 7268 b399d0441810
child 10517 563edd87e287
permissions -rw-r--r--
Add a SDL_IM_INTERNAL_EDITING event to make IMs like iBus render editing text in its own UI instead of sending TEXTEDITING events.
This is useful for applications that handle TEXTINPUT events but not TEXTEDITING events.
aschiffler@6800
     1
/**
aschiffler@6800
     2
 * Keyboard test suite
aschiffler@6800
     3
 */
aschiffler@6800
     4
aschiffler@6800
     5
#include <stdio.h>
aschiffler@6983
     6
#include <limits.h>
aschiffler@6800
     7
aschiffler@6813
     8
#include "SDL_config.h"
aschiffler@6800
     9
#include "SDL.h"
aschiffler@6800
    10
#include "SDL_test.h"
aschiffler@6800
    11
aschiffler@6800
    12
/* ================= Test Case Implementation ================== */
aschiffler@6800
    13
aschiffler@6800
    14
/* Test case functions */
aschiffler@6800
    15
aschiffler@6800
    16
/**
aschiffler@6803
    17
 * @brief Check call to SDL_GetKeyboardState with and without numkeys reference.
slouken@7191
    18
 *
aschiffler@6803
    19
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyboardState
aschiffler@6800
    20
 */
aschiffler@6800
    21
int
aschiffler@6800
    22
keyboard_getKeyboardState(void *arg)
aschiffler@6800
    23
{
aschiffler@6800
    24
   int numkeys;
aschiffler@6800
    25
   Uint8 *state;
aschiffler@6800
    26
slouken@7191
    27
   /* Case where numkeys pointer is NULL */
aschiffler@7268
    28
   state = (Uint8 *)SDL_GetKeyboardState(NULL);
aschiffler@6800
    29
   SDLTest_AssertPass("Call to SDL_GetKeyboardState(NULL)");
aschiffler@6800
    30
   SDLTest_AssertCheck(state != NULL, "Validate that return value from SDL_GetKeyboardState is not NULL");
aschiffler@6800
    31
aschiffler@6800
    32
   /* Case where numkeys pointer is not NULL */
aschiffler@6800
    33
   numkeys = -1;
aschiffler@7268
    34
   state = (Uint8 *)SDL_GetKeyboardState(&numkeys);
aschiffler@6800
    35
   SDLTest_AssertPass("Call to SDL_GetKeyboardState(&numkeys)");
aschiffler@6800
    36
   SDLTest_AssertCheck(state != NULL, "Validate that return value from SDL_GetKeyboardState is not NULL");
aschiffler@6800
    37
   SDLTest_AssertCheck(numkeys >= 0, "Validate that value of numkeys is >= 0, got: %i", numkeys);
slouken@7191
    38
aschiffler@6800
    39
   return TEST_COMPLETED;
aschiffler@6800
    40
}
aschiffler@6800
    41
aschiffler@6803
    42
/**
aschiffler@6803
    43
 * @brief Check call to SDL_GetKeyboardFocus
slouken@7191
    44
 *
aschiffler@6803
    45
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyboardFocus
aschiffler@6803
    46
 */
aschiffler@6803
    47
int
aschiffler@6803
    48
keyboard_getKeyboardFocus(void *arg)
aschiffler@6803
    49
{
aschiffler@6803
    50
   SDL_Window* window;
aschiffler@6803
    51
aschiffler@6803
    52
   /* Call, but ignore return value */
aschiffler@6803
    53
   window = SDL_GetKeyboardFocus();
aschiffler@6803
    54
   SDLTest_AssertPass("Call to SDL_GetKeyboardFocus()");
aschiffler@6803
    55
aschiffler@6803
    56
   return TEST_COMPLETED;
aschiffler@6803
    57
}
aschiffler@6803
    58
aschiffler@6803
    59
/**
aschiffler@6803
    60
 * @brief Check call to SDL_GetKeyFromName for known, unknown and invalid name.
slouken@7191
    61
 *
aschiffler@6803
    62
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyFromName
aschiffler@6803
    63
 */
aschiffler@6803
    64
int
aschiffler@6803
    65
keyboard_getKeyFromName(void *arg)
aschiffler@6803
    66
{
aschiffler@6803
    67
   SDL_Keycode result;
aschiffler@6803
    68
aschiffler@6803
    69
   /* Case where Key is known, 1 character input */
aschiffler@6803
    70
   result = SDL_GetKeyFromName("A");
aschiffler@6803
    71
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(known/single)");
aschiffler@6803
    72
   SDLTest_AssertCheck(result == SDLK_a, "Verify result from call, expected: %i, got: %i", SDLK_a, result);
aschiffler@6803
    73
aschiffler@6803
    74
   /* Case where Key is known, 2 character input */
aschiffler@6803
    75
   result = SDL_GetKeyFromName("F1");
aschiffler@6803
    76
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(known/double)");
aschiffler@6803
    77
   SDLTest_AssertCheck(result == SDLK_F1, "Verify result from call, expected: %i, got: %i", SDLK_F1, result);
aschiffler@6803
    78
aschiffler@6803
    79
   /* Case where Key is known, 3 character input */
aschiffler@6803
    80
   result = SDL_GetKeyFromName("End");
aschiffler@6803
    81
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(known/triple)");
aschiffler@6803
    82
   SDLTest_AssertCheck(result == SDLK_END, "Verify result from call, expected: %i, got: %i", SDLK_END, result);
aschiffler@6803
    83
aschiffler@6803
    84
   /* Case where Key is known, 4 character input */
aschiffler@6803
    85
   result = SDL_GetKeyFromName("Find");
aschiffler@6803
    86
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(known/quad)");
aschiffler@6803
    87
   SDLTest_AssertCheck(result == SDLK_FIND, "Verify result from call, expected: %i, got: %i", SDLK_FIND, result);
aschiffler@6803
    88
aschiffler@6803
    89
   /* Case where Key is known, multiple character input */
aschiffler@6803
    90
   result = SDL_GetKeyFromName("AudioStop");
aschiffler@6803
    91
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(known/multi)");
aschiffler@6803
    92
   SDLTest_AssertCheck(result == SDLK_AUDIOSTOP, "Verify result from call, expected: %i, got: %i", SDLK_AUDIOSTOP, result);
aschiffler@6803
    93
aschiffler@6803
    94
   /* Case where Key is unknown */
aschiffler@6803
    95
   result = SDL_GetKeyFromName("NotThere");
aschiffler@6803
    96
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(unknown)");
aschiffler@6803
    97
   SDLTest_AssertCheck(result == SDLK_UNKNOWN, "Verify result from call is UNKNOWN, expected: %i, got: %i", SDLK_UNKNOWN, result);
aschiffler@6803
    98
aschiffler@6803
    99
   /* Case where input is NULL/invalid */
aschiffler@6803
   100
   result = SDL_GetKeyFromName(NULL);
aschiffler@6803
   101
   SDLTest_AssertPass("Call to SDL_GetKeyFromName(NULL)");
aschiffler@6803
   102
   SDLTest_AssertCheck(result == SDLK_UNKNOWN, "Verify result from call is UNKNOWN, expected: %i, got: %i", SDLK_UNKNOWN, result);
aschiffler@6803
   103
aschiffler@6803
   104
   return TEST_COMPLETED;
aschiffler@6803
   105
}
aschiffler@6803
   106
slouken@7191
   107
/*
aschiffler@6983
   108
 * Local helper to check for the invalid scancode error message
aschiffler@6983
   109
 */
aschiffler@6983
   110
void
aschiffler@6983
   111
_checkInvalidScancodeError()
aschiffler@6983
   112
{
aschiffler@6983
   113
   const char *expectedError = "Parameter 'scancode' is invalid";
slouken@7191
   114
   const char *error;
aschiffler@6983
   115
   error = SDL_GetError();
aschiffler@6983
   116
   SDLTest_AssertPass("Call to SDL_GetError()");
aschiffler@6983
   117
   SDLTest_AssertCheck(error != NULL, "Validate that error message was not NULL");
aschiffler@6983
   118
   if (error != NULL) {
slouken@7191
   119
      SDLTest_AssertCheck(SDL_strcmp(error, expectedError) == 0,
aschiffler@6983
   120
          "Validate error message, expected: '%s', got: '%s'", expectedError, error);
aschiffler@6983
   121
      SDL_ClearError();
aschiffler@6983
   122
      SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6983
   123
   }
aschiffler@6983
   124
}
aschiffler@6983
   125
aschiffler@6803
   126
/**
aschiffler@6803
   127
 * @brief Check call to SDL_GetKeyFromScancode
slouken@7191
   128
 *
aschiffler@6803
   129
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyFromScancode
aschiffler@6803
   130
 */
aschiffler@6803
   131
int
aschiffler@6803
   132
keyboard_getKeyFromScancode(void *arg)
aschiffler@6803
   133
{
aschiffler@6803
   134
   SDL_Keycode result;
aschiffler@6803
   135
aschiffler@6803
   136
   /* Case where input is valid */
aschiffler@6803
   137
   result = SDL_GetKeyFromScancode(SDL_SCANCODE_A);
aschiffler@6803
   138
   SDLTest_AssertPass("Call to SDL_GetKeyFromScancode(valid)");
aschiffler@6803
   139
   SDLTest_AssertCheck(result == SDLK_a, "Verify result from call, expected: %i, got: %i", SDLK_a, result);
aschiffler@6803
   140
aschiffler@6803
   141
   /* Case where input is zero */
aschiffler@6803
   142
   result = SDL_GetKeyFromScancode(0);
aschiffler@6813
   143
   SDLTest_AssertPass("Call to SDL_GetKeyFromScancode(0)");
aschiffler@6803
   144
   SDLTest_AssertCheck(result == SDLK_UNKNOWN, "Verify result from call is UNKNOWN, expected: %i, got: %i", SDLK_UNKNOWN, result);
aschiffler@6803
   145
aschiffler@6983
   146
   /* Clear error message */
aschiffler@6813
   147
   SDL_ClearError();
aschiffler@6813
   148
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6813
   149
aschiffler@6813
   150
   /* Case where input is invalid (too small) */
aschiffler@6803
   151
   result = SDL_GetKeyFromScancode(-999);
aschiffler@6813
   152
   SDLTest_AssertPass("Call to SDL_GetKeyFromScancode(-999)");
aschiffler@6803
   153
   SDLTest_AssertCheck(result == SDLK_UNKNOWN, "Verify result from call is UNKNOWN, expected: %i, got: %i", SDLK_UNKNOWN, result);
aschiffler@6983
   154
   _checkInvalidScancodeError();
aschiffler@6813
   155
aschiffler@6813
   156
   /* Case where input is invalid (too big) */
aschiffler@6813
   157
   result = SDL_GetKeyFromScancode(999);
aschiffler@6813
   158
   SDLTest_AssertPass("Call to SDL_GetKeyFromScancode(999)");
aschiffler@6813
   159
   SDLTest_AssertCheck(result == SDLK_UNKNOWN, "Verify result from call is UNKNOWN, expected: %i, got: %i", SDLK_UNKNOWN, result);
aschiffler@6983
   160
   _checkInvalidScancodeError();
aschiffler@6803
   161
aschiffler@6803
   162
   return TEST_COMPLETED;
aschiffler@6803
   163
}
aschiffler@6803
   164
aschiffler@6807
   165
/**
aschiffler@6807
   166
 * @brief Check call to SDL_GetKeyName
slouken@7191
   167
 *
aschiffler@6807
   168
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyName
aschiffler@6807
   169
 */
aschiffler@6807
   170
int
aschiffler@6807
   171
keyboard_getKeyName(void *arg)
slouken@7191
   172
{
aschiffler@6807
   173
   char *result;
aschiffler@6807
   174
   char *expected;
aschiffler@6807
   175
aschiffler@6807
   176
   /* Case where key has a 1 character name */
aschiffler@6807
   177
   expected = "3";
aschiffler@6807
   178
   result = (char *)SDL_GetKeyName(SDLK_3);
aschiffler@6807
   179
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   180
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   181
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   182
aschiffler@6807
   183
   /* Case where key has a 2 character name */
aschiffler@6807
   184
   expected = "F1";
aschiffler@6807
   185
   result = (char *)SDL_GetKeyName(SDLK_F1);
aschiffler@6807
   186
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   187
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   188
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   189
aschiffler@6807
   190
   /* Case where key has a 3 character name */
aschiffler@6807
   191
   expected = "Cut";
aschiffler@6807
   192
   result = (char *)SDL_GetKeyName(SDLK_CUT);
aschiffler@6807
   193
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   194
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   195
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   196
aschiffler@6807
   197
   /* Case where key has a 4 character name */
aschiffler@6807
   198
   expected = "Down";
aschiffler@6807
   199
   result = (char *)SDL_GetKeyName(SDLK_DOWN);
aschiffler@6807
   200
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   201
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   202
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   203
aschiffler@6807
   204
   /* Case where key has a N character name */
aschiffler@6807
   205
   expected = "BrightnessUp";
aschiffler@6807
   206
   result = (char *)SDL_GetKeyName(SDLK_BRIGHTNESSUP);
aschiffler@6807
   207
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   208
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   209
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   210
aschiffler@6807
   211
   /* Case where key has a N character name with space */
aschiffler@6807
   212
   expected = "Keypad MemStore";
aschiffler@6807
   213
   result = (char *)SDL_GetKeyName(SDLK_KP_MEMSTORE);
aschiffler@6807
   214
   SDLTest_AssertPass("Call to SDL_GetKeyName()");
aschiffler@6807
   215
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6807
   216
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: %s, got: %s", expected, result);
aschiffler@6807
   217
aschiffler@6807
   218
   return TEST_COMPLETED;
aschiffler@6807
   219
}
aschiffler@6807
   220
aschiffler@6807
   221
/**
aschiffler@6983
   222
 * @brief SDL_GetScancodeName negative cases
slouken@7191
   223
 *
aschiffler@6983
   224
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetScancodeName
aschiffler@6983
   225
 */
aschiffler@6983
   226
int
aschiffler@6983
   227
keyboard_getScancodeNameNegative(void *arg)
slouken@7191
   228
{
aschiffler@6983
   229
   SDL_Scancode scancode;
aschiffler@6983
   230
   char *result;
aschiffler@6983
   231
   char *expected = "";
aschiffler@6983
   232
aschiffler@6983
   233
   /* Clear error message */
aschiffler@6983
   234
   SDL_ClearError();
aschiffler@6983
   235
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6983
   236
aschiffler@7172
   237
   /* Out-of-bounds scancode */
aschiffler@7172
   238
   scancode = (SDL_Scancode)SDL_NUM_SCANCODES;
aschiffler@6983
   239
   result = (char *)SDL_GetScancodeName(scancode);
aschiffler@6983
   240
   SDLTest_AssertPass("Call to SDL_GetScancodeName(%d/large)", scancode);
aschiffler@6983
   241
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6983
   242
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: '%s', got: '%s'", expected, result);
aschiffler@6983
   243
   _checkInvalidScancodeError();
aschiffler@6983
   244
aschiffler@6983
   245
   return TEST_COMPLETED;
aschiffler@6983
   246
}
aschiffler@6983
   247
aschiffler@6983
   248
/**
aschiffler@6983
   249
 * @brief SDL_GetKeyName negative cases
slouken@7191
   250
 *
aschiffler@6983
   251
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetKeyName
aschiffler@6983
   252
 */
aschiffler@6983
   253
int
aschiffler@6983
   254
keyboard_getKeyNameNegative(void *arg)
slouken@7191
   255
{
aschiffler@6983
   256
   SDL_Keycode keycode;
aschiffler@6983
   257
   char *result;
aschiffler@6983
   258
   char *expected = "";
aschiffler@6983
   259
aschiffler@6983
   260
   /* Unknown keycode */
aschiffler@6983
   261
   keycode = SDLK_UNKNOWN;
aschiffler@6983
   262
   result = (char *)SDL_GetKeyName(keycode);
aschiffler@6983
   263
   SDLTest_AssertPass("Call to SDL_GetKeyName(%d/unknown)", keycode);
aschiffler@6983
   264
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6983
   265
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: '%s', got: '%s'", expected, result);
aschiffler@6983
   266
aschiffler@6983
   267
   /* Clear error message */
aschiffler@6983
   268
   SDL_ClearError();
aschiffler@6983
   269
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6983
   270
aschiffler@6983
   271
   /* Negative keycode */
aschiffler@6983
   272
   keycode = (SDL_Keycode)SDLTest_RandomIntegerInRange(-255, -1);
aschiffler@6983
   273
   result = (char *)SDL_GetKeyName(keycode);
aschiffler@6983
   274
   SDLTest_AssertPass("Call to SDL_GetKeyName(%d/negative)", keycode);
aschiffler@6983
   275
   SDLTest_AssertCheck(result != NULL, "Verify result from call is not NULL");
aschiffler@6983
   276
   SDLTest_AssertCheck(SDL_strcmp(result, expected) == 0, "Verify result from call is valid, expected: '%s', got: '%s'", expected, result);
aschiffler@6983
   277
   _checkInvalidScancodeError();
aschiffler@6983
   278
aschiffler@6983
   279
   SDL_ClearError();
aschiffler@6983
   280
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6983
   281
aschiffler@6983
   282
   return TEST_COMPLETED;
aschiffler@6983
   283
}
aschiffler@6983
   284
aschiffler@6983
   285
/**
aschiffler@6807
   286
 * @brief Check call to SDL_GetModState and SDL_SetModState
slouken@7191
   287
 *
aschiffler@6807
   288
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetModState
aschiffler@6807
   289
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_SetModState
aschiffler@6807
   290
 */
aschiffler@6807
   291
int
aschiffler@6807
   292
keyboard_getSetModState(void *arg)
slouken@7191
   293
{
aschiffler@6807
   294
   SDL_Keymod result;
aschiffler@6807
   295
   SDL_Keymod currentState;
aschiffler@6807
   296
   SDL_Keymod newState;
slouken@7191
   297
   SDL_Keymod allStates =
aschiffler@6807
   298
    KMOD_NONE |
aschiffler@6807
   299
    KMOD_LSHIFT |
aschiffler@6807
   300
    KMOD_RSHIFT |
aschiffler@6807
   301
    KMOD_LCTRL |
aschiffler@6807
   302
    KMOD_RCTRL |
aschiffler@6807
   303
    KMOD_LALT |
aschiffler@6807
   304
    KMOD_RALT |
aschiffler@6807
   305
    KMOD_LGUI |
aschiffler@6807
   306
    KMOD_RGUI |
aschiffler@6807
   307
    KMOD_NUM |
aschiffler@6807
   308
    KMOD_CAPS |
aschiffler@6807
   309
    KMOD_MODE |
aschiffler@6807
   310
    KMOD_RESERVED;
aschiffler@6807
   311
slouken@7191
   312
   /* Get state, cache for later reset */
aschiffler@6807
   313
   result = SDL_GetModState();
aschiffler@6807
   314
   SDLTest_AssertPass("Call to SDL_GetModState()");
slouken@7191
   315
   SDLTest_AssertCheck(result >=0 && result <= allStates, "Verify result from call is valid, expected: 0 <= result <= %i, got: %i", allStates, result);
aschiffler@6807
   316
   currentState = result;
aschiffler@6807
   317
slouken@7191
   318
   /* Set random state */
aschiffler@6807
   319
   newState = SDLTest_RandomIntegerInRange(0, allStates);
aschiffler@6807
   320
   SDL_SetModState(newState);
aschiffler@6807
   321
   SDLTest_AssertPass("Call to SDL_SetModState(%i)", newState);
aschiffler@6807
   322
   result = SDL_GetModState();
aschiffler@6807
   323
   SDLTest_AssertPass("Call to SDL_GetModState()");
aschiffler@6807
   324
   SDLTest_AssertCheck(result == newState, "Verify result from call is valid, expected: %i, got: %i", newState, result);
aschiffler@6807
   325
aschiffler@6807
   326
   /* Set zero state */
aschiffler@6807
   327
   SDL_SetModState(0);
aschiffler@6807
   328
   SDLTest_AssertPass("Call to SDL_SetModState(0)");
aschiffler@6807
   329
   result = SDL_GetModState();
aschiffler@6807
   330
   SDLTest_AssertPass("Call to SDL_GetModState()");
aschiffler@6807
   331
   SDLTest_AssertCheck(result == 0, "Verify result from call is valid, expected: 0, got: %i", result);
aschiffler@6807
   332
aschiffler@6807
   333
   /* Revert back to cached current state if needed */
aschiffler@6807
   334
   if (currentState != 0) {
aschiffler@6807
   335
     SDL_SetModState(currentState);
aschiffler@6807
   336
     SDLTest_AssertPass("Call to SDL_SetModState(%i)", currentState);
aschiffler@6807
   337
     result = SDL_GetModState();
aschiffler@6807
   338
     SDLTest_AssertPass("Call to SDL_GetModState()");
aschiffler@6807
   339
     SDLTest_AssertCheck(result == currentState, "Verify result from call is valid, expected: %i, got: %i", currentState, result);
aschiffler@6807
   340
   }
aschiffler@6807
   341
aschiffler@6807
   342
   return TEST_COMPLETED;
aschiffler@6807
   343
}
aschiffler@6807
   344
aschiffler@6807
   345
aschiffler@6807
   346
/**
aschiffler@6807
   347
 * @brief Check call to SDL_StartTextInput and SDL_StopTextInput
slouken@7191
   348
 *
aschiffler@6807
   349
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_StartTextInput
aschiffler@6807
   350
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_StopTextInput
aschiffler@6807
   351
 */
aschiffler@6807
   352
int
aschiffler@6807
   353
keyboard_startStopTextInput(void *arg)
slouken@7191
   354
{
aschiffler@6807
   355
   /* Start-Stop */
aschiffler@6807
   356
   SDL_StartTextInput();
aschiffler@6807
   357
   SDLTest_AssertPass("Call to SDL_StartTextInput()");
aschiffler@6807
   358
   SDL_StopTextInput();
aschiffler@6807
   359
   SDLTest_AssertPass("Call to SDL_StopTextInput()");
aschiffler@6807
   360
aschiffler@6807
   361
   /* Stop-Start */
aschiffler@6807
   362
   SDL_StartTextInput();
aschiffler@6807
   363
   SDLTest_AssertPass("Call to SDL_StartTextInput()");
slouken@7191
   364
aschiffler@6807
   365
   /* Start-Start */
aschiffler@6807
   366
   SDL_StartTextInput();
aschiffler@6807
   367
   SDLTest_AssertPass("Call to SDL_StartTextInput()");
aschiffler@6807
   368
slouken@7191
   369
   /* Stop-Stop */
aschiffler@6807
   370
   SDL_StopTextInput();
aschiffler@6807
   371
   SDLTest_AssertPass("Call to SDL_StopTextInput()");
aschiffler@6807
   372
   SDL_StopTextInput();
aschiffler@6807
   373
   SDLTest_AssertPass("Call to SDL_StopTextInput()");
aschiffler@6807
   374
aschiffler@6807
   375
   return TEST_COMPLETED;
aschiffler@6807
   376
}
aschiffler@6807
   377
aschiffler@6808
   378
/* Internal function to test SDL_SetTextInputRect */
aschiffler@6808
   379
void _testSetTextInputRect(SDL_Rect refRect)
aschiffler@6808
   380
{
aschiffler@6808
   381
   SDL_Rect testRect;
slouken@7191
   382
aschiffler@6808
   383
   testRect = refRect;
aschiffler@6808
   384
   SDL_SetTextInputRect(&testRect);
aschiffler@6808
   385
   SDLTest_AssertPass("Call to SDL_SetTextInputRect with refRect(x:%i,y:%i,w:%i,h:%i)", refRect.x, refRect.y, refRect.w, refRect.h);
aschiffler@6808
   386
   SDLTest_AssertCheck(
slouken@7191
   387
      (refRect.x == testRect.x) && (refRect.y == testRect.y) && (refRect.w == testRect.w) && (refRect.h == testRect.h),
slouken@7191
   388
      "Check that input data was not modified, expected: x:%i,y:%i,w:%i,h:%i, got: x:%i,y:%i,w:%i,h:%i",
slouken@7191
   389
      refRect.x, refRect.y, refRect.w, refRect.h,
aschiffler@6808
   390
      testRect.x, testRect.y, testRect.w, testRect.h);
aschiffler@6808
   391
}
aschiffler@6808
   392
aschiffler@6808
   393
/**
aschiffler@6808
   394
 * @brief Check call to SDL_SetTextInputRect
slouken@7191
   395
 *
aschiffler@6808
   396
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_SetTextInputRect
aschiffler@6808
   397
 */
aschiffler@6808
   398
int
aschiffler@6808
   399
keyboard_setTextInputRect(void *arg)
slouken@7191
   400
{
aschiffler@6808
   401
   SDL_Rect refRect;
slouken@7191
   402
aschiffler@6808
   403
   /* Normal visible refRect, origin inside */
aschiffler@6808
   404
   refRect.x = SDLTest_RandomIntegerInRange(1, 50);;
aschiffler@6808
   405
   refRect.y = SDLTest_RandomIntegerInRange(1, 50);;
aschiffler@6808
   406
   refRect.w = SDLTest_RandomIntegerInRange(10, 50);
aschiffler@6808
   407
   refRect.h = SDLTest_RandomIntegerInRange(10, 50);
aschiffler@6808
   408
   _testSetTextInputRect(refRect);
slouken@7191
   409
aschiffler@6808
   410
   /* Normal visible refRect, origin 0,0 */
aschiffler@6808
   411
   refRect.x = 0;
aschiffler@6808
   412
   refRect.y = 0;
aschiffler@6808
   413
   refRect.w = SDLTest_RandomIntegerInRange(10, 50);
aschiffler@6808
   414
   refRect.h = SDLTest_RandomIntegerInRange(10, 50);
aschiffler@6808
   415
   _testSetTextInputRect(refRect);
aschiffler@6808
   416
aschiffler@6808
   417
   /* 1Pixel refRect */
aschiffler@6808
   418
   refRect.x = SDLTest_RandomIntegerInRange(10, 50);;
aschiffler@6808
   419
   refRect.y = SDLTest_RandomIntegerInRange(10, 50);;
aschiffler@6808
   420
   refRect.w = 1;
aschiffler@6808
   421
   refRect.h = 1;
aschiffler@6808
   422
   _testSetTextInputRect(refRect);
aschiffler@6808
   423
aschiffler@6808
   424
   /* 0pixel refRect */
aschiffler@6808
   425
   refRect.x = 1;
aschiffler@6808
   426
   refRect.y = 1;
aschiffler@6808
   427
   refRect.w = 1;
aschiffler@6808
   428
   refRect.h = 0;
aschiffler@6808
   429
   _testSetTextInputRect(refRect);
aschiffler@6808
   430
aschiffler@6808
   431
   /* 0pixel refRect */
aschiffler@6808
   432
   refRect.x = 1;
aschiffler@6808
   433
   refRect.y = 1;
aschiffler@6808
   434
   refRect.w = 0;
aschiffler@6808
   435
   refRect.h = 1;
aschiffler@6808
   436
   _testSetTextInputRect(refRect);
aschiffler@6808
   437
aschiffler@6808
   438
   /* 0pixel refRect */
aschiffler@6808
   439
   refRect.x = 1;
aschiffler@6808
   440
   refRect.y = 1;
aschiffler@6808
   441
   refRect.w = 0;
aschiffler@6808
   442
   refRect.h = 0;
aschiffler@6808
   443
   _testSetTextInputRect(refRect);
aschiffler@6808
   444
aschiffler@6808
   445
   /* 0pixel refRect */
aschiffler@6808
   446
   refRect.x = 0;
aschiffler@6808
   447
   refRect.y = 0;
aschiffler@6808
   448
   refRect.w = 0;
aschiffler@6808
   449
   refRect.h = 0;
aschiffler@6808
   450
   _testSetTextInputRect(refRect);
aschiffler@6808
   451
aschiffler@6808
   452
   /* negative refRect */
aschiffler@6808
   453
   refRect.x = SDLTest_RandomIntegerInRange(-200, -100);;
aschiffler@6808
   454
   refRect.y = SDLTest_RandomIntegerInRange(-200, -100);;
aschiffler@6808
   455
   refRect.w = 50;
aschiffler@6808
   456
   refRect.h = 50;
aschiffler@6808
   457
   _testSetTextInputRect(refRect);
aschiffler@6808
   458
aschiffler@6808
   459
   /* oversized refRect */
aschiffler@6808
   460
   refRect.x = SDLTest_RandomIntegerInRange(1, 50);;
aschiffler@6808
   461
   refRect.y = SDLTest_RandomIntegerInRange(1, 50);;
aschiffler@6808
   462
   refRect.w = 5000;
aschiffler@6808
   463
   refRect.h = 5000;
aschiffler@6808
   464
   _testSetTextInputRect(refRect);
aschiffler@6808
   465
aschiffler@6808
   466
   /* NULL refRect */
aschiffler@6808
   467
   SDL_SetTextInputRect(NULL);
aschiffler@6808
   468
   SDLTest_AssertPass("Call to SDL_SetTextInputRect(NULL)");
aschiffler@6808
   469
aschiffler@6808
   470
   return TEST_COMPLETED;
aschiffler@6808
   471
}
aschiffler@6808
   472
aschiffler@6808
   473
/**
aschiffler@6808
   474
 * @brief Check call to SDL_SetTextInputRect with invalid data
slouken@7191
   475
 *
aschiffler@6808
   476
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_SetTextInputRect
aschiffler@6808
   477
 */
aschiffler@6808
   478
int
aschiffler@6808
   479
keyboard_setTextInputRectNegative(void *arg)
slouken@7191
   480
{
aschiffler@6813
   481
   /* Some platforms set also an error message; prepare for checking it */
slouken@7191
   482
#if SDL_VIDEO_DRIVER_WINDOWS || SDL_VIDEO_DRIVER_ANDROID || SDL_VIDEO_DRIVER_COCOA
aschiffler@6811
   483
   const char *expectedError = "Parameter 'rect' is invalid";
aschiffler@6808
   484
   const char *error;
slouken@7191
   485
aschiffler@6808
   486
   SDL_ClearError();
aschiffler@6808
   487
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6813
   488
#endif
slouken@7191
   489
aschiffler@6808
   490
   /* NULL refRect */
aschiffler@6808
   491
   SDL_SetTextInputRect(NULL);
aschiffler@6808
   492
   SDLTest_AssertPass("Call to SDL_SetTextInputRect(NULL)");
aschiffler@6813
   493
aschiffler@6813
   494
   /* Some platforms set also an error message; so check it */
slouken@7191
   495
#if SDL_VIDEO_DRIVER_WINDOWS || SDL_VIDEO_DRIVER_ANDROID || SDL_VIDEO_DRIVER_COCOA
aschiffler@6808
   496
   error = SDL_GetError();
aschiffler@6808
   497
   SDLTest_AssertPass("Call to SDL_GetError()");
aschiffler@6808
   498
   SDLTest_AssertCheck(error != NULL, "Validate that error message was not NULL");
aschiffler@6808
   499
   if (error != NULL) {
slouken@7191
   500
      SDLTest_AssertCheck(SDL_strcmp(error, expectedError) == 0,
aschiffler@6808
   501
          "Validate error message, expected: '%s', got: '%s'", expectedError, error);
aschiffler@6808
   502
   }
aschiffler@6808
   503
aschiffler@6808
   504
   SDL_ClearError();
aschiffler@6808
   505
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6813
   506
#endif
slouken@7191
   507
aschiffler@6808
   508
   return TEST_COMPLETED;
aschiffler@6808
   509
}
aschiffler@6808
   510
aschiffler@6811
   511
/**
aschiffler@6811
   512
 * @brief Check call to SDL_GetScancodeFromKey
slouken@7191
   513
 *
aschiffler@6811
   514
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetScancodeFromKey
aschiffler@6811
   515
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_Keycode
aschiffler@6811
   516
 */
aschiffler@6811
   517
int
aschiffler@6811
   518
keyboard_getScancodeFromKey(void *arg)
slouken@7191
   519
{
aschiffler@6811
   520
   SDL_Scancode scancode;
slouken@7191
   521
aschiffler@6811
   522
   /* Regular key */
aschiffler@6811
   523
   scancode = SDL_GetScancodeFromKey(SDLK_4);
aschiffler@6811
   524
   SDLTest_AssertPass("Call to SDL_GetScancodeFromKey(SDLK_4)");
slouken@7191
   525
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_4, "Validate return value from SDL_GetScancodeFromKey, expected: %i, got: %i", SDL_SCANCODE_4, scancode);
aschiffler@6811
   526
aschiffler@6811
   527
   /* Virtual key */
aschiffler@6811
   528
   scancode = SDL_GetScancodeFromKey(SDLK_PLUS);
aschiffler@6811
   529
   SDLTest_AssertPass("Call to SDL_GetScancodeFromKey(SDLK_PLUS)");
slouken@7191
   530
   SDLTest_AssertCheck(scancode == 0, "Validate return value from SDL_GetScancodeFromKey, expected: 0, got: %i", scancode);
slouken@7191
   531
aschiffler@6811
   532
   return TEST_COMPLETED;
aschiffler@6811
   533
}
aschiffler@6811
   534
aschiffler@6811
   535
/**
aschiffler@6811
   536
 * @brief Check call to SDL_GetScancodeFromName
slouken@7191
   537
 *
aschiffler@6811
   538
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetScancodeFromName
aschiffler@6811
   539
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_Keycode
aschiffler@6811
   540
 */
aschiffler@6811
   541
int
aschiffler@6811
   542
keyboard_getScancodeFromName(void *arg)
slouken@7191
   543
{
aschiffler@6811
   544
   SDL_Scancode scancode;
aschiffler@6811
   545
aschiffler@6811
   546
   /* Regular key, 1 character, first name in list */
aschiffler@6811
   547
   scancode = SDL_GetScancodeFromName("A");
aschiffler@6811
   548
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('A')");
slouken@7191
   549
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_A, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_A, scancode);
aschiffler@6811
   550
aschiffler@6811
   551
   /* Regular key, 1 character */
aschiffler@6811
   552
   scancode = SDL_GetScancodeFromName("4");
aschiffler@6811
   553
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('4')");
slouken@7191
   554
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_4, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_4, scancode);
aschiffler@6811
   555
aschiffler@6811
   556
   /* Regular key, 2 characters */
aschiffler@6811
   557
   scancode = SDL_GetScancodeFromName("F1");
aschiffler@6811
   558
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('F1')");
slouken@7191
   559
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_F1, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_F1, scancode);
aschiffler@6811
   560
aschiffler@6811
   561
   /* Regular key, 3 characters */
aschiffler@6811
   562
   scancode = SDL_GetScancodeFromName("End");
aschiffler@6811
   563
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('End')");
slouken@7191
   564
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_END, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_END, scancode);
aschiffler@6811
   565
aschiffler@6811
   566
   /* Regular key, 4 characters */
aschiffler@6811
   567
   scancode = SDL_GetScancodeFromName("Find");
aschiffler@6811
   568
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('Find')");
slouken@7191
   569
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_FIND, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_FIND, scancode);
aschiffler@6811
   570
aschiffler@6811
   571
   /* Regular key, several characters */
aschiffler@6811
   572
   scancode = SDL_GetScancodeFromName("Backspace");
aschiffler@6811
   573
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('Backspace')");
slouken@7191
   574
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_BACKSPACE, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_BACKSPACE, scancode);
aschiffler@6811
   575
aschiffler@6811
   576
   /* Regular key, several characters with space */
aschiffler@6811
   577
   scancode = SDL_GetScancodeFromName("Keypad Enter");
aschiffler@6811
   578
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('Keypad Enter')");
slouken@7191
   579
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_KP_ENTER, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_KP_ENTER, scancode);
aschiffler@6811
   580
aschiffler@6811
   581
   /* Regular key, last name in list */
aschiffler@6811
   582
   scancode = SDL_GetScancodeFromName("Sleep");
aschiffler@6811
   583
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('Sleep')");
slouken@7191
   584
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_SLEEP, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_SLEEP, scancode);
slouken@7191
   585
aschiffler@6811
   586
   return TEST_COMPLETED;
aschiffler@6811
   587
}
aschiffler@6811
   588
slouken@7191
   589
/*
aschiffler@6983
   590
 * Local helper to check for the invalid scancode error message
aschiffler@6983
   591
 */
aschiffler@6983
   592
void
aschiffler@6983
   593
_checkInvalidNameError()
aschiffler@6983
   594
{
aschiffler@6983
   595
   const char *expectedError = "Parameter 'name' is invalid";
slouken@7191
   596
   const char *error;
aschiffler@6983
   597
   error = SDL_GetError();
aschiffler@6983
   598
   SDLTest_AssertPass("Call to SDL_GetError()");
aschiffler@6983
   599
   SDLTest_AssertCheck(error != NULL, "Validate that error message was not NULL");
aschiffler@6983
   600
   if (error != NULL) {
slouken@7191
   601
      SDLTest_AssertCheck(SDL_strcmp(error, expectedError) == 0,
aschiffler@6983
   602
          "Validate error message, expected: '%s', got: '%s'", expectedError, error);
aschiffler@6983
   603
      SDL_ClearError();
aschiffler@6983
   604
      SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6983
   605
   }
aschiffler@6983
   606
}
aschiffler@6983
   607
aschiffler@6811
   608
/**
aschiffler@6811
   609
 * @brief Check call to SDL_GetScancodeFromName with invalid data
slouken@7191
   610
 *
aschiffler@6811
   611
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_GetScancodeFromName
aschiffler@6811
   612
 * @sa http://wiki.libsdl.org/moin.cgi/SDL_Keycode
aschiffler@6811
   613
 */
aschiffler@6811
   614
int
aschiffler@6811
   615
keyboard_getScancodeFromNameNegative(void *arg)
slouken@7191
   616
{
aschiffler@6811
   617
   char *name;
aschiffler@6811
   618
   SDL_Scancode scancode;
aschiffler@6811
   619
aschiffler@6983
   620
   /* Clear error message */
aschiffler@6811
   621
   SDL_ClearError();
aschiffler@6811
   622
   SDLTest_AssertPass("Call to SDL_ClearError()");
aschiffler@6811
   623
aschiffler@6811
   624
   /* Random string input */
aschiffler@6811
   625
   name = SDLTest_RandomAsciiStringOfSize(32);
aschiffler@6811
   626
   SDLTest_Assert(name != NULL, "Check that random name is not NULL");
aschiffler@6811
   627
   if (name == NULL) {
aschiffler@6811
   628
      return TEST_ABORTED;
slouken@7191
   629
   }
aschiffler@6811
   630
   scancode = SDL_GetScancodeFromName((const char *)name);
aschiffler@6811
   631
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName('%s')", name);
aschiffler@6811
   632
   SDL_free(name);
aschiffler@6811
   633
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_UNKNOWN, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_UNKNOWN, scancode);
aschiffler@6983
   634
   _checkInvalidNameError();
slouken@7191
   635
aschiffler@6811
   636
   /* Zero length string input */
aschiffler@6811
   637
   name = "";
aschiffler@6811
   638
   scancode = SDL_GetScancodeFromName((const char *)name);
aschiffler@6811
   639
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName(NULL)");
aschiffler@6811
   640
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_UNKNOWN, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_UNKNOWN, scancode);
aschiffler@6983
   641
   _checkInvalidNameError();
aschiffler@6811
   642
aschiffler@6811
   643
   /* NULL input */
aschiffler@6811
   644
   name = NULL;
aschiffler@6811
   645
   scancode = SDL_GetScancodeFromName((const char *)name);
aschiffler@6811
   646
   SDLTest_AssertPass("Call to SDL_GetScancodeFromName(NULL)");
aschiffler@6811
   647
   SDLTest_AssertCheck(scancode == SDL_SCANCODE_UNKNOWN, "Validate return value from SDL_GetScancodeFromName, expected: %i, got: %i", SDL_SCANCODE_UNKNOWN, scancode);
aschiffler@6983
   648
   _checkInvalidNameError();
slouken@7191
   649
aschiffler@6811
   650
   return TEST_COMPLETED;
aschiffler@6811
   651
}
aschiffler@6811
   652
aschiffler@6803
   653
aschiffler@6803
   654
aschiffler@6800
   655
/* ================= Test References ================== */
aschiffler@6800
   656
aschiffler@6800
   657
/* Keyboard test cases */
aschiffler@6800
   658
static const SDLTest_TestCaseReference keyboardTest1 =
slouken@7191
   659
        { (SDLTest_TestCaseFp)keyboard_getKeyboardState, "keyboard_getKeyboardState", "Check call to SDL_GetKeyboardState with and without numkeys reference", TEST_ENABLED };
aschiffler@6803
   660
aschiffler@6803
   661
static const SDLTest_TestCaseReference keyboardTest2 =
slouken@7191
   662
        { (SDLTest_TestCaseFp)keyboard_getKeyboardFocus, "keyboard_getKeyboardFocus", "Check call to SDL_GetKeyboardFocus", TEST_ENABLED };
aschiffler@6803
   663
aschiffler@6803
   664
static const SDLTest_TestCaseReference keyboardTest3 =
slouken@7191
   665
        { (SDLTest_TestCaseFp)keyboard_getKeyFromName, "keyboard_getKeyFromName", "Check call to SDL_GetKeyFromName for known, unknown and invalid name", TEST_ENABLED };
aschiffler@6803
   666
aschiffler@6803
   667
static const SDLTest_TestCaseReference keyboardTest4 =
slouken@7191
   668
        { (SDLTest_TestCaseFp)keyboard_getKeyFromScancode, "keyboard_getKeyFromScancode", "Check call to SDL_GetKeyFromScancode", TEST_ENABLED };
aschiffler@6800
   669
aschiffler@6807
   670
static const SDLTest_TestCaseReference keyboardTest5 =
slouken@7191
   671
        { (SDLTest_TestCaseFp)keyboard_getKeyName, "keyboard_getKeyName", "Check call to SDL_GetKeyName", TEST_ENABLED };
aschiffler@6807
   672
aschiffler@6807
   673
static const SDLTest_TestCaseReference keyboardTest6 =
slouken@7191
   674
        { (SDLTest_TestCaseFp)keyboard_getSetModState, "keyboard_getSetModState", "Check call to SDL_GetModState and SDL_SetModState", TEST_ENABLED };
aschiffler@6807
   675
aschiffler@6807
   676
static const SDLTest_TestCaseReference keyboardTest7 =
slouken@7191
   677
        { (SDLTest_TestCaseFp)keyboard_startStopTextInput, "keyboard_startStopTextInput", "Check call to SDL_StartTextInput and SDL_StopTextInput", TEST_ENABLED };
aschiffler@6807
   678
aschiffler@6808
   679
static const SDLTest_TestCaseReference keyboardTest8 =
slouken@7191
   680
        { (SDLTest_TestCaseFp)keyboard_setTextInputRect, "keyboard_setTextInputRect", "Check call to SDL_SetTextInputRect", TEST_ENABLED };
aschiffler@6808
   681
aschiffler@6808
   682
static const SDLTest_TestCaseReference keyboardTest9 =
slouken@7191
   683
        { (SDLTest_TestCaseFp)keyboard_setTextInputRectNegative, "keyboard_setTextInputRectNegative", "Check call to SDL_SetTextInputRect with invalid data", TEST_ENABLED };
aschiffler@6808
   684
aschiffler@6811
   685
static const SDLTest_TestCaseReference keyboardTest10 =
slouken@7191
   686
        { (SDLTest_TestCaseFp)keyboard_getScancodeFromKey, "keyboard_getScancodeFromKey", "Check call to SDL_GetScancodeFromKey", TEST_ENABLED };
aschiffler@6811
   687
aschiffler@6811
   688
static const SDLTest_TestCaseReference keyboardTest11 =
slouken@7191
   689
        { (SDLTest_TestCaseFp)keyboard_getScancodeFromName, "keyboard_getScancodeFromName", "Check call to SDL_GetScancodeFromName", TEST_ENABLED };
aschiffler@6811
   690
aschiffler@6811
   691
static const SDLTest_TestCaseReference keyboardTest12 =
slouken@7191
   692
        { (SDLTest_TestCaseFp)keyboard_getScancodeFromNameNegative, "keyboard_getScancodeFromNameNegative", "Check call to SDL_GetScancodeFromName with invalid data", TEST_ENABLED };
aschiffler@6811
   693
aschiffler@6983
   694
static const SDLTest_TestCaseReference keyboardTest13 =
slouken@7191
   695
        { (SDLTest_TestCaseFp)keyboard_getKeyNameNegative, "keyboard_getKeyNameNegative", "Check call to SDL_GetKeyName with invalid data", TEST_ENABLED };
aschiffler@6983
   696
aschiffler@6983
   697
static const SDLTest_TestCaseReference keyboardTest14 =
slouken@7191
   698
        { (SDLTest_TestCaseFp)keyboard_getScancodeNameNegative, "keyboard_getScancodeNameNegative", "Check call to SDL_GetScancodeName with invalid data", TEST_ENABLED };
aschiffler@6983
   699
aschiffler@6800
   700
/* Sequence of Keyboard test cases */
aschiffler@6800
   701
static const SDLTest_TestCaseReference *keyboardTests[] =  {
slouken@7191
   702
    &keyboardTest1, &keyboardTest2, &keyboardTest3, &keyboardTest4, &keyboardTest5, &keyboardTest6,
slouken@7191
   703
    &keyboardTest7, &keyboardTest8, &keyboardTest9, &keyboardTest10, &keyboardTest11, &keyboardTest12,
slouken@7191
   704
    &keyboardTest13, &keyboardTest14, NULL
aschiffler@6800
   705
};
aschiffler@6800
   706
aschiffler@6800
   707
/* Keyboard test suite (global) */
aschiffler@6800
   708
SDLTest_TestSuiteReference keyboardTestSuite = {
slouken@7191
   709
    "Keyboard",
slouken@7191
   710
    NULL,
slouken@7191
   711
    keyboardTests,
slouken@7191
   712
    NULL
aschiffler@6800
   713
};