rssmon3/rss/serialize_test.go

73 lines
1.2 KiB
Go
Executable File

package rss
import (
"bytes"
"log"
"os"
"testing"
)
func initRSSSerialize() {
initRSSFeed()
}
func TestRSSTaggedFeeds(t *testing.T) {
initRSSFeed()
for _, k := range []string{"a", "b"} {
f := newFeed(k)
f.Tags = []string{"TAG"}
if err := f.save(); err != nil {
t.Fatal(err)
}
}
if feeds, err := TaggedFeeds("NOTTAG"); err != nil {
t.Fatal(err)
} else if len(feeds) != 0 {
t.Fatal(len(feeds))
}
if feeds, err := TaggedFeeds("TAG"); err != nil {
t.Fatal(err)
} else if len(feeds) != 2 {
t.Fatal(len(feeds))
} else {
t.Logf("%v", feeds)
}
}
func TestRSSWriteFeed(t *testing.T) {
initRSSFeed()
s := mockRSS()
defer s.Close()
f := newFeed("key")
f.TitleFilter = "5[0-9]{2}"
f.ContentFilter = "b"
f.Tags = []string{"c"}
f.URL = s.URL
f.Copyright = "copyright"
log.SetOutput(bytes.NewBuffer(nil))
defer log.SetOutput(os.Stderr)
if err := f.Pull(); err != nil {
t.Fatal(err)
}
log.SetOutput(os.Stderr)
items, err := f.Items(5)
if err != nil {
t.Fatal(err)
}
if len(items) != 5 {
t.Fatal(len(items))
}
buff := bytes.NewBuffer(nil)
if err := WriteFeed(buff, "c", items); err != nil {
t.Fatal(err)
}
t.Logf("%s", buff.Bytes())
}