mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
prettyzone: add tests
This commit is contained in:
@@ -248,20 +248,11 @@ var testdataZFCAA = `$TTL 300
|
||||
IN CAA 0 issuewild ";"
|
||||
`
|
||||
|
||||
// r is shorthand for strings.Repeat()
|
||||
func r(s string, c int) string { return strings.Repeat(s, c) }
|
||||
|
||||
func TestWriteZoneFileTxt(t *testing.T) {
|
||||
// exhibits explicit ttls and long name
|
||||
//r10, _ := dns.NewRR(`t10.bosun.org. 300 IN TXT "ten4567890"`)
|
||||
//r254, _ := dns.NewRR(`t254.bosun.org. 300 IN TXT "` + r("a", 254) + `"`)
|
||||
//r255, _ := dns.NewRR(`t255.bosun.org. 300 IN TXT "` + r("b", 255) + `"`)
|
||||
//r256, _ := dns.NewRR(`t256.bosun.org. 300 IN TXT "` + r("c", 255) + `" "` + r("D", 1) + `"`)
|
||||
//r509, _ := dns.NewRR(`t509.bosun.org. 300 IN TXT "` + r("e", 255) + `" "` + r("F", 254) + `"`)
|
||||
//r510, _ := dns.NewRR(`t510.bosun.org. 300 IN TXT "` + r("g", 255) + `" "` + r("H", 255) + `"`)
|
||||
//r511, _ := dns.NewRR(`t511.bosun.org. 300 IN TXT "` + r("i", 255) + `" "` + r("J", 255) + `" "` + r("K", 1) + `"`)
|
||||
//r512, _ := dns.NewRR(`t511.bosun.org. 300 IN TXT "` + r("L", 255) + `" "` + r("M", 255) + `" "` + r("N", 2) + `"`)
|
||||
//r513, _ := dns.NewRR(`t511.bosun.org. 300 IN TXT "` + r("o", 255) + `" "` + r("p", 255) + `" "` + r("q", 3) + `"`)
|
||||
|
||||
// Do round-trip tests on various length TXT records.
|
||||
t10 := `t10 IN TXT "ten4567890"`
|
||||
t254 := `t254 IN TXT "` + r("a", 254) + `"`
|
||||
t255 := `t255 IN TXT "` + r("b", 255) + `"`
|
||||
@@ -293,23 +284,10 @@ func TestWriteZoneFileTxt(t *testing.T) {
|
||||
|
||||
// Reverse the process. Turn the zonefile into a list of records
|
||||
parseAndRegen(t, buf, ez)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var testdataZFTXT = `$TTL 300
|
||||
t10 IN TXT "ten4567890"
|
||||
t254 IN TXT "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
t255 IN TXT "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
t256 IN TXT "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" "D"
|
||||
t509 IN TXT "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
t510 IN TXT "ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg" "HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH"
|
||||
t511 IN TXT "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" "JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ" "K"
|
||||
t512 IN TXT "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL" "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" "NN"
|
||||
t513 IN TXT "ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" "ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp" "qqq"
|
||||
`
|
||||
|
||||
// Test 1 of each record type
|
||||
|
||||
func mustNewRR(s string) dns.RR {
|
||||
|
||||
16
pkg/prettyzone/txtquote.go
Normal file
16
pkg/prettyzone/txtquote.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package prettyzone
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func txtToNative(parts []string) string {
|
||||
var quotedParts []string
|
||||
|
||||
for _, part := range parts {
|
||||
quotedParts = append(quotedParts, strconv.Quote(part))
|
||||
}
|
||||
|
||||
return strings.Join(quotedParts, " ")
|
||||
}
|
||||
28
pkg/prettyzone/txtquote_test.go
Normal file
28
pkg/prettyzone/txtquote_test.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package prettyzone
|
||||
|
||||
import "testing"
|
||||
|
||||
func Test_txtToNative(t *testing.T) {
|
||||
type args struct {
|
||||
parts []string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want string
|
||||
}{
|
||||
{"1", args{[]string{`foo`}}, `"foo"`},
|
||||
{"2", args{[]string{`one`, `two`}}, `"one" "two"`},
|
||||
{"single", args{[]string{`sin'gle`}}, `"sin'gle"`},
|
||||
{"double", args{[]string{`dou"ble`}}, `"dou\"ble"`},
|
||||
{"outer", args{[]string{`"outer"`}}, `"\"outer\""`},
|
||||
{"backtick", args{[]string{"back`tick"}}, "\"back`tick\""},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := txtToNative(tt.args.parts); got != tt.want {
|
||||
t.Errorf("txtToNative() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,6 @@ import (
|
||||
"github.com/StackExchange/dnscontrol/v4/models"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/diff2"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/printer"
|
||||
"github.com/StackExchange/dnscontrol/v4/pkg/txtutil"
|
||||
"github.com/StackExchange/dnscontrol/v4/providers"
|
||||
)
|
||||
|
||||
@@ -523,10 +522,9 @@ func (a *azurednsProvider) recordToNativeDiff2(recordKey models.RecordKey, recor
|
||||
recordSet.Properties.TxtRecords = []*adns.TxtRecord{}
|
||||
}
|
||||
// Empty TXT record needs to have no value set in it's properties
|
||||
tt := rec.GetTargetField()
|
||||
if tt != "" {
|
||||
if rec.GetTargetField() != "" {
|
||||
var txts []*string
|
||||
for _, t := range txtutil.ToChunks(tt) {
|
||||
for _, t := range rec.GetTargetTXTChunked255() {
|
||||
txts = append(txts, to.StringPtr(t))
|
||||
}
|
||||
recordSet.Properties.TxtRecords = append(recordSet.Properties.TxtRecords, &adns.TxtRecord{Value: txts})
|
||||
|
||||
Reference in New Issue
Block a user