diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-02-07 18:47:47 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-02-07 18:47:47 -0800 |
commit | 0fb87eba3f763658e3bf864a9cf78adbdae590c6 (patch) | |
tree | 45202029a06b2c79c4bce5995d0987bc5e60c012 /reader/feed | |
parent | 1e70ca1a199199853d3ae95c666400a9a70255e2 (diff) |
Improve error handling when the response is empty
Diffstat (limited to 'reader/feed')
-rw-r--r-- | reader/feed/parser.go | 5 | ||||
-rw-r--r-- | reader/feed/parser_test.go | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/reader/feed/parser.go b/reader/feed/parser.go index a2b39ed..c04836a 100644 --- a/reader/feed/parser.go +++ b/reader/feed/parser.go @@ -69,7 +69,10 @@ func parseFeed(r io.Reader) (*model.Feed, error) { defer timer.ExecutionTime(time.Now(), "[Feed:ParseFeed]") var buffer bytes.Buffer - io.Copy(&buffer, r) + size, _ := io.Copy(&buffer, r) + if size == 0 { + return nil, errors.New("This feed is empty") + } reader := bytes.NewReader(buffer.Bytes()) format := DetectFeedFormat(reader) diff --git a/reader/feed/parser_test.go b/reader/feed/parser_test.go index b201caf..31dbedf 100644 --- a/reader/feed/parser_test.go +++ b/reader/feed/parser_test.go @@ -205,3 +205,10 @@ func TestParseUnknownFeed(t *testing.T) { t.Error("ParseFeed must returns an error") } } + +func TestParseEmptyFeed(t *testing.T) { + _, err := parseFeed(bytes.NewBufferString("")) + if err == nil { + t.Error("ParseFeed must returns an error") + } +} |