rss and rss item and encode
Former-commit-id: 333b5635cc0eb22964403cc78f660e02a830f077
This commit is contained in:
84
rss/item_test.go
Normal file
84
rss/item_test.go
Normal file
@@ -0,0 +1,84 @@
|
||||
package rss
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"github.com/mmcdole/gofeed"
|
||||
)
|
||||
|
||||
func initRSSItem() {
|
||||
initRSSFeed()
|
||||
}
|
||||
|
||||
func TestRSSItemNewEncodeDecode(t *testing.T) {
|
||||
initRSSItem()
|
||||
|
||||
s := mockRSS()
|
||||
defer s.Close()
|
||||
|
||||
resp, err := http.Get(s.URL)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
gofeed, err := gofeed.NewParser().Parse(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
gofeed.Items[0].Content = ""
|
||||
gofeed.Items[0].Description = ""
|
||||
|
||||
item, err := newItem(gofeed.Items[0], ".*", "key")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
itemB, err := newItem(gofeed.Items[0], "Podcast", "key")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if itemB.Content == item.Content {
|
||||
t.Errorf("content filter did not apply")
|
||||
}
|
||||
|
||||
b, err := item.Encode()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := itemB.Decode(b); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if itemB.Content != item.Content {
|
||||
t.Errorf("decode found %v, want %v", itemB.Content, item.Content)
|
||||
}
|
||||
|
||||
if err := item.save(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
itemC := &Item{
|
||||
Link: item.Link,
|
||||
FeedKey: item.FeedKey,
|
||||
}
|
||||
if err := itemC.load(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if fmt.Sprintf("%v", item) != fmt.Sprintf("%v", itemC) {
|
||||
t.Fatalf("%v != %v", item, itemC)
|
||||
}
|
||||
|
||||
itemD := &Item{}
|
||||
if err := itemD.load(); err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
itemE := &Item{
|
||||
Link: "nothing",
|
||||
FeedKey: item.FeedKey,
|
||||
}
|
||||
if err := itemE.load(); err == nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user