]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
test: add more tests
authorBaptiste Daroussin <bapt@FreeBSD.org>
Fri, 17 Dec 2021 11:20:10 +0000 (12:20 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Fri, 17 Dec 2021 11:20:10 +0000 (12:20 +0100)
tests/mlmmj.c

index adb8351569f763e3b5e2cbcc7bce182e97f07f2e..8224a8d17ccb753fadce6588098b2dd28870b546 100644 (file)
@@ -59,6 +59,8 @@ ATF_TC(write_data);
 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);
@@ -81,6 +83,8 @@ ATF_TC_HEAD(write_data, tc) {}
 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) {}
@@ -429,6 +433,37 @@ ATF_TC_BODY(write_replyto, 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);
@@ -554,6 +589,7 @@ ATF_TC_BODY(controls, tc)
        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);
@@ -570,6 +606,21 @@ ATF_TC_BODY(controls, tc)
        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)
@@ -590,6 +641,8 @@ 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);