aboutsummaryrefslogtreecommitdiff
path: root/tests/sdl_text.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sdl_text.c')
-rw-r--r--tests/sdl_text.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/sdl_text.c b/tests/sdl_text.c
new file mode 100644
index 00000000..6bcb0d61
--- /dev/null
+++ b/tests/sdl_text.c
@@ -0,0 +1,40 @@
+#include <SDL/SDL.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#include <emscripten.h>
+
+int result = 0;
+
+void one() {
+ SDL_Event event;
+ while (SDL_PollEvent(&event)) {
+ switch (event.type) {
+ case SDL_TEXTEDITING: assert(0); break;
+ case SDL_TEXTINPUT:
+ printf("Received %s\n", event.text.text);
+ if (!strcmp("a", event.text.text)) {
+ result = 1;
+ } else if (!strcmp("A", event.text.text)) {
+ REPORT_RESULT();
+ emscripten_run_script("throw 'done'");
+ }
+ break;
+ default: /* Report an unhandled event */
+ printf("I don't know what this event is!\n");
+ }
+ }
+}
+
+int main() {
+ SDL_Init(SDL_INIT_VIDEO);
+ SDL_SetVideoMode(600, 450, 32, SDL_HWSURFACE);
+ SDL_StartTextInput();
+
+ emscripten_run_script("simulateKeyEvent('a'.charCodeAt(0))"); // a
+ emscripten_run_script("simulateKeyEvent('A'.charCodeAt(0))"); // A
+
+ one();
+
+ return 0;
+}