diff --git a/content/content_test.go b/content/content_test.go new file mode 100644 index 0000000..6502080 --- /dev/null +++ b/content/content_test.go @@ -0,0 +1,74 @@ +package content + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/tardisx/linkwallet/entity" +) + +func newTestServer() *httptest.Server { + mux := http.NewServeMux() + + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "text/html") + w.Write([]byte(` + +
+This is a test page
+This is a test paragraph
+ + + `)) + }) + return httptest.NewServer(mux) +} + +func TestSimpleScrape(t *testing.T) { + ts := newTestServer() + defer ts.Close() + + bm := entity.Bookmark{URL: ts.URL} + info := FetchPageInfo(bm) + + if info.Title != "Test Page" { + t.Errorf("'%s' is wrong title (expected Test Page)", info.Title) + } + if info.Size != 208 { + t.Errorf("expected 208 bytes, got %d", info.Size) + } + if info.StatusCode != 200 { + t.Errorf("got status code %d not 200", info.StatusCode) + } +} + +func TestWords(t *testing.T) { + + bm := entity.Bookmark{ + // ID: 0, + // URL: "", + Info: entity.PageInfo{RawText: "the quick brown fox jumped over the lazy dog"}, + // Tags: []string{}, + } + words := Words(&bm) + if len(words) != 7 { + t.Errorf("got %d words not 7", len(words)) + } else { + if words[0] != "quick" || + words[1] != "brown" || + words[2] != "fox" || + words[3] != "jump" || + words[4] != "over" || + words[5] != "lazi" || + words[6] != "dog" { + t.Error("incorrect words returned") + } + + } + +}