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:
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 "");