26 lines
656 B
Go
26 lines
656 B
Go
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, "<b>") {
|
|
t.Fatalf("first: %+v", r)
|
|
}
|
|
}
|