45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package cmd
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/letsencrypt/boulder/test"
|
|
)
|
|
|
|
var (
|
|
validPAConfig = []byte(`{
|
|
"dbConnect": "dummyDBConnect",
|
|
"enforcePolicyWhitelist": false,
|
|
"challenges": { "simpleHttp": true }
|
|
}`)
|
|
invalidPAConfig = []byte(`{
|
|
"dbConnect": "dummyDBConnect",
|
|
"enforcePolicyWhitelist": false,
|
|
"challenges": { "nonsense": true }
|
|
}`)
|
|
noChallengesPAConfig = []byte(`{
|
|
"dbConnect": "dummyDBConnect",
|
|
"enforcePolicyWhitelist": false
|
|
}`)
|
|
)
|
|
|
|
func TestPAConfigUnmarshal(t *testing.T) {
|
|
var pc1 PAConfig
|
|
err := json.Unmarshal(validPAConfig, &pc1)
|
|
test.AssertNotError(t, err, "Failed to unmarshal PAConfig")
|
|
test.AssertNotError(t, pc1.CheckChallenges(), "Flagged valid challenges as bad")
|
|
|
|
var pc2 PAConfig
|
|
err = json.Unmarshal(invalidPAConfig, &pc2)
|
|
test.AssertNotError(t, err, "Failed to unmarshal PAConfig")
|
|
test.AssertError(t, pc2.CheckChallenges(), "Considered invalid challenges as good")
|
|
|
|
var pc3 PAConfig
|
|
err = json.Unmarshal(noChallengesPAConfig, &pc3)
|
|
test.AssertNotError(t, err, "Failed to unmarshal PAConfig")
|
|
test.AssertNotError(t, pc3.CheckChallenges(), "Somehow found a bad challenge among none")
|
|
pc3.SetDefaultChallengesIfEmpty()
|
|
test.Assert(t, len(pc3.Challenges) == 4, "Incorrect number of challenges in default set")
|
|
}
|