SDL 2.0
testautomation_clipboard.c
Go to the documentation of this file.
1/**
2 * New/updated tests: aschiffler at ferzkopp dot net
3 */
4
5#include <stdio.h>
6#include <string.h>
7
8#include "SDL.h"
9#include "SDL_test.h"
10
11/* ================= Test Case Implementation ================== */
12
13/* Test case functions */
14
15/**
16 * \brief Check call to SDL_HasClipboardText
17 *
18 * \sa
19 * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText
20 */
21int
23{
26 SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
27
28 return TEST_COMPLETED;
29}
30
31/**
32 * \brief Check call to SDL_GetClipboardText
33 *
34 * \sa
35 * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText
36 */
37int
39{
40 char *charResult;
41 charResult = SDL_GetClipboardText();
42 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
43
44 SDL_free(charResult);
45
46 return TEST_COMPLETED;
47}
48
49/**
50 * \brief Check call to SDL_SetClipboardText
51 * \sa
52 * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText
53 */
54int
56{
57 char *textRef = SDLTest_RandomAsciiString();
58 char *text = SDL_strdup(textRef);
59 int result;
60 result = SDL_SetClipboardText((const char *)text);
61 SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
63 result == 0,
64 "Validate SDL_SetClipboardText result, expected 0, got %i",
65 result);
67 SDL_strcmp(textRef, text) == 0,
68 "Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
69 textRef, text);
70
71 /* Cleanup */
72 SDL_free(textRef);
74
75 return TEST_COMPLETED;
76}
77
78/**
79 * \brief End-to-end test of SDL_xyzClipboardText functions
80 * \sa
81 * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText
82 * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText
83 * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText
84 */
85int
87{
88 char *textRef = SDLTest_RandomAsciiString();
89 char *text = SDL_strdup(textRef);
90 SDL_bool boolResult;
91 int intResult;
92 char *charResult;
93
94 /* Clear clipboard text state */
95 boolResult = SDL_HasClipboardText();
96 SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
97 if (boolResult == SDL_TRUE) {
98 intResult = SDL_SetClipboardText((const char *)NULL);
99 SDLTest_AssertPass("Call to SDL_SetClipboardText(NULL) succeeded");
101 intResult == 0,
102 "Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
103 intResult);
104 charResult = SDL_GetClipboardText();
105 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
106 SDL_free(charResult);
107 boolResult = SDL_HasClipboardText();
108 SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
110 boolResult == SDL_FALSE,
111 "Verify SDL_HasClipboardText returned SDL_FALSE, got %s",
112 (boolResult) ? "SDL_TRUE" : "SDL_FALSE");
113 }
114
115 /* Empty clipboard */
116 charResult = SDL_GetClipboardText();
117 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
119 charResult != NULL,
120 "Verify SDL_GetClipboardText did not return NULL");
122 charResult[0] == '\0',
123 "Verify SDL_GetClipboardText returned string with length 0, got length %i",
124 (int) SDL_strlen(charResult));
125 intResult = SDL_SetClipboardText((const char *)text);
126 SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
128 intResult == 0,
129 "Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
130 intResult);
132 SDL_strcmp(textRef, text) == 0,
133 "Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
134 textRef, text);
135 boolResult = SDL_HasClipboardText();
136 SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
138 boolResult == SDL_TRUE,
139 "Verify SDL_HasClipboardText returned SDL_TRUE, got %s",
140 (boolResult) ? "SDL_TRUE" : "SDL_FALSE");
141 SDL_free(charResult);
142 charResult = SDL_GetClipboardText();
143 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
145 SDL_strcmp(textRef, charResult) == 0,
146 "Verify SDL_GetClipboardText returned correct string, expected '%s', got '%s'",
147 textRef, charResult);
148
149 /* Cleanup */
150 SDL_free(textRef);
151 SDL_free(text);
152 SDL_free(charResult);
153
154 return TEST_COMPLETED;
155}
156
157
158/* ================= Test References ================== */
159
160/* Clipboard test cases */
162 { (SDLTest_TestCaseFp)clipboard_testHasClipboardText, "clipboard_testHasClipboardText", "Check call to SDL_HasClipboardText", TEST_ENABLED };
163
165 { (SDLTest_TestCaseFp)clipboard_testGetClipboardText, "clipboard_testGetClipboardText", "Check call to SDL_GetClipboardText", TEST_ENABLED };
166
168 { (SDLTest_TestCaseFp)clipboard_testSetClipboardText, "clipboard_testSetClipboardText", "Check call to SDL_SetClipboardText", TEST_ENABLED };
169
171 { (SDLTest_TestCaseFp)clipboard_testClipboardTextFunctions, "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED };
172
173/* Sequence of Clipboard test cases */
176};
177
178/* Clipboard test suite (global) */
180 "Clipboard",
181 NULL,
183 NULL
184};
#define SDL_SetClipboardText
#define SDL_HasClipboardText
#define SDL_GetClipboardText
#define SDL_strlen
#define SDL_free
#define SDL_strdup
#define SDL_strcmp
GLuint64EXT * result
SDL_bool
Definition: SDL_stdinc.h:162
@ SDL_TRUE
Definition: SDL_stdinc.h:164
@ SDL_FALSE
Definition: SDL_stdinc.h:163
void SDLTest_AssertPass(SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(1)
Explicitly pass without checking an assertion condition. Updates assertion counter.
int SDLTest_AssertCheck(int assertCondition, SDL_PRINTF_FORMAT_STRING const char *assertDescription,...) SDL_PRINTF_VARARG_FUNC(2)
Assert for test cases that logs but does not break execution flow on failures. Updates assertion coun...
char * SDLTest_RandomAsciiString(void)
#define TEST_ENABLED
#define TEST_COMPLETED
int(* SDLTest_TestCaseFp)(void *arg)
#define NULL
Definition: begin_code.h:167
static const SDLTest_TestCaseReference * clipboardTests[]
static const SDLTest_TestCaseReference clipboardTest1
static const SDLTest_TestCaseReference clipboardTest3
int clipboard_testGetClipboardText(void *arg)
Check call to SDL_GetClipboardText.
int clipboard_testClipboardTextFunctions(void *arg)
End-to-end test of SDL_xyzClipboardText functions.
SDLTest_TestSuiteReference clipboardTestSuite
static const SDLTest_TestCaseReference clipboardTest4
int clipboard_testSetClipboardText(void *arg)
Check call to SDL_SetClipboardText.
static const SDLTest_TestCaseReference clipboardTest2
int clipboard_testHasClipboardText(void *arg)
Check call to SDL_HasClipboardText.
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:47