shlist

share and manage lists between multiple people
Log | Files | Refs

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:
Mserver/sl | 3+++
Aserver/tests/leave_list_unit/Makefile | 1+
Aserver/tests/leave_list_unit/server.log.good | 7+++++++
Aserver/tests/leave_list_unit/test.pl | 27+++++++++++++++++++++++++++
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);