shlist

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

commit 84581b16d2f381f2060b99b1121d012969912511
parent 93aa4a2ec5876f42e7e6f5962a93cb30c5fcb537
Author: kyle <kyle@0x30.net>
Date:   Tue, 12 Jan 2016 23:51:18 -0700

tests: add new test to leave a list your not in

- makes sure that leaving an otherwise valid list that your not in doesn't work

Diffstat:
Mserver/sl | 1+
Aserver/tests/leave_list_your_not_in/Makefile | 1+
Aserver/tests/leave_list_your_not_in/server.log.good | 14++++++++++++++
Aserver/tests/leave_list_your_not_in/test.pl | 17+++++++++++++++++
4 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/server/sl b/server/sl @@ -312,6 +312,7 @@ sub msg_list_leave { $log->print("device '$device_id' has been removed from list '$list_id'\n"); } else { $log->print("tried to leave a list the user was not in for device '$device_id' and list '$list_id'\n"); + return "err\0the client was not a member of the list"; } $$sth{check_list_member}->finish(); diff --git a/server/tests/leave_list_your_not_in/Makefile b/server/tests/leave_list_your_not_in/Makefile @@ -0,0 +1 @@ +include ../test.mk diff --git a/server/tests/leave_list_your_not_in/server.log.good b/server/tests/leave_list_your_not_in/server.log.good @@ -0,0 +1,14 @@ +new connection (pid = <digits>) +ssl ok, ver = 'TLSv1_2' cipher = 'ECDHE-RSA-AES128-SHA256' +device_add: success, <digits>:<base64> os <base64> +list_leave: device <base64> +list_leave: list <base64> +list_leave: tried to leave a list the user was not in for device <base64> and list <base64> +disconnected! +new connection (pid = <digits>) +ssl ok, ver = 'TLSv1_2' cipher = 'ECDHE-RSA-AES128-SHA256' +device_add: success, <digits>:<base64> os <base64> +list_add: <string> +list_add: adding first member devid = <base64> +list_add: fingerprint = <base64> +disconnected! diff --git a/server/tests/leave_list_your_not_in/test.pl b/server/tests/leave_list_your_not_in/test.pl @@ -0,0 +1,17 @@ +#!/usr/bin/perl -I../ +use strict; +use warnings; +use client; +use test; + +# Send a leave_list message that contains a valid list id but the requesting +# device is not currently a member of. + +my $A = client->new(); +my $B = client->new(); + +$A->list_add('only a can see this list'); + +# Who knows how B got this list id, but he did +$B->list_leave($A->lists(0)->{'id'}, 'err'); +fail_msg_ne 'the client was not a member of the list', $B->get_error();