commit 9156b5adbd2d1f204c459d1c88e0ec4d87bbdd74
parent 0159640c1ecdf3018e4671f966dd91d9adcf9a7e
Author: kyle <kyle@0x30.net>
Date: Sat, 2 Jan 2016 15:51:29 -0700
tests: add new leave_list unit test
- fix a quick bug in leave_list message where we didn't check if the list
existed first
Diffstat:
4 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/server/sl b/server/sl
@@ -302,6 +302,9 @@ sub msg_leave_list {
$err = device_id_valid($sth, $device_id);
return "err\0$err" if ($err);
+ $err = list_id_valid($sth, $list_id);
+ return "err\0$err" if ($err);
+
log_print("device '$device_id'\n");
log_print("list '$list_id'\n");
diff --git a/server/tests/leave_list_unit/Makefile b/server/tests/leave_list_unit/Makefile
@@ -0,0 +1 @@
+include ../test.mk
diff --git a/server/tests/leave_list_unit/server.log.good b/server/tests/leave_list_unit/server.log.good
@@ -0,0 +1,7 @@
+accepting connections on <ip>:<port> (pid = <digits>)
+new connection (pid = <digits>)
+ssl ok, ver = 'TLSv1_2' cipher = 'ECDHE-RSA-AES128-SHA256'
+leave_list: unknown device <base64>
+new_device: success, <digits>:<base64> os <base64>
+leave_list: unknown list <base64>
+disconnected!
diff --git a/server/tests/leave_list_unit/test.pl b/server/tests/leave_list_unit/test.pl
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -I../
+use strict;
+use warnings;
+use test;
+
+my $sock = new_socket();
+
+# send a leave list message with a bad device id
+send_msg($sock, 'leave_list', "somenonexistentdeviceid\0somelistid");
+my ($msg_data) = recv_msg($sock, 'leave_list');
+
+my $msg = check_status($msg_data, 'err');
+my $msg_good = "the client sent an unknown device id";
+fail "unexpected message '$msg', expected '$msg'" if ($msg ne $msg_good);
+
+# send a message with a valid device id but bad list id
+send_msg($sock, 'new_device', "4038675309\0unix");
+($msg_data) = recv_msg($sock, 'new_device');
+
+my $device_id = check_status($msg_data, 'ok');
+
+send_msg($sock, 'leave_list', "$device_id\0somenonexistentlistid");
+($msg_data) = recv_msg($sock, 'leave_list');
+
+$msg = check_status($msg_data, 'err');
+$msg_good = "the client sent an unknown list id";
+fail "unexpected message '$msg', expected '$msg'" if ($msg ne $msg_good);