/*
* Copyright (c) 2006 Claus Assmann
*
* By using this file, you agree to the terms and conditions set
* forth in the license/LICENSE.3C file which can be found at the
* top level of this source code distribution.
*/
#include "sm/generic.h"
SM_RCSID("@(#)$Id: t-pmadd.c,v 1.5 2006/11/18 15:25:53 ca Exp $")
#include "sm/assert.h"
#include "sm/magic.h"
#include "sm/str.h"
#include "sm/misc.h"
#include "sm/test.h"
#include <stdio.h>
#define SMAXLEN 256
static void
test_harness(void)
{
sm_str_P rcpt, domain;
sm_ret_T ret;
#define POSTMASTER "<postmaster>"
#define DOMAIN "my.domain"
rcpt = sm_str_scpy(NULL, (const char *)POSTMASTER, SMAXLEN);
SM_TEST(rcpt != NULL);
domain = sm_str_scpy(NULL, DOMAIN, SMAXLEN);
SM_TEST(domain != NULL);
ret = sm_postmaster_add_domain(rcpt, domain, 0);
SM_TEST(sm_is_success(ret));
SM_TEST(0 == strcasecmp("<postmaster@my.domain>",
(const char *)sm_str_getdata(rcpt)));
SM_STR_FREE(rcpt);
rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:<postmaster>", SMAXLEN);
SM_TEST(rcpt != NULL);
SM_TEST(domain != NULL);
ret = sm_postmaster_add_domain(rcpt, domain, 8);
SM_TEST(sm_is_success(ret));
SM_TEST(0 == strcasecmp("RCPT To:<postmaster@my.domain>",
(const char *)sm_str_getdata(rcpt)));
SM_STR_FREE(rcpt);
rcpt = sm_str_scpy(NULL, (const char *)"<postmasters>", SMAXLEN);
SM_TEST(rcpt != NULL);
SM_TEST(domain != NULL);
ret = sm_postmaster_add_domain(rcpt, domain, 0);
SM_TEST(SM_NOTDONE == ret);
SM_TEST(0 != strcasecmp("<postmasters@my.domain>",
(const char *)sm_str_getdata(rcpt)));
SM_STR_FREE(rcpt);
rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:<postmasters>",
SMAXLEN);
SM_TEST(rcpt != NULL);
SM_TEST(domain != NULL);
ret = sm_postmaster_add_domain(rcpt, domain, 8);
SM_TEST(SM_NOTDONE == ret);
SM_TEST(0 != strcasecmp("RCPT To:<postmasters@my.domain>",
(const char *)sm_str_getdata(rcpt)));
SM_STR_FREE(rcpt);
rcpt = sm_str_scpy(NULL, (const char *)"RCPT To:<postmaster@some.tld>",
SMAXLEN);
SM_TEST(rcpt != NULL);
SM_TEST(domain != NULL);
ret = sm_postmaster_add_domain(rcpt, domain, 8);
SM_TEST(SM_NOTDONE == ret);
SM_TEST(0 != strcasecmp("RCPT To:<postmaster@my.domain>",
(const char *)sm_str_getdata(rcpt)));
SM_TEST(0 == strcasecmp("RCPT To:<postmaster@some.tld>",
(const char *)sm_str_getdata(rcpt)));
SM_STR_FREE(rcpt);
SM_STR_FREE(domain);
}
int
main(int argc, char *argv[])
{
sm_test_begin(argc, argv, "test sm_postmaster_add_domain");
test_harness();
return sm_test_end();
}
syntax highlighted by Code2HTML, v. 0.9.1