mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
Add support for TXT records with multiple strings (BIND, ROUTE53) (#293)
* BIND: Support TXT records with multiple strings (#289) * ROUTE53: Add support for TXT records with multiple strings (#292)
This commit is contained in:
@ -112,7 +112,7 @@ func runTests(t *testing.T, prv providers.DNSServiceProvider, domainName string,
|
||||
}
|
||||
dom.Records = append(dom.Records, &rc)
|
||||
}
|
||||
models.Downcase(dom.Records)
|
||||
models.PostProcessRecords(dom.Records)
|
||||
dom2, _ := dom.Copy()
|
||||
// get corrections for first time
|
||||
corrections, err := prv.GetDomainCorrections(dom)
|
||||
@ -237,7 +237,17 @@ func srv(name string, priority, weight, port uint16, target string) *rec {
|
||||
}
|
||||
|
||||
func txt(name, target string) *rec {
|
||||
return makeRec(name, target, "TXT")
|
||||
// FYI: This must match the algorithm in pkg/js/helpers.js TXT.
|
||||
r := makeRec(name, target, "TXT")
|
||||
r.TxtStrings = []string{target}
|
||||
return r
|
||||
}
|
||||
|
||||
func txtmulti(name string, target []string) *rec {
|
||||
// FYI: This must match the algorithm in pkg/js/helpers.js TXT.
|
||||
r := makeRec(name, target[0], "TXT")
|
||||
r.TxtStrings = target
|
||||
return r
|
||||
}
|
||||
|
||||
func caa(name string, tag string, flag uint8, target string) *rec {
|
||||
@ -427,15 +437,42 @@ func makeTests(t *testing.T) []*TestCase {
|
||||
)
|
||||
}
|
||||
|
||||
// Case
|
||||
// TXT (single)
|
||||
tests = append(tests, tc("Empty"),
|
||||
// TXT
|
||||
tc("Empty"),
|
||||
tc("Create a TXT", txt("foo", "simple")),
|
||||
tc("Change a TXT", txt("foo", "changed")),
|
||||
tc("Empty"),
|
||||
tc("Create a TXT with spaces", txt("foo", "with spaces")),
|
||||
tc("Change a TXT with spaces", txt("foo", "with whitespace")),
|
||||
tc("Create 1 TXT as array", txtmulti("foo", []string{"simple"})),
|
||||
)
|
||||
|
||||
// TXTMulti
|
||||
if !providers.ProviderHasCabability(*providerToRun, providers.CanUseTXTMulti) {
|
||||
t.Log("Skipping TXTMulti Tests because provider does not support them")
|
||||
} else {
|
||||
tests = append(tests,
|
||||
tc("Empty"),
|
||||
tc("Create TXTMulti 1",
|
||||
txtmulti("foo1", []string{"simple"}),
|
||||
),
|
||||
tc("Create TXTMulti 2",
|
||||
txtmulti("foo1", []string{"simple"}),
|
||||
txtmulti("foo2", []string{"one", "two"}),
|
||||
),
|
||||
tc("Create TXTMulti 3",
|
||||
txtmulti("foo1", []string{"simple"}),
|
||||
txtmulti("foo2", []string{"one", "two"}),
|
||||
txtmulti("foo3", []string{"eh", "bee", "cee"}),
|
||||
),
|
||||
tc("Change TXTMulti",
|
||||
txtmulti("foo1", []string{"dimple"}),
|
||||
txtmulti("foo2", []string{"fun", "two"}),
|
||||
txtmulti("foo3", []string{"eh", "bzz", "cee"}),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
return tests
|
||||
}
|
||||
|
Reference in New Issue
Block a user