diff options
Diffstat (limited to 'expecttest.c')
-rw-r--r-- | expecttest.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/expecttest.c b/expecttest.c index 2159ed02..6e54b447 100644 --- a/expecttest.c +++ b/expecttest.c @@ -1,4 +1,6 @@ #include <string.h> +#include <stdlib.h> +#include <errno.h> #include <assert.h> #include <expect.h> #include <stabber.h> @@ -10,10 +12,24 @@ int main(void) { stbbr_start(5230); + stbbr_for("roster", + "<iq id=\"roster\" type=\"result\" to=\"stabber@localhost/profanity\">" + "<query xmlns=\"jabber:iq:roster\" ver=\"362\">" + "<item jid=\"buddy1@localhost\" subscription=\"both\" name=\"Buddy1\"/>" + "<item jid=\"buddy2@localhost\" subscription=\"both\" name=\"Buddy2\"/>" + "</query>" + "</iq>" + ); int res = 0; - int fd = exp_spawnl("./profanity"); + int fd = exp_spawnl("./profanity", NULL); FILE *fp = fdopen(fd, "r+"); + + if (fp == NULL) { + perror(NULL); + return 0; + } + setbuf(fp, (char *)0); res = exp_expectl(fd, exp_exact, "Profanity. Type /help for help information.", 10, exp_end); @@ -28,10 +44,19 @@ int main(void) assert(res == 12); res = exp_expectl(fd, exp_exact, "stabber@localhost logged in successfully", 13, exp_end); assert(res == 13); + + sleep(1); + assert(stbbr_verify( + "<presence id=\"*\">" + "<c hash=\"sha-1\" xmlns=\"http://jabber.org/protocol/caps\" ver=\"*\" node=\"http://www.profanity.im\"/>" + "</presence>" + )); + + stbbr_send(); write(fd, QUIT_CMD, strlen(QUIT_CMD)); sleep(1); - + printf("\n"); printf("\n"); printf("PID: %d\n", exp_pid); |