package server import ( "os" "strings" "testing" ) // The results of DuckDuckGo's light page: titles, real addresses (not its // redirects), snippets without tags. func TestParseDDGLite(t *testing.T) { b, err := os.ReadFile("testdata/ddg_lite.html") if err != nil { t.Fatal(err) } rs := parseDDG(string(b)) if len(rs) < 5 { t.Fatalf("results: %d", len(rs)) } r := rs[0] if r.URL != "https://go.dev/doc/database/cancel-operations" || !strings.Contains(r.Title, "Canceling in-progress operations") || !strings.Contains(r.Snippet, "Learn how to use context.Context") || strings.Contains(r.Snippet, "") { t.Fatalf("first: %+v", r) } }