shlist

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

commit fd77f49edfbc956dd3de9e3065f3bdd5bf2302cc
parent bfa1e789d5176c5cf4206ab90c3cf7fe22b367fc
Author: kyle <kyle@getaddrinfo.net>
Date:   Sun, 22 Nov 2015 23:27:29 -0700

tests/leave_test_self: add new test

- this test exercises the leave_list message type
- new device, create new list, leave list, request all lists

Diffstat:
Atests/leave_list_self/Makefile | 1+
Atests/leave_list_self/server.log.good | 11+++++++++++
Atests/leave_list_self/test.pl | 34++++++++++++++++++++++++++++++++++
3 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/tests/leave_list_self/Makefile b/tests/leave_list_self/Makefile @@ -0,0 +1 @@ +include ../test.mk diff --git a/tests/leave_list_self/server.log.good b/tests/leave_list_self/server.log.good @@ -0,0 +1,11 @@ +new connection +added new device <phone_num> <base64> +<string> +adding first list member devid = <base64> +list fingerprint = <base64> +device <base64> +list <base64> +device <base64> has been removed from list <base64> +list <base64> is empty... deleting +gathering lists for <base64> +disconnected! diff --git a/tests/leave_list_self/test.pl b/tests/leave_list_self/test.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl -I../ +use strict; +use warnings; +use test; + +# this test: +# - creates a new device +# - creates a new list +# - leaves that list +# - verifies list is gone + +my $sock = new_socket(); +my $send_t = 'new_device'; +send_msg($sock, $send_t, "4038675309"); +my (undef, $device_id, undef) = recv_msg($sock); + +my $list_name = "this is a new list"; +send_msg($sock, 'new_list', "$device_id\0$list_name"); +my (undef, $list_data, undef) = recv_msg($sock); +my ($list_id) = split("\0", $list_data); + +send_msg($sock, 'leave_list', "$device_id\0$list_id"); +my ($recv_t, $leave_data, $length) = recv_msg($sock); + +my ($leave_id) = split("\0", $leave_data); +fail "message type mismatch, '$recv_t' != 'leave_list'" if ($recv_t ne 'leave_list'); +fail "got leave data '$leave_id', expected $list_id" if ($leave_id ne $list_id); + +# verify we don't get this list back when requesting all lists +send_msg($sock, 'list_request', $device_id); +my (undef, $request_data, $length2) = recv_msg($sock); + +my ($direct, $other) = split("\0\0", $request_data); +fail "expected empty, got other" if ($direct ne "" || $other ne "");