1/*2Maddy Mail Server - Composable all-in-one email server.3Copyright © 2019-2020 Max Mazurov <fox.cpp@disroot.org>, Maddy Mail Server contributors45This program is free software: you can redistribute it and/or modify6it under the terms of the GNU General Public License as published by7the Free Software Foundation, either version 3 of the License, or8(at your option) any later version.910This program is distributed in the hope that it will be useful,11but WITHOUT ANY WARRANTY; without even the implied warranty of12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the13GNU General Public License for more details.1415You should have received a copy of the GNU General Public License16along with this program. If not, see <https://www.gnu.org/licenses/>.17*/1819package smtp_downstream2021import (22 "testing"2324 "github.com/foxcpp/maddy/framework/config"25 "github.com/foxcpp/maddy/internal/testutils"26)2728func TestDownstreamDelivery_EHLO_ALabel(t *testing.T) {29 be, srv := testutils.SMTPServer(t, "127.0.0.1:"+testPort)30 defer srv.Close()31 defer testutils.CheckSMTPConnLeak(t, srv)3233 mod, err := NewDownstream("", "", nil, []string{"tcp://127.0.0.1:" + testPort})34 if err != nil {35 t.Fatal(err)36 }37 if err := mod.Init(config.NewMap(nil, config.Node{38 Children: []config.Node{39 {40 Name: "hostname",41 Args: []string{"тест.invalid"},42 },43 {44 Name: "starttls",45 Args: []string{"no"},46 },47 },48 })); err != nil {49 t.Fatal(err)50 }5152 tgt := mod.(*Downstream)53 tgt.log = testutils.Logger(t, "remote")5455 testutils.DoTestDelivery(t, tgt, "test@example.com", []string{"test@example.invalid"})5657 be.CheckMsg(t, 0, "test@example.com", []string{"test@example.invalid"})58 if be.Messages[0].Conn.Hostname() != "xn--e1aybc.invalid" {59 t.Error("target/remote should use use Punycode in EHLO")60 }61}