mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-10-06 03:46:34 +08:00
90 lines
3.6 KiB
Go
90 lines
3.6 KiB
Go
package cloudflare
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/goccy/go-json"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
// Mock data for PageShieldConnections.
|
|
var mockPageShieldConnections = []PageShieldConnection{
|
|
{
|
|
AddedAt: "2021-08-18T10:51:10.09615Z",
|
|
DomainReportedMalicious: BoolPtr(false),
|
|
FirstPageURL: "blog.cloudflare.com/page",
|
|
FirstSeenAt: "2021-08-18T10:51:08Z",
|
|
Host: "blog.cloudflare.com",
|
|
ID: "c9ef84a6bf5e47138c75d95e2f933e8f",
|
|
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),
|
|
},
|
|
{
|
|
AddedAt: "2021-09-18T10:51:10.09615Z",
|
|
DomainReportedMalicious: BoolPtr(false),
|
|
FirstPageURL: "blog.cloudflare.com/page02",
|
|
FirstSeenAt: "2021-08-18T10:51:08Z",
|
|
Host: "blog.cloudflare.com",
|
|
ID: "c9ef84a6bf5e47138c75d95e2f933e8f",
|
|
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),
|
|
},
|
|
{
|
|
AddedAt: "2021-10-18T10:51:10.09615Z",
|
|
DomainReportedMalicious: BoolPtr(false),
|
|
FirstPageURL: "blog.cloudflare.com/page03",
|
|
FirstSeenAt: "2021-08-18T10:51:08Z",
|
|
Host: "blog.cloudflare.com",
|
|
ID: "c9ef84a6bf5e47138c75d95e2f933e8f",
|
|
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),
|
|
},
|
|
}
|
|
|
|
func TestListPageShieldConnections(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/zones/"+testZoneID+"/page_shield/connections", 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 := ListPageShieldConnectionsResponse{
|
|
Result: mockPageShieldConnections,
|
|
}
|
|
err := json.NewEncoder(w).Encode(response)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
})
|
|
result, _, err := client.ListPageShieldConnections(context.Background(), ZoneIdentifier(testZoneID), ListPageShieldConnectionsParams{})
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, mockPageShieldConnections, result)
|
|
}
|
|
|
|
func TestGetPageShieldConnection(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
connectionID := "c9ef84a6bf5e47138c75d95e2f933e8f" //nolint
|
|
mux.HandleFunc(fmt.Sprintf("/zones/"+testZoneID+"/page_shield/connections/%s", connectionID), 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 := mockPageShieldConnections[0] // Assuming it's the first mock connection
|
|
err := json.NewEncoder(w).Encode(response)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
})
|
|
result, err := client.GetPageShieldConnection(context.Background(), ZoneIdentifier(testZoneID), connectionID)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, &mockPageShieldConnections[0], result)
|
|
}
|