#include "config.h"
#include "mutt/mutt.h"
#include "address/lib.h"
+#include "common.h"
void test_mutt_addrlist_to_intl(void)
{
struct AddressList al = TAILQ_HEAD_INITIALIZER(al);
TEST_CHECK(mutt_addrlist_to_intl(&al, NULL) == 0);
}
+
+ {
+ struct {
+ const char *local;
+ const char *intl;
+ } local2intl[] = {
+ {
+ .local = "test@äöüss.com",
+ .intl = "test@xn--ss-uia6e4a.com"
+ },
+ {
+ .local = "test@nixieröhre.nixieclock-tube.com",
+ .intl = "test@xn--nixierhre-57a.nixieclock-tube.com"
+ },
+ {
+ .local = "test@வலைப்பூ.com",
+ .intl = "test@xn--xlcawl2e7azb.com"
+ }
+ };
+
+ C_Charset = "utf-8";
+ C_IdnEncode = true;
+ C_IdnDecode = true;
+ for (size_t i = 0; i < mutt_array_size(local2intl); ++i)
+ {
+ struct AddressList al = TAILQ_HEAD_INITIALIZER(al);
+ mutt_addrlist_append(&al, mutt_addr_create(NULL, local2intl[i].local));
+ mutt_addrlist_to_intl(&al, NULL);
+ struct Address *a = TAILQ_FIRST(&al);
+ TEST_CHECK_STR_EQ(local2intl[i].intl, a->mailbox);
+ mutt_addrlist_to_local(&al);
+ TEST_CHECK_STR_EQ(local2intl[i].local, a->mailbox);
+ mutt_addrlist_clear(&al);
+ }
+ }
}