From 26f4ab2d50d26a058d908b5c414b4b09f435f6ad Mon Sep 17 00:00:00 2001 From: Andreas Schiffler Date: Sat, 29 Oct 2011 23:34:19 -0700 Subject: [PATCH] Add clipboard tests --- .../tests/testclipboard/testclipboard.c | 146 +++++++++++++++++- 1 file changed, 140 insertions(+), 6 deletions(-) diff --git a/test/test-automation/tests/testclipboard/testclipboard.c b/test/test-automation/tests/testclipboard/testclipboard.c index 453844560..6fd272b33 100644 --- a/test/test-automation/tests/testclipboard/testclipboard.c +++ b/test/test-automation/tests/testclipboard/testclipboard.c @@ -5,7 +5,6 @@ #include "../../include/SDL_test.h" - /*! * Note: Add test for clipboard here * @@ -13,22 +12,157 @@ /* Test cases */ static const TestCaseReference test1 = - (TestCaseReference){ "clipboard_test", "description", TEST_DISABLED, 0, 0 }; + (TestCaseReference){ "clipboard_testHasClipboardText", "Check call to SDL_HasClipboardText", TEST_ENABLED, 0, 0 }; + +static const TestCaseReference test2 = + (TestCaseReference){ "clipboard_testGetClipboardText", "Check call to SDL_GetClipboardText", TEST_ENABLED, 0, 0 }; + +static const TestCaseReference test3 = + (TestCaseReference){ "clipboard_testSetClipboardText", "Check call to SDL_SetClipboardText", TEST_ENABLED, 0, 0 }; + +static const TestCaseReference test4 = + (TestCaseReference){ "clipboard_testClipboardTextFunctions", "End-to-end test of SDL_xyzClipboardText functions", TEST_ENABLED, 0, 0 }; /* Test suite */ extern const TestCaseReference *testSuite[] = { - &test1, NULL + &test1, &test2, &test3, &test4, NULL }; TestCaseReference **QueryTestSuite() { return (TestCaseReference **)testSuite; } +void +SetUp(void *arg) +{ + /* Start SDL video */ + int ret = SDL_InitSubSystem( SDL_INIT_VIDEO ); + AssertTrue(ret==0, "SDL_Init(SDL_INIT_VIDEO) failed: %s", SDL_GetError()); +} + +void +TearDown(void *arg) +{ + /* Quit SDL video */ + SDL_QuitSubSystem(SDL_INIT_VIDEO); +} + /** - * @brief Document test case here + * \brief Check call to SDL_HasClipboardText + * + * \sa + * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText */ int -clipboard_test(void *arg) +clipboard_testHasClipboardText(void *arg) { - AssertPass(""); + SDL_bool result; + result = SDL_HasClipboardText(); + AssertPass("Call to SDL_HasClipboardText succeeded"); +} + +/** + * \brief Check call to SDL_GetClipboardText + * + * \sa + * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText + */ +int +clipboard_testGetClipboardText(void *arg) +{ + char *result; + result = SDL_GetClipboardText(); + AssertPass("Call to SDL_GetClipboardText succeeded"); +} + +/** + * \brief Check call to SDL_SetClipboardText + * \sa + * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText + */ +int +clipboard_testSetClipboardText(void *arg) +{ + char *textRef = RandomAsciiString(); + char *text = strdup(textRef); + int result; + result = SDL_SetClipboardText((const char *)text); + AssertTrue( + result == 0, + "Call to SDL_SetClipboardText failed with error %i: %s", + result, SDL_GetError()); + AssertTrue( + strcmp(textRef, text) == 0, + "SDL_SetClipboardText modified input string: expected %s, got %s", + textRef, text); + + /* Cleanup */ + if (textRef) free(textRef); + if (text) free(text); +} + + +/** + * \brief End-to-end test of SDL_xyzClipboardText functions + * \sa + * http://wiki.libsdl.org/moin.cgi/SDL_HasClipboardText + * http://wiki.libsdl.org/moin.cgi/SDL_GetClipboardText + * http://wiki.libsdl.org/moin.cgi/SDL_SetClipboardText + */ +int +clipboard_testClipboardTextFunctions(void *arg) +{ + char *textRef = RandomAsciiString(); + char *text = strdup(textRef); + SDL_bool boolResult; + int intResult; + char *charResult; + + /* Clear clipboard text state */ + boolResult = SDL_HasClipboardText(); + if (boolResult == SDL_TRUE) { + intResult = SDL_SetClipboardText((const char *)NULL); + AssertTrue( + intResult == 0, + "Call to SDL_SetClipboardText("") failed with error %i: %s", + intResult, SDL_GetError()); + charResult = SDL_GetClipboardText(); + boolResult = SDL_HasClipboardText(); + AssertTrue( + boolResult == SDL_FALSE, + "SDL_HasClipboardText returned TRUE, expected FALSE"); + } + + /* Empty clipboard */ + charResult = SDL_GetClipboardText(); + AssertTrue( + charResult != NULL, + "SDL_GetClipboardText returned NULL"); + AssertTrue( + strlen(charResult) == 0, + "SDL_GetClipboardText returned string with length >0: got length %i", + strlen(charResult)); + intResult = SDL_SetClipboardText((const char *)text); + AssertTrue( + intResult == 0, + "Call to SDL_SetClipboardText failed with error %i: %s", + intResult, SDL_GetError()); + AssertTrue( + strcmp(textRef, text) == 0, + "SDL_SetClipboardText modified input string: expected %s, got %s", + textRef, text); + boolResult = SDL_HasClipboardText(); + AssertTrue( + boolResult == SDL_TRUE, + "SDL_HasClipboardText returned FALSE, expected TRUE"); + charResult = SDL_GetClipboardText(); + AssertTrue( + strcmp(textRef, charResult) == 0, + "SDL_GetClipboardText did not return correst string: expected %s, got %s", + textRef, charResult); + + /* Cleanup */ + if (textRef) free(textRef); + if (text) free(text); + if (charResult) free(charResult); }