error handling and tests therefore
[scpubgit/App-EzPz.git] / t / lists.t
index a91e5b2..cd4181f 100644 (file)
--- a/t/lists.t
+++ b/t/lists.t
@@ -65,4 +65,40 @@ like($res->content, qr/Welcome user .*mst/, 'Welcome mst');
 like($res->content, qr{/list/$_/}, "List $_ on /")
   for qw(list1 list2 list3);
 
+$res = $app->run_test_request(GET => 'mst:boromir@/list/list1/');
+
+like($res->content, qr{name="remove" value="$_"}, "Member $_ ok")
+  for qw(bob@example.com joe@example.com);
+
+$res = $app->run_test_request(GET => 'mst:boromir@/list/list1/deny/');
+
+like($res->content, qr{name="remove" value="$_"}, "Member $_ ok")
+  for qw(evil@monkey.com evil@gibbon.com);
+
+$res = $app->run_test_request(
+  POST => 'mst:boromir@/list/list1/deny/', add => 'hamster'
+);
+
+like(
+  $res->content, qr{address does not contain \@},
+  'And your father smells of elderberries'
+);
+
+$res = $app->run_test_request(
+  POST => 'mst:boromir@/list/list1/deny/', add => 'evil@marmoset.com'
+);
+
+like($res->content, qr{name="remove" value="$_"}, "Member $_ ok")
+  for qw(evil@monkey.com evil@gibbon.com evil@marmoset.com);
+
+$res = $app->run_test_request(
+  POST => 'mst:boromir@/list/list1/deny/', remove => 'evil@monkey.com'
+);
+
+like($res->content, qr{name="remove" value="$_"}, "Member $_ ok")
+  for qw(evil@gibbon.com evil@marmoset.com);
+
+unlike($res->content, qr{name="remove" value="$_"}, "Member $_ gone")
+  for qw(evil@monkey.com);
+
 done_testing;