diff --git a/pkg/rtypecontrol/setrecordnames_test.go b/pkg/rtypecontrol/setrecordnames_test.go index 53074b5a9..f650fe376 100644 --- a/pkg/rtypecontrol/setrecordnames_test.go +++ b/pkg/rtypecontrol/setrecordnames_test.go @@ -307,7 +307,7 @@ func TestSetRecordNames(t *testing.T) { }, { - name: "dotted_apex", + name: "dotted_normal_at", rec: &models.RecordConfig{}, dc: dc, n: "example.com.", @@ -320,6 +320,138 @@ func TestSetRecordNames(t *testing.T) { NameFQDNUnicode: "example.com", }, }, + { + name: "dotted_normal_label_outside", + rec: &models.RecordConfig{}, + dc: dc, + n: "www.example.com.", + expectedRec: &models.RecordConfig{ + Name: "www", + NameRaw: "www", + NameUnicode: "www", + NameFQDN: "www.example.com", + NameFQDNRaw: "www.example.com", + NameFQDNUnicode: "www.example.com", + }, + }, + { + name: "dotted_normal_idn_label", + rec: &models.RecordConfig{}, + dc: dc, + n: "bücher.example.com.", + expectedRec: &models.RecordConfig{ + Name: "xn--bcher-kva", + NameRaw: "bücher", + NameUnicode: "bücher", + NameFQDN: "xn--bcher-kva.example.com", + NameFQDNRaw: "bücher.example.com", + NameFQDNUnicode: "bücher.example.com", + }, + }, + { + name: "dotted_normal_idn_domain", + rec: &models.RecordConfig{}, + dc: dcIDN, + n: "www.bücher.com.", + expectedRec: &models.RecordConfig{ + Name: "www", + NameRaw: "www", + NameUnicode: "www", + NameFQDN: "www.xn--bcher-kva.com", + NameFQDNRaw: "www.bücher.com", + NameFQDNUnicode: "www.bücher.com", + }, + }, + { + name: "dotted_extend_at", + rec: &models.RecordConfig{SubDomain: "sub"}, + dc: dc, + n: "example.com.", + expectedErr: true, + }, + { + name: "dotted_extend_label", + rec: &models.RecordConfig{SubDomain: "sub"}, + dc: dc, + n: "www.example.com.", + expectedErr: true, + }, + { + name: "dotted_extend_idn_subdomain", + rec: &models.RecordConfig{SubDomain: "bücher"}, + dc: dc, + n: "www.bücher.example.com.", + expectedRec: &models.RecordConfig{ + SubDomain: "bücher", + + NameRaw: "www.bücher", + Name: "www.xn--bcher-kva", + NameUnicode: "www.bücher", + NameFQDNRaw: "www.bücher.example.com", + NameFQDN: "www.xn--bcher-kva.example.com", + NameFQDNUnicode: "www.bücher.example.com", + }, + }, + { + name: "dotted_extend_idn_label", + rec: &models.RecordConfig{SubDomain: "sub"}, + dc: dc, + n: "bücher.sub.example.com.", + expectedRec: &models.RecordConfig{ + SubDomain: "sub", + Name: "xn--bcher-kva.sub", + NameRaw: "bücher.sub", + NameUnicode: "bücher.sub", + NameFQDN: "xn--bcher-kva.sub.example.com", + NameFQDNRaw: "bücher.sub.example.com", + NameFQDNUnicode: "bücher.sub.example.com", + }, + }, + { + name: "dotted_extend_idn_subdomain_and_label", + rec: &models.RecordConfig{SubDomain: "bücher"}, + dc: dc, + n: "könig.bücher.example.com.", + expectedRec: &models.RecordConfig{ + SubDomain: "bücher", + Name: "xn--knig-5qa.xn--bcher-kva", + NameRaw: "könig.bücher", + NameUnicode: "könig.bücher", + NameFQDN: "xn--knig-5qa.xn--bcher-kva.example.com", + NameFQDNRaw: "könig.bücher.example.com", + NameFQDNUnicode: "könig.bücher.example.com", + }, + }, + { + name: "dotted_extend_idn_domain_and_subdomain", + rec: &models.RecordConfig{SubDomain: "bücher"}, + dc: dcIDN, + n: "www.bücher.bücher.com.", + expectedRec: &models.RecordConfig{ + SubDomain: "bücher", + Name: "www.xn--bcher-kva", + NameRaw: "www.bücher", + NameUnicode: "www.bücher", + NameFQDN: "www.xn--bcher-kva.xn--bcher-kva.com", + NameFQDNRaw: "www.bücher.bücher.com", + NameFQDNUnicode: "www.bücher.bücher.com", + }, + }, + + { + name: "dotted_apex", + rec: &models.RecordConfig{}, + dc: dc, + n: "example.com.", + expectedRec: &models.RecordConfig{ + Name: "@", + NameRaw: "@", + NameUnicode: "@", + NameFQDN: "example.com", + NameFQDNRaw: "example.com", + NameFQDNUnicode: "example.com", + }, + }, { name: "dotted_label",