// +build all general package main import ( "fmt" "net/http" "net/http/httptest" "testing" ) func TestCheckPage(t *testing.T) { answer := "" ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html") w.WriteHeader(0) fmt.Fprintln(w, answer) })) defer ts.Close() fakeUrlSuccess := ts.URL h := []Host{} host := Host{ Url: fakeUrlSuccess, Monitored: true, } h = append(h, host) test := CheckPages(h) if test == nil { t.Fatal("Expected slice to be not nil.") } if test[0].StatusCode != 0 { t.Errorf("Expected StatusCode 0 instead of %v.\n", test[0].StatusCode) t.Logf("Failed test for %v .\n", test[0].Url) } else { t.Logf("Passed test for %v.\n", test[0].Url) } ts2 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html") w.WriteHeader(200) fmt.Fprintln(w, answer) })) defer ts.Close() h2 := []Host{} host2 := Host{ Url: ts2.URL, Monitored: true, } h2 = append(h2, host2) test2 := CheckPages(h2) if test2[0].StatusCode != 200 { t.Errorf("Expected StatusCode 200 instead of %v.\n", test2[0].StatusCode) t.Logf("Failed test for %v .\n", test2[0].Url) } else { t.Logf("Passed test for %v .\n", test2[0].Url) } }