2019-01-15 01:28:00 +00:00
|
|
|
package handlers
|
|
|
|
|
|
|
|
import (
|
2019-02-06 18:51:30 +00:00
|
|
|
"github.com/hunterlong/statping/utils"
|
2019-01-15 01:28:00 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"net/url"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestGenericRoutes(t *testing.T) {
|
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Add("username", "admin")
|
|
|
|
form.Add("password", "password123")
|
|
|
|
|
|
|
|
form2 := url.Values{}
|
|
|
|
form2.Add("username", "admin")
|
|
|
|
form2.Add("password", "wrongpassword")
|
|
|
|
|
2019-02-06 18:51:30 +00:00
|
|
|
form3 := url.Values{}
|
|
|
|
form3.Add("variables", "$background-color: #fcfcfc;")
|
|
|
|
|
2019-01-15 01:28:00 +00:00
|
|
|
tests := []HTTPTest{
|
|
|
|
{
|
|
|
|
Name: "Statping Index",
|
|
|
|
URL: "/",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{
|
|
|
|
`<title>Tester Status</title>`,
|
|
|
|
`<footer>`,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Statping Incorrect Login",
|
|
|
|
URL: "/dashboard",
|
|
|
|
Method: "POST",
|
|
|
|
Body: form.Encode(),
|
|
|
|
HttpHeaders: []string{"Content-Type=application/x-www-form-urlencoded"},
|
|
|
|
ExpectedContains: []string{"Incorrect login information submitted, try again."},
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Dashboard Routes",
|
|
|
|
URL: "/dashboard",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Dashboard</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Services Routes",
|
|
|
|
URL: "/services",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Services</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Users Routes",
|
|
|
|
URL: "/users",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Users</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Messages Routes",
|
|
|
|
URL: "/messages",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping Messages</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Settings Routes",
|
|
|
|
URL: "/settings",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Settings</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Logs Routes",
|
|
|
|
URL: "/logs",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Logs</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Help Routes",
|
|
|
|
URL: "/help",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"<title>Statping | Help</title>"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Logout",
|
|
|
|
URL: "/logout",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 303,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Prometheus Metrics Routes",
|
|
|
|
URL: "/metrics",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
ExpectedContains: []string{"statping_total_services 5"},
|
|
|
|
},
|
2019-02-06 18:51:30 +00:00
|
|
|
{
|
|
|
|
Name: "Last Log Line",
|
|
|
|
URL: "/logs/line",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Export JSON file of all objcts",
|
|
|
|
URL: "/settings/export",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 200,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Export Static Assets",
|
|
|
|
URL: "/settings/build",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 303,
|
|
|
|
ExpectedFiles: []string{utils.Directory + "/assets/css/base.css"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Save SCSS",
|
|
|
|
URL: "/settings/css",
|
|
|
|
Method: "POST",
|
|
|
|
Body: form3.Encode(),
|
|
|
|
ExpectedStatus: 303,
|
|
|
|
HttpHeaders: []string{"Content-Type=application/x-www-form-urlencoded"},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Name: "Delete Assets",
|
|
|
|
URL: "/settings/delete_assets",
|
|
|
|
Method: "GET",
|
|
|
|
ExpectedStatus: 303,
|
|
|
|
},
|
2019-01-15 01:28:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
for _, v := range tests {
|
|
|
|
t.Run(v.Name, func(t *testing.T) {
|
2019-02-04 18:52:41 +00:00
|
|
|
_, t, err := RunHTTPTest(v, t)
|
2019-01-15 01:28:00 +00:00
|
|
|
assert.Nil(t, err)
|
|
|
|
if err != nil {
|
|
|
|
t.FailNow()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|