about summary refs log tree commit diff stats
path: root/svc/handlers_test.go
diff options
context:
space:
mode:
authorBen Morrison <ben@gbmor.dev>2019-06-05 15:36:23 -0400
committerBen Morrison <ben@gbmor.dev>2019-06-05 15:36:23 -0400
commitfd43c61bd128ad77b22db0537a9a4eb58490b0b5 (patch)
tree4c5fa7b33fadbf7c3e14e69b7d68ce280bc3810a /svc/handlers_test.go
parent4658fe82be3e9d95e93fa5c7c7ca64a15cf2f1a1 (diff)
downloadgetwtxt-fd43c61bd128ad77b22db0537a9a4eb58490b0b5.tar.gz
moved bulk of code to its own package to clean up source tree
Diffstat (limited to 'svc/handlers_test.go')
-rw-r--r--svc/handlers_test.go116
1 files changed, 116 insertions, 0 deletions
diff --git a/svc/handlers_test.go b/svc/handlers_test.go
new file mode 100644
index 0000000..ab9b20f
--- /dev/null
+++ b/svc/handlers_test.go
@@ -0,0 +1,116 @@
+package svc // import github.com/getwtxt/getwtxt/svc
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"net/http/httptest"
+	"testing"
+)
+
+// Currently, these only test for a 200 status code.
+// More in-depth unit tests are planned, however, several
+// of these will quickly turn into integration tests as
+// they'll need more than a barebones test environment to
+// get any real information. The HTTP responses are being
+// tested by me by hand, mostly.
+func Test_indexHandler(t *testing.T) {
+	initTestConf()
+	t.Run("indexHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/", nil)
+		indexHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+func Test_apiBaseHandler(t *testing.T) {
+	initTestConf()
+	t.Run("apiBaseHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/api", nil)
+		apiBaseHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+func Test_apiFormatHandler(t *testing.T) {
+	initTestConf()
+	t.Run("apiFormatHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/api/plain", nil)
+		apiFormatHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+func Test_apiEndpointHandler(t *testing.T) {
+	initTestConf()
+	t.Run("apiEndpointHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/api/plain/users", nil)
+		apiEndpointHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+
+/*
+func Test_apiTagsBaseHandler(t *testing.T) {
+	initTestConf()
+	t.Run("apiTagsBaseHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/api/plain/tags", nil)
+		apiTagsBaseHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+func Test_apiTagsHandler(t *testing.T) {
+	initTestConf()
+	t.Run("apiTagsHandler", func(t *testing.T) {
+		w := httptest.NewRecorder()
+		req := httptest.NewRequest("GET", "localhost"+testport+"/api/plain/tags/tag", nil)
+		apiTagsHandler(w, req)
+		resp := w.Result()
+		if resp.StatusCode != http.StatusOK {
+			t.Errorf(fmt.Sprintf("%v", resp.StatusCode))
+		}
+	})
+}
+*/
+func Test_cssHandler(t *testing.T) {
+	initTestConf()
+
+	name := "CSS Handler Test"
+	css, err := ioutil.ReadFile("assets/style.css")
+	if err != nil {
+		t.Errorf("Couldn't read assets/style.css: %v\n", err)
+	}
+
+	w := httptest.NewRecorder()
+	req := httptest.NewRequest("GET", "localhost"+testport+"/css", nil)
+
+	t.Run(name, func(t *testing.T) {
+		cssHandler(w, req)
+		resp := w.Result()
+		body, _ := ioutil.ReadAll(resp.Body)
+		if resp.StatusCode != 200 {
+			t.Errorf("cssHandler(): %v\n", resp.StatusCode)
+		}
+		if !bytes.Equal(body, css) {
+			t.Errorf("cssHandler(): Byte mismatch\n")
+		}
+	})
+}