test/testautomation_clipboard.c
author Andreas Schiffler <aschiffler@ferzkopp.net>
Thu, 24 Jan 2013 07:58:59 -0800
changeset 6822 18f6818ba281
parent 6769 b49778d885cd
child 7144 c700de9c8ed4
permissions -rw-r--r--
Add mouse tests; update test suites
aschiffler@6760
     1
/**
aschiffler@6760
     2
 * New/updated tests: aschiffler at ferzkopp dot net
aschiffler@6760
     3
 */
aschiffler@6760
     4
aschiffler@6760
     5
#include <stdio.h>
aschiffler@6760
     6
#include <string.h>
aschiffler@6760
     7
aschiffler@6760
     8
#include "SDL.h"
aschiffler@6760
     9
#include "SDL_test.h"
aschiffler@6760
    10
aschiffler@6760
    11
/* ================= Test Case Implementation ================== */
aschiffler@6760
    12
aschiffler@6760
    13
/* Test case functions */
aschiffler@6760
    14
aschiffler@6760
    15
/**
aschiffler@6760
    16
 * \brief Check call to SDL_HasClipboardText
aschiffler@6760
    17
 *
aschiffler@6760
    18
 * \sa
aschiffler@6760
    19
 * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText
aschiffler@6760
    20
 */
aschiffler@6760
    21
int
aschiffler@6760
    22
clipboard_testHasClipboardText(void *arg)
aschiffler@6760
    23
{
aschiffler@6760
    24
	SDL_bool result;
aschiffler@6760
    25
	result = SDL_HasClipboardText();
aschiffler@6760
    26
	SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
aschiffler@6760
    27
aschiffler@6760
    28
    return TEST_COMPLETED;
aschiffler@6760
    29
}
aschiffler@6760
    30
aschiffler@6760
    31
/**
aschiffler@6760
    32
 * \brief Check call to SDL_GetClipboardText
aschiffler@6760
    33
 *
aschiffler@6760
    34
 * \sa
aschiffler@6760
    35
 * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText
aschiffler@6760
    36
 */
aschiffler@6760
    37
int
aschiffler@6760
    38
clipboard_testGetClipboardText(void *arg)
aschiffler@6760
    39
{
aschiffler@6760
    40
	char *charResult;
aschiffler@6760
    41
	charResult = SDL_GetClipboardText();
aschiffler@6760
    42
	SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
aschiffler@6760
    43
aschiffler@6760
    44
	if (charResult) SDL_free(charResult);
aschiffler@6760
    45
aschiffler@6760
    46
    return TEST_COMPLETED;
aschiffler@6760
    47
}
aschiffler@6760
    48
aschiffler@6760
    49
/**
aschiffler@6760
    50
 * \brief Check call to SDL_SetClipboardText
aschiffler@6760
    51
 * \sa
aschiffler@6760
    52
 * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText
aschiffler@6760
    53
 */
aschiffler@6760
    54
int
aschiffler@6760
    55
clipboard_testSetClipboardText(void *arg)
aschiffler@6760
    56
{
aschiffler@6760
    57
	char *textRef = SDLTest_RandomAsciiString();
aschiffler@6760
    58
	char *text = SDL_strdup(textRef);
aschiffler@6760
    59
	int result;
aschiffler@6760
    60
	result = SDL_SetClipboardText((const char *)text);
aschiffler@6760
    61
	SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
aschiffler@6760
    62
	SDLTest_AssertCheck(
aschiffler@6760
    63
		result == 0,
aschiffler@6760
    64
		"Validate SDL_SetClipboardText result, expected 0, got %i",
aschiffler@6760
    65
		result);
aschiffler@6760
    66
	SDLTest_AssertCheck(
aschiffler@6760
    67
		SDL_strcmp(textRef, text) == 0,
aschiffler@6760
    68
		"Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
aschiffler@6760
    69
		textRef, text);
aschiffler@6760
    70
aschiffler@6760
    71
    /* Cleanup */
aschiffler@6760
    72
    if (textRef) SDL_free(textRef);
aschiffler@6760
    73
    if (text) SDL_free(text);
aschiffler@6760
    74
aschiffler@6760
    75
   return TEST_COMPLETED;
aschiffler@6760
    76
}
aschiffler@6760
    77
aschiffler@6760
    78
/**
aschiffler@6760
    79
 * \brief End-to-end test of SDL_xyzClipboardText functions
aschiffler@6760
    80
 * \sa
aschiffler@6760
    81
 * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText
aschiffler@6760
    82
 * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText
aschiffler@6760
    83
 * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText
aschiffler@6760
    84
 */
aschiffler@6760
    85
int
aschiffler@6760
    86
