X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=vendor%2Fgithub.com%2FDreamItGetIT%2Fstatuscake%2Fssl_test.go;fp=vendor%2Fgithub.com%2FDreamItGetIT%2Fstatuscake%2Fssl_test.go;h=48a961c8904285358c9ac32670e0ef944a43d54c;hb=b74d3065f299a1953e6d21e3d48d3ce0629bcaf7;hp=0000000000000000000000000000000000000000;hpb=ebf8436f01bcacb71e3c378f08b165dfd6dd90e6;p=github%2Ffretlink%2Fterraform-provider-statuscake.git diff --git a/vendor/github.com/DreamItGetIT/statuscake/ssl_test.go b/vendor/github.com/DreamItGetIT/statuscake/ssl_test.go new file mode 100644 index 0000000..48a961c --- /dev/null +++ b/vendor/github.com/DreamItGetIT/statuscake/ssl_test.go @@ -0,0 +1,343 @@ +package statuscake + +import ( + "testing" + //"fmt" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "net/url" +) + +func TestSsl_All(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslListAllOk.json", + } + tt := NewSsls(c) + ssls, err := tt.All() + require.Nil(err) + + assert.Equal("/SSL", c.sentRequestPath) + assert.Equal("GET", c.sentRequestMethod) + assert.Nil(c.sentRequestValues) + assert.Len(ssls, 3) + mixed := make(map[string]string) + flags := make(map[string]bool) + flags["is_extended"] = false + flags["has_pfs"] = true + flags["is_broken"] = false + flags["is_expired"] = false + flags["is_missing"] = false + flags["is_revoked"] = false + flags["has_mixed"] = false + expectedTest := &Ssl{ + ID: "143615", + Checkrate: 2073600, + Paused: false, + Domain: "https://www.exemple.com", + IssuerCn: "Let's Encrypt Authority X3", + CertScore: "95", + CipherScore: "100", + CertStatus: "CERT_OK", + Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ValidFromUtc: "2019-05-28 01:22:00", + ValidUntilUtc: "2019-08-26 01:22:00", + MixedContent: []map[string]string{}, + Flags: flags, + ContactGroups: []string{}, + ContactGroupsC: "", + AlertAt: "7,18,2019", + LastReminder: 2019, + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + LastUpdatedUtc: "2019-06-20 10:11:03", + } + assert.Equal(expectedTest, ssls[0]) + + expectedTest.ID="143617" + expectedTest.LastUpdatedUtc="2019-06-20 10:23:20" + assert.Equal(expectedTest, ssls[2]) + + expectedTest.ID="143616" + expectedTest.LastUpdatedUtc="2019-06-20 10:23:14" + mixed["type"]="img" + mixed["src"]="http://example.com/image.gif" + expectedTest.MixedContent=[]map[string]string{mixed} + expectedTest.ContactGroupsC="12,13,34" + expectedTest.ContactGroups=[]string{"12","13","34"} + assert.Equal(expectedTest, ssls[1]) +} + +func TestSsls_Detail_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslListAllOk.json", + } + tt := NewSsls(c) + + ssl, err := tt.Detail("143616") + require.Nil(err) + assert.Equal("/SSL", c.sentRequestPath) + assert.Equal("GET", c.sentRequestMethod) + assert.Nil(c.sentRequestValues) + + mixed := make(map[string]string) + flags := make(map[string]bool) + + mixed["type"]="img" + mixed["src"]="http://example.com/image.gif" + + flags["is_extended"] = false + flags["has_pfs"] = true + flags["is_broken"] = false + flags["is_expired"] = false + flags["is_missing"] = false + flags["is_revoked"] = false + flags["has_mixed"] = false + expectedTest := &Ssl{ + ID: "143616", + Checkrate: 2073600, + Paused: false, + Domain: "https://www.exemple.com", + IssuerCn: "Let's Encrypt Authority X3", + CertScore: "95", + CipherScore: "100", + CertStatus: "CERT_OK", + Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ValidFromUtc: "2019-05-28 01:22:00", + ValidUntilUtc: "2019-08-26 01:22:00", + MixedContent: []map[string]string{mixed}, + Flags: flags, + ContactGroups: []string{"12","13","34"}, + ContactGroupsC: "12,13,34", + AlertAt: "7,18,2019", + LastReminder: 2019, + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + LastUpdatedUtc: "2019-06-20 10:23:14", + } + + assert.Equal(expectedTest, ssl) +} + +func TestSsls_CreatePartial_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslCreateOk.json", + } + tt := NewSsls(c) + partial := &PartialSsl{ + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "", + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + expectedRes := &PartialSsl { + ID: 143616, + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "", + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + res, err := tt.CreatePartial(partial) + require.Nil(err) + assert.Equal("/SSL/Update", c.sentRequestPath) + assert.Equal("PUT", c.sentRequestMethod) + assert.Equal(c.sentRequestValues,url.Values(url.Values{"domain":[]string{"https://www.exemple.com"}, "checkrate":[]string{"2073600"}, "contact_groups":[]string{""}, "alert_at":[]string{"7,18,2019"}, "alert_expiry":[]string{"true"}, "alert_reminder":[]string{"true"}, "alert_broken":[]string{"true"}, "alert_mixed":[]string{"true"}})) + + assert.Equal(expectedRes, res) +} + +func TestSsls_UpdatePartial_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslUpdateOk.json", + } + tt := NewSsls(c) + partial := &PartialSsl{ + ID: 143616, + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "", + AlertReminder: false, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + expectedRes := &PartialSsl { + ID: 143616, + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "", + AlertReminder: false, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + res, err := tt.UpdatePartial(partial) + require.Nil(err) + assert.Equal(expectedRes, res) + assert.Equal("/SSL/Update", c.sentRequestPath) + assert.Equal("PUT", c.sentRequestMethod) + assert.Equal(c.sentRequestValues,url.Values(url.Values{"id":[]string{"143616"},"domain":[]string{"https://www.exemple.com"}, "checkrate":[]string{"2073600"}, "contact_groups":[]string{""}, "alert_at":[]string{"7,18,2019"}, "alert_expiry":[]string{"true"}, "alert_reminder":[]string{"false"}, "alert_broken":[]string{"true"}, "alert_mixed":[]string{"true"}})) +} + +func TestSsl_complete_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslListAllOk.json", + } + tt := NewSsls(c) + + partial := &PartialSsl { + ID: 143616, + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "12,13,34", + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + full, err := tt.completeSsl(partial) + require.Nil(err) + mixed := make(map[string]string) + flags := make(map[string]bool) + + mixed["type"]="img" + mixed["src"]="http://example.com/image.gif" + + flags["is_extended"] = false + flags["has_pfs"] = true + flags["is_broken"] = false + flags["is_expired"] = false + flags["is_missing"] = false + flags["is_revoked"] = false + flags["has_mixed"] = false + expectedTest := &Ssl{ + ID: "143616", + Checkrate: 2073600, + Paused: false, + Domain: "https://www.exemple.com", + IssuerCn: "Let's Encrypt Authority X3", + CertScore: "95", + CipherScore: "100", + CertStatus: "CERT_OK", + Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ValidFromUtc: "2019-05-28 01:22:00", + ValidUntilUtc: "2019-08-26 01:22:00", + MixedContent: []map[string]string{mixed}, + Flags: flags, + ContactGroups: []string{"12","13","34"}, + ContactGroupsC: "12,13,34", + AlertAt: "7,18,2019", + LastReminder: 2019, + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + LastUpdatedUtc: "2019-06-20 10:23:14", + } + + assert.Equal(expectedTest, full) + +} + +func TestSsl_partial_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + mixed := make(map[string]string) + flags := make(map[string]bool) + + mixed["type"]="img" + mixed["src"]="http://example.com/image.gif" + + flags["is_extended"] = false + flags["has_pfs"] = true + flags["is_broken"] = false + flags["is_expired"] = false + flags["is_missing"] = false + flags["is_revoked"] = false + flags["has_mixed"] = false + full := &Ssl{ + ID: "143616", + Checkrate: 2073600, + Paused: false, + Domain: "https://www.exemple.com", + IssuerCn: "Let's Encrypt Authority X3", + CertScore: "95", + CipherScore: "100", + CertStatus: "CERT_OK", + Cipher: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + ValidFromUtc: "2019-05-28 01:22:00", + ValidUntilUtc: "2019-08-26 01:22:00", + MixedContent: []map[string]string{mixed}, + Flags: flags, + ContactGroups: []string{"12","13","34"}, + ContactGroupsC: "12,13,34", + AlertAt: "7,18,2019", + LastReminder: 2019, + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + LastUpdatedUtc: "2019-06-20 10:23:14", + } + expectedTest:=&PartialSsl { + ID: 143616, + Domain: "https://www.exemple.com", + Checkrate: "2073600", + ContactGroupsC: "12,13,34", + AlertReminder: true, + AlertExpiry: true, + AlertBroken: true, + AlertMixed: true, + AlertAt: "7,18,2019", + } + partial,err:=Partial(full) + require.Nil(err) + assert.Equal(expectedTest, partial) + +} + +func TestSsls_Delete_OK(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + c := &fakeAPIClient{ + fixture: "sslDeleteOk.json", + } + tt := NewSsls(c) + + err := tt.Delete("143616") + require.Nil(err) + assert.Equal("/SSL/Update", c.sentRequestPath) + assert.Equal("DELETE", c.sentRequestMethod) + assert.Equal(c.sentRequestValues,url.Values(url.Values{"id":[]string{"143616"},},)) +}