@@ -47,4 +47,64 @@ describe('links', function () {
4747 } ) ;
4848 } ) ;
4949
50+ it ( 'should infer item link from http guid by default (issue #293)' , function ( done ) {
51+ var feedparser = new FeedParser ( ) ;
52+ var feed = '<?xml version="1.0" encoding="UTF-8"?>' +
53+ '<rss version="2.0">' +
54+ '<channel>' +
55+ '<title>Linkless feed</title>' +
56+ '<link>http://example.com/</link>' +
57+ '<description>Feed with linkless items</description>' +
58+ '<item>' +
59+ '<title>One</title>' +
60+ '<guid>http://example.com/posts/one</guid>' +
61+ '</item>' +
62+ '</channel>' +
63+ '</rss>' ;
64+
65+ feedparser
66+ . once ( 'readable' , function ( ) {
67+ var item = this . read ( ) ;
68+ assert . equal ( item . guid , 'http://example.com/posts/one' ) ;
69+ assert . equal ( item . link , 'http://example.com/posts/one' ) ;
70+ done ( ) ;
71+ } )
72+ . on ( 'error' , function ( err ) {
73+ assert . ifError ( err ) ;
74+ done ( err ) ;
75+ } ) ;
76+
77+ feedparser . end ( feed ) ;
78+ } ) ;
79+
80+ it ( 'should not infer item link from guid when guidlink is false (issue #293)' , function ( done ) {
81+ var feedparser = new FeedParser ( { guidlink : false } ) ;
82+ var feed = '<?xml version="1.0" encoding="UTF-8"?>' +
83+ '<rss version="2.0">' +
84+ '<channel>' +
85+ '<title>Linkless feed</title>' +
86+ '<link>http://example.com/</link>' +
87+ '<description>Feed with linkless items</description>' +
88+ '<item>' +
89+ '<title>One</title>' +
90+ '<guid>http://example.com/posts/one</guid>' +
91+ '</item>' +
92+ '</channel>' +
93+ '</rss>' ;
94+
95+ feedparser
96+ . once ( 'readable' , function ( ) {
97+ var item = this . read ( ) ;
98+ assert . equal ( item . guid , 'http://example.com/posts/one' ) ;
99+ assert . equal ( item . link , null ) ;
100+ done ( ) ;
101+ } )
102+ . on ( 'error' , function ( err ) {
103+ assert . ifError ( err ) ;
104+ done ( err ) ;
105+ } ) ;
106+
107+ feedparser . end ( feed ) ;
108+ } ) ;
109+
50110} ) ;
0 commit comments