dnscontrol/pkg/cloudflare-go/universal_ssl_test.go
Tom Limoncelli 7fd6a74e0c
CLOUDFLAREAPI: CF_REDIRECT/CF_TEMP_REDIRECT should dtrt using Single Redirects (#3002)
Co-authored-by: Josh Zhang <jzhang1@stackoverflow.com>
2024-06-18 17:38:50 -04:00

164 lines
4.1 KiB
Go

package cloudflare
import (
"context"
"fmt"
"io"
"net/http"
"testing"
"github.com/stretchr/testify/assert"
)
func TestUniversalSSLSettingDetails(t *testing.T) {
setup()
defer teardown()
handler := func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprintf(w, `{
"success": true,
"errors": [],
"messages": [],
"result": {
"enabled": true
}
}`)
}
mux.HandleFunc("/zones/"+testZoneID+"/ssl/universal/settings", handler)
want := UniversalSSLSetting{
Enabled: true,
}
got, err := client.UniversalSSLSettingDetails(context.Background(), testZoneID)
if assert.NoError(t, err) {
assert.Equal(t, want, got)
}
}
func TestEditUniversalSSLSetting(t *testing.T) {
setup()
defer teardown()
handler := func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPatch, r.Method, "Expected method 'PATCH', got %s", r.Method)
body, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
defer r.Body.Close()
assert.Equal(t, `{"enabled":true}`, string(body))
w.Header().Set("content-type", "application/json")
fmt.Fprintf(w, `{
"success": true,
"errors": [],
"messages": [],
"result": {
"enabled": true
}
}`)
}
mux.HandleFunc("/zones/"+testZoneID+"/ssl/universal/settings", handler)
want := UniversalSSLSetting{
Enabled: true,
}
got, err := client.EditUniversalSSLSetting(context.Background(), testZoneID, want)
if assert.NoError(t, err) {
assert.Equal(t, want, got)
}
}
func TestUniversalSSLVerificationDetails(t *testing.T) {
setup()
defer teardown()
handler := func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
w.Header().Set("content-type", "application/json")
fmt.Fprintf(w, `{
"result": [{
"certificate_status": "active",
"verification_type": "cname",
"verification_status": true,
"verification_info": [
{
"status": "pending",
"http_url": "http://example.com/.well-known/acme-challenge/Km-ycWoOVh10cLfL4pRPppGt6jU_mGz8xgvNOxudMiA",
"http_body": "Km-ycWoOVh10cLfL4pRPppGt6jU_mGz8xgvNOxudMiA.Jckzm7Z9uOFls_MXPYibNRz6koY5a8qpI_BeHtDtf-g"
}
],
"brand_check": false,
"validation_method": "txt",
"cert_pack_uuid": "a77f8bd7-3b47-46b4-a6f1-75cf98109948"
}]
}`)
}
mux.HandleFunc("/zones/"+testZoneID+"/ssl/verification", handler)
want := []UniversalSSLVerificationDetails{
{
CertificateStatus: "active",
VerificationType: "cname",
ValidationMethod: "txt",
CertPackUUID: "a77f8bd7-3b47-46b4-a6f1-75cf98109948",
VerificationStatus: true,
BrandCheck: false,
VerificationInfo: []SSLValidationRecord{{
HTTPUrl: "http://example.com/.well-known/acme-challenge/Km-ycWoOVh10cLfL4pRPppGt6jU_mGz8xgvNOxudMiA",
HTTPBody: "Km-ycWoOVh10cLfL4pRPppGt6jU_mGz8xgvNOxudMiA.Jckzm7Z9uOFls_MXPYibNRz6koY5a8qpI_BeHtDtf-g",
}},
},
}
got, err := client.UniversalSSLVerificationDetails(context.Background(), testZoneID)
if assert.NoError(t, err) {
assert.Equal(t, want, got)
}
}
func TestUpdateSSLCertificatePackValidationMethod(t *testing.T) {
setup()
defer teardown()
handler := func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPatch, r.Method, "Expected method 'PATCH', got %s", r.Method)
body, err := io.ReadAll(r.Body)
if err != nil {
panic(err)
}
defer r.Body.Close()
assert.Equal(t, `{"validation_method":"txt"}`, string(body))
w.Header().Set("content-type", "application/json")
fmt.Fprintf(w, `{
"success": true,
"errors": [],
"messages": [],
"result": {
"validation_method": "txt",
"status": "pending_validation"
}
}`)
}
mux.HandleFunc("/zones/"+testZoneID+"/ssl/verification/"+testCertPackUUID, handler)
want := UniversalSSLCertificatePackValidationMethodSetting{
ValidationMethod: "txt",
}
got, err := client.UpdateUniversalSSLCertificatePackValidationMethod(context.Background(), testZoneID, testCertPackUUID, want)
if assert.NoError(t, err) {
assert.Equal(t, want, got)
}
}