|
@@ -1,10 +1,23 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
+ "net/http"
|
|
|
+ "net/http/httptest"
|
|
|
"strings"
|
|
|
"testing"
|
|
|
)
|
|
|
|
|
|
+func fakeServer(statusCode int, data string) *httptest.Server {
|
|
|
+ function := func(w http.ResponseWriter, r *http.Request) {
|
|
|
+ w.Header().Set("Content-Type", "application/json")
|
|
|
+ w.WriteHeader(statusCode)
|
|
|
+ fmt.Fprint(w, data)
|
|
|
+ }
|
|
|
+
|
|
|
+ return httptest.NewServer(http.HandlerFunc(function))
|
|
|
+}
|
|
|
+
|
|
|
func TestSetBaseURL(t *testing.T) {
|
|
|
toTest := []string{"http://test.com:880/test/", "http://test.com:880/test"}
|
|
|
|
|
@@ -13,7 +26,7 @@ func TestSetBaseURL(t *testing.T) {
|
|
|
for _, testCase := range toTest {
|
|
|
app.setBaseURL(testCase)
|
|
|
if strings.HasSuffix(app.BaseURL, "//") || !strings.HasSuffix(app.BaseURL, "/") {
|
|
|
- t.Errorf("URL has been malformed: %v", app.BaseURL)
|
|
|
+ t.Errorf("URL has been malformed: %s", app.BaseURL)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -27,10 +40,28 @@ func TestLoadLanguages(t *testing.T) {
|
|
|
|
|
|
fromMap, ok := app.Languages[testLanguageCode]
|
|
|
if !ok {
|
|
|
- t.Fatalf("There's no key '%v'!", testLanguageCode)
|
|
|
+ t.Fatalf("There's no key '%s'!", testLanguageCode)
|
|
|
}
|
|
|
|
|
|
if fromMap != testLanguage {
|
|
|
- t.Fatalf("Value of key '%v' isn't '%v'", testLanguageCode, testLanguage)
|
|
|
+ t.Fatalf("Value of key '%s' isn't '%s'", testLanguageCode, testLanguage)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestLogin(t *testing.T) {
|
|
|
+ loginResponse := `{
|
|
|
+ "Name": "admin",
|
|
|
+ "Sid": "00000000-0000-0000-0001-000000000001",
|
|
|
+ "AccessToken": "fde0f7ed-d585-48ec-a0a9-397aea195ccd"
|
|
|
+}`
|
|
|
+
|
|
|
+ server := fakeServer(http.StatusOK, loginResponse)
|
|
|
+ defer server.Close()
|
|
|
+
|
|
|
+ var app Application
|
|
|
+ app.setBaseURL(server.URL)
|
|
|
+ status, err := app.login()
|
|
|
+ if !status || err != nil {
|
|
|
+ t.Fatalf("Status: %v, error: %s", status, err)
|
|
|
}
|
|
|
}
|