|
@@ -4,6 +4,7 @@ import arrow
|
|
|
import pytest
|
|
|
|
|
|
from app.config import EMAIL_DOMAIN, MAX_NB_EMAIL_FREE_PLAN
|
|
|
+from app.email_utils import parseaddr_unicode
|
|
|
from app.extensions import db
|
|
|
from app.models import generate_email, User, Alias, Contact
|
|
|
|
|
@@ -93,3 +94,43 @@ def test_website_send_to(flask_client):
|
|
|
c1.name = None
|
|
|
c1.website_from = "=?UTF-8?B?TmjGoW4gTmd1eeG7hW4=?= <abcd@example.com>"
|
|
|
assert c1.website_send_to() == '"Nhơn Nguyễn | abcd at example.com" <rep@SL>'
|
|
|
+
|
|
|
+
|
|
|
+def test_new_addr(flask_client):
|
|
|
+ user = User.create(
|
|
|
+ email="a@b.c", password="password", name="Test User", activated=True
|
|
|
+ )
|
|
|
+ db.session.commit()
|
|
|
+
|
|
|
+ alias = Alias.create_new_random(user)
|
|
|
+ db.session.commit()
|
|
|
+
|
|
|
+ # use_via_format_for_sender is by default
|
|
|
+ c1 = Contact.create(
|
|
|
+ user_id=user.id,
|
|
|
+ alias_id=alias.id,
|
|
|
+ website_email="abcd@example.com",
|
|
|
+ reply_email="rep@SL",
|
|
|
+ name="First Last",
|
|
|
+ )
|
|
|
+ db.session.commit()
|
|
|
+ assert c1.new_addr() == '"abcd@example.com via SimpleLogin" <rep@SL>'
|
|
|
+
|
|
|
+ # use_via_format_for_sender = False
|
|
|
+ user.use_via_format_for_sender = False
|
|
|
+ db.session.commit()
|
|
|
+ assert c1.new_addr() == '"First Last - abcd at example.com" <rep@SL>'
|
|
|
+
|
|
|
+ # unicode name
|
|
|
+ c1.name = "Nhơn Nguyễn"
|
|
|
+ db.session.commit()
|
|
|
+ assert (
|
|
|
+ c1.new_addr()
|
|
|
+ == "=?utf-8?q?Nh=C6=A1n_Nguy=E1=BB=85n_-_abcd_at_example=2Ecom?= <rep@SL>"
|
|
|
+ )
|
|
|
+
|
|
|
+ # sanity check for parseaddr_unicode
|
|
|
+ assert parseaddr_unicode(c1.new_addr()) == (
|
|
|
+ "Nhơn Nguyễn - abcd at example.com",
|
|
|
+ "rep@sl",
|
|
|
+ )
|