package scraper import ( "reflect" "testing" ) const base = "http://example.com" func TestFindFeedsInvalidHTML(t *testing.T) { x := `some nonsense` r := FindFeeds(x, base) if len(r) != 0 { t.Fatal("not expecting results") } } func TestFindFeedsLinks(t *testing.T) { x := ` rss ` have := FindFeeds(x, base) want := map[string]string{ base + "/feed.xml": "rss with title", base + "/atom.xml": "", base + "/feed.json": "", } if !reflect.DeepEqual(have, want) { t.Logf("want: %#v", want) t.Logf("have: %#v", have) t.Fatal("invalid result") } } func TestFindFeedsGuess(t *testing.T) { body := ` what is rss? moo subscribe rss ` have := FindFeeds(body, base) want := map[string]string{ base + "/feed.xml": "", base + "/news": "", } if !reflect.DeepEqual(want, have) { t.Logf("want: %#v", want) t.Logf("have: %#v", have) t.Fatal("invalid result") } } func TestFindIcons(t *testing.T) { body := ` ` have := FindIcons(body, base) want := []string{base + "/favicon.ico", base + "/path/to/favicon.png"} if !reflect.DeepEqual(have, want) { t.Logf("want: %#v", want) t.Logf("have: %#v", have) t.Fatal("invalid result") } }