summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--term.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ac361d1..46d50ac 100644
--- a/Makefile
+++ b/Makefile
@@ -25,6 +25,7 @@ OBJS += ui.o
OBJS += url.o
TESTS += format.t
+TESTS += term.t
all: tags chatte
diff --git a/term.c b/term.c
index 0b35499..2be9c16 100644
--- a/term.c
+++ b/term.c
@@ -21,7 +21,6 @@
#include "chat.h"
-
static bool xterm;
void termInit(void) {
@@ -67,3 +66,24 @@ enum TermEvent termEvent(char ch) {
default: state = 0; return 0;
}
}
+
+#ifdef TEST
+#include <assert.h>
+
+static bool testEvent(const char *str, enum TermEvent event) {
+ enum TermEvent e = TermNone;
+ for (size_t i = 0; i < strlen(str); ++i) {
+ if (e) return false;
+ e = termEvent(str[i]);
+ }
+ return (e == event);
+}
+
+int main() {
+ assert(testEvent("\33[I", TermFocusIn));
+ assert(testEvent("\33[O", TermFocusOut));
+ assert(testEvent("\33[200~", TermPasteStart));
+ assert(testEvent("\33[201~", TermPasteEnd));
+}
+
+#endif