dnscontrol/pkg/cloudflare-go/page_shield_scripts_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

78 lines
2.7 KiB
Go

package cloudflare
import (
"context"
"fmt"
"net/http"
"testing"
"github.com/goccy/go-json"
"github.com/stretchr/testify/assert"
)
var mockPageShieldScripts = []PageShieldScript{
{
AddedAt: "2021-08-18T10:51:10.09615Z",
DomainReportedMalicious: BoolPtr(false),
FetchedAt: "2021-09-02T10:17:54Z",
FirstPageURL: "blog.cloudflare.com/page",
FirstSeenAt: "2021-08-18T10:51:08Z",
Hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
Host: "blog.cloudflare.com",
ID: "c9ef84a6bf5e47138c75d95e2f933e8f",
JSIntegrityScore: 10,
LastSeenAt: "2021-09-02T09:57:54Z",
PageURLs: []string{"blog.cloudflare.com/page1", "blog.cloudflare.com/page2"},
URL: "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js",
URLContainsCdnCgiPath: BoolPtr(false),
},
}
var mockVersions = []PageShieldScriptVersion{
{
FetchedAt: "2021-09-02T10:17:54Z",
Hash: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
JSIntegrityScore: 10,
},
}
func TestListPageShieldScripts(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/zones/"+testZoneID+"/page_shield/scripts", 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")
response := PageShieldScriptsResponse{Results: mockPageShieldScripts}
err := json.NewEncoder(w).Encode(response)
if err != nil {
t.Fatal(err)
}
})
result, _, err := client.ListPageShieldScripts(context.Background(), ZoneIdentifier(testZoneID), ListPageShieldScriptsParams{})
assert.NoError(t, err)
assert.Equal(t, mockPageShieldScripts, result)
}
func TestGetPageShieldScript(t *testing.T) {
setup()
defer teardown()
scriptID := "c9ef84a6bf5e47138c75d95e2f933e8f"
mux.HandleFunc(fmt.Sprintf("/zones/"+testZoneID+"/page_shield/scripts/%s", scriptID), 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")
response := PageShieldScriptResponse{
Result: mockPageShieldScripts[0],
Versions: mockVersions,
}
err := json.NewEncoder(w).Encode(response)
if err != nil {
t.Fatal(err)
}
})
result, versions, err := client.GetPageShieldScript(context.Background(), ZoneIdentifier(testZoneID), scriptID)
assert.NoError(t, err)
assert.Equal(t, &mockPageShieldScripts[0], result)
assert.Equal(t, mockVersions, versions)
}