clipboard_testClipboardTextFunctions(void *arg)
aschiffler@6760
    87
{
aschiffler@6760
    88
	char *textRef = SDLTest_RandomAsciiString();
aschiffler@6760
    89
	char *text = SDL_strdup(textRef);
aschiffler@6760
    90
	SDL_bool boolResult;
aschiffler@6760
    91
	int intResult;
aschiffler@6760
    92
	char *charResult;
aschiffler@6760
    93
aschiffler@6760
    94
	/* Clear clipboard text state */
aschiffler@6760
    95
	boolResult = SDL_HasClipboardText();
aschiffler@6760
    96
	SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
aschiffler@6760
    97
	if (boolResult == SDL_TRUE) {
aschiffler@6760
    98
        intResult = SDL_SetClipboardText((const char *)NULL);
aschiffler@6760
    99
		SDLTest_AssertPass("Call to DL_SetClipboardText(NULL) succeeded");
aschiffler@6760
   100
	    SDLTest_AssertCheck(
aschiffler@6760
   101
			intResult == 0,
aschiffler@6760
   102
			"Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
aschiffler@6760
   103
			intResult);
aschiffler@6760
   104
	    charResult = SDL_GetClipboardText();
aschiffler@6760
   105
		SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
aschiffler@6760
   106
	    boolResult = SDL_HasClipboardText();
aschiffler@6760
   107
		SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
aschiffler@6760
   108
	    SDLTest_AssertCheck(
aschiffler@6760
   109
            boolResult == SDL_FALSE,
aschiffler@6760
   110
	        "Verify SDL_HasClipboardText returned SDL_FALSE, got %s",
aschiffler@6760
   111
			(boolResult) ? "SDL_TRUE" : "SDL_FALSE");
aschiffler@6760
   112
    }
aschiffler@6760
   113
aschiffler@6760
   114
    /* Empty clipboard  */
aschiffler@6760
   115
	charResult = SDL_GetClipboardText();
aschiffler@6760
   116
	SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
aschiffler@6760
   117
	SDLTest_AssertCheck(
aschiffler@6760
   118
		charResult != NULL,
aschiffler@6760
   119
		"Verify SDL_GetClipboardText did not return NULL");
aschiffler@6760
   120
	SDLTest_AssertCheck(
aschiffler@6822
   121
		SDL_strlen(charResult) == 0,
aschiffler@6760
   122
		"Verify SDL_GetClipboardText returned string with length 0, got length %i",
aschiffler@6822
   123
		SDL_strlen(charResult));
aschiffler@6760
   124
    intResult = SDL_SetClipboardText((const char *)text);
aschiffler@6760
   125
	SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
aschiffler@6760
   126
	SDLTest_AssertCheck(
aschiffler@6760
   127
		intResult == 0,
aschiffler@6760
   128
		"Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
aschiffler@6760
   129
		intResult);
aschiffler@6760
   130
	SDLTest_AssertCheck(
aschiffler@6822
   131
		SDL_strcmp(textRef, text) == 0,
aschiffler@6760
   132
		"Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
aschiffler@6760
   133
		textRef, text);
aschiffler@6760
   134
	boolResult = SDL_HasClipboardText();
aschiffler@6760
   135
	SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
aschiffler@6760
   136
	SDLTest_AssertCheck(
aschiffler@6760
   137
        boolResult == SDL_TRUE,
aschiffler@6760
   138
	    "Verify SDL_HasClipboardText returned SDL_TRUE, got %s",
aschiffler@6760
   139
		(boolResult) ? "SDL_TRUE" : "SDL_FALSE");
aschiffler@6760
   140
	charResult = SDL_GetClipboardText();
aschiffler@6760
   141
	SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
aschiffler@6760
   142
	SDLTest_AssertCheck(
aschiffler@6760
   143
		strcmp(textRef, charResult) == 0,
aschiffler@6760
   144
		"Verify SDL_GetClipboardText returned correct string, expected '%s', got '%s'",
aschiffler@6760
   145
		textRef, charResult);
aschiffler@6760
   146
aschiffler@6760
   147
    /* Cleanup */
aschiffler@6760
   148
    if (textRef) SDL_free(textRef);
aschiffler@6760
   149
    if (text) SDL_free(text);
aschiffler@6760
   150
    if (charResult) SDL_free(charResult);
aschiffler@6760
   151
aschiffler@6760
   152
   return TEST_COMPLETED;
aschiffler@6760
   153
}
aschiffler@6760
   154
aschiffler@6760
   155
aschiffler@6760
   156
/* ================= Test References ================== */
aschiffler@6760
   157
aschiffler@6760
   158
/* Clipboard test cases */
aschiffler@6760
   159
static const SDLTest_TestCaseReference clipboardTest1 =
aschiffler@6760
   160
		{ (SDLTest_TestCaseFp)clipboard_testHasClipboardText, "clipboard_testHasClipboardText", "Check call to SDL_HasClipboardText", TEST_ENABLED };
aschiffler@6760
   161
aschiffler@6760
   162
static const SDLTest_TestCaseReference clipboardTest2 =
aschiffler@6760
   163
		{ (SDLTest_TestCaseFp)clipboard_testGetClipboardText, "clipboard_testGetClipboardText", "Check call to SDL_GetClipboardText", TEST_ENABLED };
aschiffler@6760
   164
aschiffler@6760
   165
static const SDLTest_TestCaseReference clipboardTest3 =
aschiffler@6760
   166
		{ (SDLTest_TestCaseFp)clipboard_testSetClipboardText, "clipboard_testSetClipboardText", "Check call to SDL_SetClipboardText", TEST_ENABLED };
aschiffler@6760
   167
aschiffler@6760
   168
static const SDLTest_TestCaseReference clipboardTest4 =
aschiffler@6760
   169
		{ (SDLTest_TestCaseFp)clipboard_testClipboardTextFunctions, "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED };
aschiffler@6760
   170
aschiffler@6760
   171
/* Sequence of Clipboard test cases */
aschiffler@6760
   172
static const SDLTest_TestCaseReference *clipboardTests[] =  {
aschiffler@6760
   173
	&clipboardTest1, &clipboardTest2, &clipboardTest3, &clipboardTest4, NULL
aschiffler@6760
   174
};
aschiffler@6760
   175
aschiffler@6760
   176
/* Clipboard test suite (global) */
aschiffler@6760
   177
SDLTest_TestSuiteReference clipboardTestSuite = {
aschiffler@6760
   178
	"Clipboard",
aschiffler@6760
   179
	NULL,
aschiffler@6760
   180
	clipboardTests,
aschiffler@6760
   181
	NULL
aschiffler@6760
   182
};