ATF_TC(write_quit);
ATF_TC(write_rset);
ATF_TC(write_replyto);
+ATF_TC(write_rcpt_to);
+ATF_TC(write_mail_from);
ATF_TC(mygetline);
ATF_TC(unsubscribe);
ATF_TC(lowercase);
ATF_TC_HEAD(write_quit, tc) {}
ATF_TC_HEAD(write_rset, tc) {}
ATF_TC_HEAD(write_replyto, tc) {}
+ATF_TC_HEAD(write_rcpt_to, tc) {}
+ATF_TC_HEAD(write_mail_from, tc) {}
ATF_TC_HEAD(mygetline, tc) {}
ATF_TC_HEAD(unsubscribe, tc) {}
ATF_TC_HEAD(lowercase, tc) {}
atf_tc_fail("Unexpected output");
}
+ATF_TC_BODY(write_rcpt_to, tc)
+{
+ ATF_REQUIRE_EQ(write_rcpt_to(-1, "toto"), EACCES);
+ int fd = open("rcpt_to.txt", O_CREAT|O_WRONLY, 0644);
+ ATF_REQUIRE_EQ(write_rcpt_to(fd, "toto"), 0);
+ close(fd);
+ if (!atf_utils_compare_file("rcpt_to.txt", "RCPT TO:<toto>\r\n")) {
+ atf_utils_cat_file("rcpt_to.txt", "");
+ atf_tc_fail("Unexpected output");
+ }
+}
+
+ATF_TC_BODY(write_mail_from, tc)
+{
+ ATF_REQUIRE_EQ(write_mail_from(-1, "toto", NULL), EACCES);
+ int fd = open("mail_from.txt", O_CREAT|O_WRONLY, 0644);
+ ATF_REQUIRE_EQ(write_mail_from(fd, "toto", NULL), 0);
+ close(fd);
+ if (!atf_utils_compare_file("mail_from.txt", "MAIL FROM:<toto>\r\n")) {
+ atf_utils_cat_file("mail_from.txt", "");
+ atf_tc_fail("Unexpected output");
+ }
+ fd = open("mail_from.txt", O_CREAT|O_WRONLY, 0644);
+ ATF_REQUIRE_EQ(write_mail_from(fd, "toto", "meh"), 0);
+ close(fd);
+ if (!atf_utils_compare_file("mail_from.txt", "MAIL FROM:<toto> meh\r\n")) {
+ atf_utils_cat_file("mail_from.txt", "");
+ atf_tc_fail("Unexpected output");
+ }
+}
+
ATF_TC_BODY(mygetline, tc)
{
int fd = open("test", O_CREAT|O_RDWR, 0644);
atf_utils_wait(p, 1, "", "mlmmj: Unable to open list/control\n");
ATF_REQUIRE_EQ(rename("list/notcontrol", "list/control"), 0);
ATF_REQUIRE_EQ(ctrlcontent(&list, "plop"), NULL);
+ ATF_REQUIRE_EQ(ctrlvalues(&list, "plop"), NULL);
ATF_REQUIRE_STREQ(ctrlcontent(&list, "listaddress"), "test@test");
ATF_REQUIRE_EQ(ctrltimet(&list, "listaddress"), 0);
ATF_REQUIRE_EQ(ctrltimet(&list, "plop"), 0);
ATF_REQUIRE_EQ(ctrlsizet(&list, "listaddress"), 0);
ATF_REQUIRE_EQ(ctrlsizet(&list, "plop"), 0);
ATF_REQUIRE_EQ(ctrlsizet(&list, "val"), 12);
+
+ f = fopen("list/control/val", "w");
+ fputs("line1\nline2\n\nline3\n",f);
+ fclose(f);
+ struct strlist *l = ctrlvalues(&list, "val");
+ ATF_REQUIRE(l != NULL);
+ ATF_REQUIRE_EQ(l->count, 3);
+ ATF_REQUIRE_STREQ(l->strs[0], "line1");
+ ATF_REQUIRE_STREQ(l->strs[1], "line2");
+ ATF_REQUIRE_STREQ(l->strs[2], "line3");
+
+ ATF_REQUIRE_EQ(open_control_file(&list, "meh"), -1);
+ int fd = open_control_file(&list, "val");
+ ATF_REQUIRE(fd != -1);
+ close(fd);
}
ATF_TP_ADD_TCS(tp)
ATF_TP_ADD_TC(tp, write_quit);
ATF_TP_ADD_TC(tp, write_rset);
ATF_TP_ADD_TC(tp, write_replyto);
+ ATF_TP_ADD_TC(tp, write_rcpt_to);
+ ATF_TP_ADD_TC(tp, write_mail_from);
ATF_TP_ADD_TC(tp, mygetline);
ATF_TP_ADD_TC(tp, unsubscribe);
ATF_TP_ADD_TC(tp, lowercase);