73 lines
1.2 KiB
Go
Executable File
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())
|
|
}
|