2 * New/updated tests: aschiffler at ferzkopp dot net
11 /* ================= Test Case Implementation ================== */
13 /* Test case functions */
16 * \brief Check call to SDL_HasClipboardText
19 * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText
22 clipboard_testHasClipboardText(void *arg)
25 result = SDL_HasClipboardText();
26 SDLTest_AssertPass("Call to SDL_HasClipboardText succeeded");
28 return TEST_COMPLETED;
32 * \brief Check call to SDL_GetClipboardText
35 * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText
38 clipboard_testGetClipboardText(void *arg)
41 charResult = SDL_GetClipboardText();
42 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
46 return TEST_COMPLETED;
50 * \brief Check call to SDL_SetClipboardText
52 * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText
55 clipboard_testSetClipboardText(void *arg)
57 char *textRef = SDLTest_RandomAsciiString();
58 char *text = SDL_strdup(textRef);
60 result = SDL_SetClipboardText((const char *)text);
61 SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
64 "Validate SDL_SetClipboardText result, expected 0, got %i",
67 SDL_strcmp(textRef, text) == 0,
68 "Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
75 return TEST_COMPLETED;
79 * \brief End-to-end test of SDL_xyzClipboardText functions
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
86 clipboard_testClipboardTextFunctions(void *arg)
88 char *textRef = SDLTest_RandomAsciiString();
89 char *text = SDL_strdup(textRef);
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");
102 "Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
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");
115 /* Empty clipboard */
116 charResult = SDL_GetClipboardText();
117 SDLTest_AssertPass("Call to SDL_GetClipboardText succeeded");
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 SDL_strlen(charResult));
125 intResult = SDL_SetClipboardText((const char *)text);
126 SDLTest_AssertPass("Call to SDL_SetClipboardText succeeded");
129 "Verify result from SDL_SetClipboardText(NULL), expected 0, got %i",
132 SDL_strcmp(textRef, text) == 0,
133 "Verify SDL_SetClipboardText did not modify input string, expected '%s', got '%s'",
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);
152 SDL_free(charResult);
154 return TEST_COMPLETED;
158 /* ================= Test References ================== */
160 /* Clipboard test cases */
161 static const SDLTest_TestCaseReference clipboardTest1 =
162 { (SDLTest_TestCaseFp)clipboard_testHasClipboardText, "clipboard_testHasClipboardText", "Check call to SDL_HasClipboardText", TEST_ENABLED };
164 static const SDLTest_TestCaseReference clipboardTest2 =
165 { (SDLTest_TestCaseFp)clipboard_testGetClipboardText, "clipboard_testGetClipboardText", "Check call to SDL_GetClipboardText", TEST_ENABLED };
167 static const SDLTest_TestCaseReference clipboardTest3 =
168 { (SDLTest_TestCaseFp)clipboard_testSetClipboardText, "clipboard_testSetClipboardText", "Check call to SDL_SetClipboardText", TEST_ENABLED };
170 static const SDLTest_TestCaseReference clipboardTest4 =
171 { (SDLTest_TestCaseFp)clipboard_testClipboardTextFunctions, "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED };
173 /* Sequence of Clipboard test cases */
174 static const SDLTest_TestCaseReference *clipboardTests[] = {
175 &clipboardTest1, &clipboardTest2, &clipboardTest3, &clipboardTest4, NULL
178 /* Clipboard test suite (global) */
179 SDLTest_TestSuiteReference clipboardTestSuite = {