diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-02-17 12:21:58 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-02-17 12:21:58 -0800 |
commit | 9292d5d6049de7a876c5428039c63e7c7720452b (patch) | |
tree | afced42a58a6fc9170fdd92f83ef13f5cdb316ca /reader/atom/parser_test.go | |
parent | 3ba280e10c4b876331b964c93d720ad50d9f99d7 (diff) |
Handle Atom feeds with HTML title
Diffstat (limited to 'reader/atom/parser_test.go')
-rw-r--r-- | reader/atom/parser_test.go | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/reader/atom/parser_test.go b/reader/atom/parser_test.go index be07383..ec9186c 100644 --- a/reader/atom/parser_test.go +++ b/reader/atom/parser_test.go @@ -206,6 +206,84 @@ func TestParseEntryTitleWithWhitespaces(t *testing.T) { } } +func TestParseEntryTitleWithHTMLAndCDATA(t *testing.T) { + data := `<?xml version="1.0" encoding="utf-8"?> + <feed xmlns="http://www.w3.org/2005/Atom"> + <title>Example Feed</title> + <link href="http://example.org/"/> + + <entry> + <title type="html"><![CDATA[Test “Test”]]></title> + <link href="http://example.org/2003/12/13/atom03"/> + <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> + <updated>2003-12-13T18:30:02Z</updated> + <summary>Some text.</summary> + </entry> + + </feed>` + + feed, err := Parse(bytes.NewBufferString(data)) + if err != nil { + t.Error(err) + } + + if feed.Entries[0].Title != "Test “Test”" { + t.Errorf("Incorrect entry title, got: %q", feed.Entries[0].Title) + } +} + +func TestParseEntryTitleWithHTML(t *testing.T) { + data := `<?xml version="1.0" encoding="utf-8"?> + <feed xmlns="http://www.w3.org/2005/Atom"> + <title>Example Feed</title> + <link href="http://example.org/"/> + + <entry> + <title type="html"><code>Test</code> Test</title> + <link href="http://example.org/2003/12/13/atom03"/> + <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> + <updated>2003-12-13T18:30:02Z</updated> + <summary>Some text.</summary> + </entry> + + </feed>` + + feed, err := Parse(bytes.NewBufferString(data)) + if err != nil { + t.Error(err) + } + + if feed.Entries[0].Title != "Test Test" { + t.Errorf("Incorrect entry title, got: %q", feed.Entries[0].Title) + } +} + +func TestParseEntryTitleWithXHTML(t *testing.T) { + data := `<?xml version="1.0" encoding="utf-8"?> + <feed xmlns="http://www.w3.org/2005/Atom"> + <title>Example Feed</title> + <link href="http://example.org/"/> + + <entry> + <title type="xhtml"><code>Test</code> Test</title> + <link href="http://example.org/2003/12/13/atom03"/> + <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> + <updated>2003-12-13T18:30:02Z</updated> + <summary>Some text.</summary> + </entry> + + </feed>` + + feed, err := Parse(bytes.NewBufferString(data)) + if err != nil { + t.Error(err) + } + + if feed.Entries[0].Title != "Test Test" { + t.Errorf("Incorrect entry title, got: %q", feed.Entries[0].Title) + } +} + func TestParseEntryWithAuthorName(t *testing.T) { data := `<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> |