feedtools 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/rakefile CHANGED
@@ -7,7 +7,7 @@ require 'rake/gempackagetask'
7
7
  require 'rake/contrib/rubyforgepublisher'
8
8
 
9
9
  PKG_NAME = 'feedtools'
10
- PKG_VERSION = '0.2.3'
10
+ PKG_VERSION = '0.2.4'
11
11
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
12
12
 
13
13
  RELEASE_NAME = "REL #{PKG_VERSION}"
data/test/cdf_test.rb ADDED
@@ -0,0 +1,121 @@
1
+ require 'test/unit'
2
+ require 'feed_tools'
3
+
4
+ class CdfTest < Test::Unit::TestCase
5
+ def setup
6
+ FeedTools.tidy_enabled = false
7
+ end
8
+
9
+ def test_feed_title
10
+ feed = FeedTools::Feed.new
11
+ feed.xml_data = <<-FEED
12
+ <CHANNEL>
13
+ <TITLE>Example Title</TITLE>
14
+ </CHANNEL>
15
+ FEED
16
+ assert_equal("Example Title", feed.title)
17
+ assert_equal(false, feed.bozo?)
18
+ feed = FeedTools::Feed.open(
19
+ 'http://feedparser.org/tests/wellformed/cdf/channel_title.xml')
20
+ assert_equal("Example feed", feed.title)
21
+ assert_equal(false, feed.bozo?)
22
+ end
23
+
24
+ def test_feed_description
25
+ feed = FeedTools::Feed.open(
26
+ 'http://feedparser.org/tests/wellformed/cdf/' +
27
+ 'channel_abstract_map_description.xml')
28
+ assert_equal("Example description", feed.description)
29
+ assert_equal(false, feed.bozo?)
30
+ feed = FeedTools::Feed.open(
31
+ 'http://feedparser.org/tests/wellformed/cdf/' +
32
+ 'channel_abstract_map_tagline.xml')
33
+ assert_equal("Example description", feed.tagline)
34
+ assert_equal(false, feed.bozo?)
35
+ end
36
+
37
+ def test_feed_href
38
+ feed = FeedTools::Feed.new
39
+ feed.xml_data = <<-FEED
40
+ <CHANNEL HREF="http://www.example.com/">
41
+ </CHANNEL>
42
+ FEED
43
+ assert_equal("http://www.example.com/", feed.link)
44
+ assert_equal(false, feed.bozo?)
45
+ feed = FeedTools::Feed.open(
46
+ 'http://feedparser.org/tests/wellformed/cdf/channel_href_map_link.xml')
47
+ assert_equal("http://www.example.org/", feed.link)
48
+ assert_equal(false, feed.bozo?)
49
+ end
50
+
51
+ def test_feed_links
52
+ # TODO
53
+ end
54
+
55
+ def test_feed_images
56
+ feed = FeedTools::Feed.new
57
+ feed.xml_data = <<-FEED
58
+ <CHANNEL>
59
+ <LOGO HREF="http://www.example.com/exampleicon.gif" STYLE="ICON" />
60
+ <LOGO HREF="http://www.example.com/exampleimage.gif" STYLE="IMAGE" />
61
+ </CHANNEL>
62
+ FEED
63
+ assert_equal("http://www.example.com/exampleicon.gif", feed.images[0].url)
64
+ assert_equal("icon", feed.images[0].style)
65
+ assert_equal("http://www.example.com/exampleimage.gif", feed.images[1].url)
66
+ assert_equal("image", feed.images[1].style)
67
+ assert_equal(false, feed.bozo?)
68
+ end
69
+
70
+ def test_feed_item_title
71
+ feed = FeedTools::Feed.open(
72
+ 'http://feedparser.org/tests/wellformed/cdf/item_title.xml')
73
+ assert_equal("Example item", feed.items.first.title)
74
+ assert_equal(false, feed.bozo?)
75
+ end
76
+
77
+ def test_feed_item_description
78
+ feed = FeedTools::Feed.open(
79
+ 'http://feedparser.org/tests/wellformed/cdf/' +
80
+ 'item_abstract_map_description.xml')
81
+ assert_equal("Example description", feed.items.first.description)
82
+ assert_equal(false, feed.bozo?)
83
+ feed = FeedTools::Feed.open(
84
+ 'http://feedparser.org/tests/wellformed/cdf/' +
85
+ 'item_abstract_map_summary.xml')
86
+ assert_equal("Example description", feed.items.first.summary)
87
+ assert_equal(false, feed.bozo?)
88
+ end
89
+
90
+ def test_feed_item_href
91
+ feed = FeedTools::Feed.open(
92
+ 'http://feedparser.org/tests/wellformed/cdf/item_href_map_link.xml')
93
+ assert_equal("http://www.example.org/", feed.items.first.link)
94
+ assert_equal(false, feed.bozo?)
95
+ end
96
+
97
+ def test_feed_item_links
98
+ # TODO
99
+ end
100
+
101
+ def test_feed_item_images
102
+ feed = FeedTools::Feed.new
103
+ feed.xml_data = <<-FEED
104
+ <CHANNEL>
105
+ <ITEM HREF="http://www.example.com/item">
106
+ <LOGO HREF="http://www.example.com/exampleicon.gif" STYLE="ICON" />
107
+ <LOGO HREF="http://www.example.com/exampleimage.gif" STYLE="IMAGE" />
108
+ </ITEM>
109
+ </CHANNEL>
110
+ FEED
111
+ assert_equal("http://www.example.com/item",
112
+ feed.items.first.link)
113
+ assert_equal("http://www.example.com/exampleicon.gif",
114
+ feed.items.first.images[0].url)
115
+ assert_equal("icon", feed.items.first.images[0].style)
116
+ assert_equal("http://www.example.com/exampleimage.gif",
117
+ feed.items.first.images[1].url)
118
+ assert_equal("image", feed.items.first.images[1].style)
119
+ assert_equal(false, feed.bozo?)
120
+ end
121
+ end
data/test/helper_test.rb CHANGED
@@ -22,7 +22,9 @@ class HelperTest < Test::Unit::TestCase
22
22
 
23
23
  def test_tidy_html
24
24
  FeedTools.tidy_enabled = true
25
-
25
+ unless FeedTools.tidy_enabled?
26
+ puts "\nCould not test tidy support. Libtidy couldn't be found."
27
+ end
26
28
 
27
29
  FeedTools.tidy_enabled = false
28
30
  end
data/test/rss_test.rb CHANGED
@@ -29,11 +29,16 @@ class RssTest < Test::Unit::TestCase
29
29
  'http://feedparser.org/tests/wellformed/rss/channel_title_lt.xml')
30
30
  assert_equal("1 < 2", feed.title)
31
31
  assert_equal(false, feed.bozo?)
32
+ feed = FeedTools::Feed.open(
33
+ 'http://feedparser.org/tests/wellformed/rss/channel_dc_title.xml')
34
+ assert_equal("Example title", feed.title)
35
+ assert_equal(false, feed.bozo?)
32
36
  end
33
37
 
34
38
  def test_feed_description
35
39
  feed = FeedTools::Feed.open(
36
40
  'http://feedparser.org/tests/wellformed/rss/channel_description.xml')
41
+ assert_equal(nil, feed.title)
37
42
  assert_equal("Example description", feed.description)
38
43
  assert_equal(false, feed.bozo?)
39
44
  feed = FeedTools::Feed.open(
@@ -59,6 +64,13 @@ class RssTest < Test::Unit::TestCase
59
64
  assert_equal(false, feed.bozo?)
60
65
  end
61
66
 
67
+ def test_feed_link
68
+ feed = FeedTools::Feed.open(
69
+ 'http://feedparser.org/tests/wellformed/rss/channel_link.xml')
70
+ assert_equal('http://example.com/', feed.link)
71
+ assert_equal(false, feed.bozo?)
72
+ end
73
+
62
74
  def test_feed_generator
63
75
  feed = FeedTools::Feed.open(
64
76
  'http://feedparser.org/tests/wellformed/rss/channel_generator.xml')
@@ -80,58 +92,6 @@ class RssTest < Test::Unit::TestCase
80
92
  assert_equal(false, feed.bozo?)
81
93
  end
82
94
 
83
- def test_item_content
84
- feed = FeedTools::Feed.open(
85
- 'http://feedparser.org/tests/wellformed/rss/item_content_encoded.xml')
86
- assert_equal('<p>Example content</p>', feed.entries.first.content)
87
- assert_equal(false, feed.bozo?)
88
- end
89
-
90
- def test_item_description
91
- feed = FeedTools::Feed.open(
92
- 'http://feedparser.org/tests/wellformed/rss/item_description.xml')
93
- assert_equal('Example description', feed.entries.first.description)
94
- assert_equal(false, feed.bozo?)
95
- feed = FeedTools::Feed.open(
96
- 'http://feedparser.org/tests/wellformed/rss/' +
97
- 'item_description_escaped_markup.xml')
98
- assert_equal('<p>Example description</p>', feed.entries.first.description)
99
- assert_equal(false, feed.bozo?)
100
- feed = FeedTools::Feed.open(
101
- 'http://feedparser.org/tests/wellformed/rss/' +
102
- 'item_description_map_summary.xml')
103
- assert_equal('Example description', feed.entries.first.description)
104
- assert_equal(false, feed.bozo?)
105
- feed = FeedTools::Feed.open(
106
- 'http://feedparser.org/tests/wellformed/rss/' +
107
- 'item_description_naked_markup.xml')
108
- assert_equal('<p>Example description</p>', feed.entries.first.description)
109
- assert_equal(false, feed.bozo?)
110
- feed = FeedTools::Feed.open(
111
- 'http://feedparser.org/tests/wellformed/rss/' +
112
- 'item_description_not_a_doctype.xml')
113
- assert_equal('&lt;!\' <a href="foo">', feed.entries.first.description)
114
- assert_equal(false, feed.bozo?)
115
- end
116
-
117
- def test_item_guid
118
- feed = FeedTools::Feed.open(
119
- 'http://feedparser.org/tests/wellformed/rss/item_guid.xml')
120
- assert_equal('http://guid.example.com/', feed.entries.first.guid)
121
- assert_equal(false, feed.bozo?)
122
- feed = FeedTools::Feed.open(
123
- 'http://feedparser.org/tests/wellformed/rss/' +
124
- 'item_guid_conflict_link.xml')
125
- assert_equal('http://guid.example.com/', feed.entries.first.guid)
126
- assert_equal('http://link.example.com/', feed.entries.first.link)
127
- assert_equal(false, feed.bozo?)
128
- feed = FeedTools::Feed.open(
129
- 'http://feedparser.org/tests/wellformed/rss/item_guid_guidislink.xml')
130
- assert_equal('http://guid.example.com/', feed.entries.first.guid)
131
- assert_equal('http://guid.example.com/', feed.entries.first.link)
132
- assert_equal(false, feed.bozo?)
133
- end
134
-
135
95
  def test_feed_author
136
96
  feed = FeedTools::Feed.open(
137
97
  'http://feedparser.org/tests/wellformed/rss/channel_author.xml')
@@ -186,6 +146,21 @@ class RssTest < Test::Unit::TestCase
186
146
  assert_equal("me@example.com", feed.author.email)
187
147
  assert_equal(nil, feed.author.url)
188
148
  assert_equal(false, feed.bozo?)
149
+ feed = FeedTools::Feed.open(
150
+ 'http://feedparser.org/tests/wellformed/rss/channel_managingEditor.xml')
151
+ assert_equal("Example editor", feed.author.raw)
152
+ assert_equal("Example editor", feed.author.name)
153
+ assert_equal(nil, feed.author.email)
154
+ assert_equal(nil, feed.author.url)
155
+ assert_equal(false, feed.bozo?)
156
+ feed = FeedTools::Feed.open(
157
+ 'http://feedparser.org/tests/wellformed/rss' +
158
+ '/channel_managingEditor_map_author_detail_email.xml')
159
+ assert_equal("Example editor (me@example.com)", feed.author.raw)
160
+ assert_equal("Example editor", feed.author.name)
161
+ assert_equal("me@example.com", feed.author.email)
162
+ assert_equal(nil, feed.author.url)
163
+ assert_equal(false, feed.bozo?)
189
164
  end
190
165
 
191
166
  def test_feed_publisher
@@ -204,6 +179,68 @@ class RssTest < Test::Unit::TestCase
204
179
  assert_equal("me@example.com", feed.publisher.email)
205
180
  assert_equal(nil, feed.publisher.url)
206
181
  assert_equal(false, feed.bozo?)
182
+ feed = FeedTools::Feed.open(
183
+ 'http://feedparser.org/tests/wellformed/rss/channel_webMaster.xml')
184
+ assert_equal("Example editor", feed.publisher.raw)
185
+ assert_equal("Example editor", feed.publisher.name)
186
+ assert_equal(nil, feed.publisher.email)
187
+ assert_equal(nil, feed.publisher.url)
188
+ assert_equal(false, feed.bozo?)
189
+ feed = FeedTools::Feed.open(
190
+ 'http://feedparser.org/tests/wellformed/rss/' +
191
+ 'channel_webMaster_email.xml')
192
+ assert_equal("Example editor (me@example.com)", feed.publisher.raw)
193
+ assert_equal("Example editor", feed.publisher.name)
194
+ assert_equal("me@example.com", feed.publisher.email)
195
+ assert_equal(nil, feed.publisher.url)
196
+ assert_equal(false, feed.bozo?)
197
+ end
198
+
199
+ def test_feed_categories
200
+ feed = FeedTools::Feed.open(
201
+ 'http://feedparser.org/tests/wellformed/rss/channel_category.xml')
202
+ assert_equal(1, feed.categories.size)
203
+ assert_equal("Example category", feed.categories.first.value)
204
+ assert_equal(false, feed.bozo?)
205
+ feed = FeedTools::Feed.open(
206
+ 'http://feedparser.org/tests/wellformed/rss/' +
207
+ 'channel_category_domain.xml')
208
+ assert_equal(1, feed.categories.size)
209
+ assert_equal("Example category", feed.categories.first.value)
210
+ assert_equal("http://www.example.com/", feed.categories.first.domain)
211
+ assert_equal(false, feed.bozo?)
212
+ feed = FeedTools::Feed.open(
213
+ 'http://feedparser.org/tests/wellformed/rss/' +
214
+ 'channel_category_multiple.xml')
215
+ assert_equal(2, feed.categories.size)
216
+ assert_equal("Example category 1", feed.categories[0].value)
217
+ assert_equal("http://www.example.com/1", feed.categories[0].domain)
218
+ assert_equal("Example category 2", feed.categories[1].value)
219
+ assert_equal("http://www.example.com/2", feed.categories[1].domain)
220
+ assert_equal(false, feed.bozo?)
221
+ feed = FeedTools::Feed.open(
222
+ 'http://feedparser.org/tests/wellformed/rss/' +
223
+ 'channel_category_multiple_2.xml')
224
+ assert_equal(2, feed.categories.size)
225
+ assert_equal("Example category 1", feed.categories[0].value)
226
+ assert_equal(nil, feed.categories[0].domain)
227
+ assert_equal("Example category 2", feed.categories[1].value)
228
+ assert_equal(nil, feed.categories[1].domain)
229
+ assert_equal(false, feed.bozo?)
230
+ feed = FeedTools::Feed.open(
231
+ 'http://feedparser.org/tests/wellformed/rss/channel_dc_subject.xml')
232
+ assert_equal(1, feed.categories.size)
233
+ assert_equal("Example category", feed.categories.first.value)
234
+ assert_equal(false, feed.bozo?)
235
+ feed = FeedTools::Feed.open(
236
+ 'http://feedparser.org/tests/wellformed/rss/' +
237
+ 'channel_dc_subject_multiple.xml')
238
+ assert_equal(2, feed.categories.size)
239
+ assert_equal("Example category 1", feed.categories[0].value)
240
+ assert_equal(nil, feed.categories[0].domain)
241
+ assert_equal("Example category 2", feed.categories[1].value)
242
+ assert_equal(nil, feed.categories[1].domain)
243
+ assert_equal(false, feed.bozo?)
207
244
  end
208
245
 
209
246
  def test_feed_copyright
@@ -227,4 +264,395 @@ class RssTest < Test::Unit::TestCase
227
264
  assert_equal("xml-rpc", feed.cloud.protocol)
228
265
  assert_equal(false, feed.bozo?)
229
266
  end
267
+
268
+ def test_feed_time_to_live
269
+ feed = FeedTools::Feed.open(
270
+ 'http://feedparser.org/tests/wellformed/rss/channel_ttl.xml')
271
+ assert_equal(1.hour, feed.time_to_live)
272
+ assert_equal(false, feed.bozo?)
273
+ end
274
+
275
+ def test_feed_images
276
+ feed = FeedTools::Feed.open(
277
+ 'http://feedparser.org/tests/wellformed/rss/' +
278
+ 'channel_image_description.xml')
279
+ assert_equal("Sample image", feed.images.first.title)
280
+ assert_equal("Available in Netscape RSS 0.91",
281
+ feed.images.first.description)
282
+ assert_equal("http://example.org/url", feed.images.first.url)
283
+ assert_equal("http://example.org/link", feed.images.first.link)
284
+ assert_equal(80, feed.images.first.width)
285
+ assert_equal(15, feed.images.first.height)
286
+ assert_equal(false, feed.bozo?)
287
+ end
288
+
289
+ def test_feed_text_input
290
+ feed = FeedTools::Feed.open(
291
+ 'http://feedparser.org/tests/wellformed/rss/' +
292
+ 'channel_textInput_description.xml')
293
+ assert_equal("Real title", feed.title)
294
+ assert_equal("Real description", feed.description)
295
+ assert_equal("textInput title", feed.text_input.title)
296
+ assert_equal("textInput description", feed.text_input.description)
297
+ assert_equal(nil, feed.text_input.link)
298
+ assert_equal(nil, feed.text_input.name)
299
+ assert_equal(false, feed.bozo?)
300
+ feed = FeedTools::Feed.open(
301
+ 'http://feedparser.org/tests/wellformed/rss/channel_textInput_link.xml')
302
+ assert_equal("http://channel.example.com/", feed.link)
303
+ assert_equal("http://textinput.example.com/", feed.text_input.link)
304
+ assert_equal(nil, feed.text_input.title)
305
+ assert_equal(nil, feed.text_input.description)
306
+ assert_equal(nil, feed.text_input.name)
307
+ assert_equal(false, feed.bozo?)
308
+ feed = FeedTools::Feed.open(
309
+ 'http://feedparser.org/tests/wellformed/rss/channel_textInput_name.xml')
310
+ assert_equal("textinput name", feed.text_input.name)
311
+ assert_equal(nil, feed.text_input.title)
312
+ assert_equal(nil, feed.text_input.description)
313
+ assert_equal(nil, feed.text_input.link)
314
+ assert_equal(false, feed.bozo?)
315
+ end
316
+
317
+ def test_item_title
318
+ feed = FeedTools::Feed.open(
319
+ 'http://feedparser.org/tests/wellformed/rss/item_title.xml')
320
+ assert_equal("Item 1 title", feed.items.first.title)
321
+ assert_equal(nil, feed.items.first.description)
322
+ assert_equal(false, feed.bozo?)
323
+ feed = FeedTools::Feed.open(
324
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_title.xml')
325
+ assert_equal("Example title", feed.items.first.title)
326
+ assert_equal(nil, feed.items.first.description)
327
+ assert_equal(false, feed.bozo?)
328
+ end
329
+
330
+ def test_item_description
331
+ feed = FeedTools::Feed.open(
332
+ 'http://feedparser.org/tests/wellformed/rss/item_description.xml')
333
+ assert_equal('Example description', feed.entries.first.description)
334
+ assert_equal(nil, feed.entries.first.title)
335
+ assert_equal(false, feed.bozo?)
336
+ feed = FeedTools::Feed.open(
337
+ 'http://feedparser.org/tests/wellformed/rss/' +
338
+ 'item_description_escaped_markup.xml')
339
+ assert_equal('<p>Example description</p>', feed.entries.first.description)
340
+ assert_equal(nil, feed.entries.first.title)
341
+ assert_equal(false, feed.bozo?)
342
+ feed = FeedTools::Feed.open(
343
+ 'http://feedparser.org/tests/wellformed/rss/' +
344
+ 'item_description_map_summary.xml')
345
+ assert_equal('Example description', feed.entries.first.description)
346
+ assert_equal(nil, feed.entries.first.title)
347
+ assert_equal(false, feed.bozo?)
348
+ feed = FeedTools::Feed.open(
349
+ 'http://feedparser.org/tests/wellformed/rss/' +
350
+ 'item_description_naked_markup.xml')
351
+ assert_equal('<p>Example description</p>', feed.entries.first.description)
352
+ assert_equal(nil, feed.entries.first.title)
353
+ assert_equal(false, feed.bozo?)
354
+ feed = FeedTools::Feed.open(
355
+ 'http://feedparser.org/tests/wellformed/rss/' +
356
+ 'item_description_not_a_doctype.xml')
357
+ assert_equal('&lt;!\' <a href="foo">', feed.entries.first.description)
358
+ assert_equal(nil, feed.entries.first.title)
359
+ assert_equal(false, feed.bozo?)
360
+ feed = FeedTools::Feed.open(
361
+ 'http://feedparser.org/tests/wellformed/rss/item_content_encoded.xml')
362
+ assert_equal('<p>Example content</p>', feed.entries.first.content)
363
+ assert_equal(nil, feed.entries.first.title)
364
+ assert_equal(false, feed.bozo?)
365
+ feed = FeedTools::Feed.open(
366
+ 'http://feedparser.org/tests/wellformed/rss/item_fullitem.xml')
367
+ assert_equal('<p>Example content</p>', feed.entries.first.content)
368
+ assert_equal(nil, feed.entries.first.title)
369
+ assert_equal(false, feed.bozo?)
370
+ feed = FeedTools::Feed.open(
371
+ 'http://feedparser.org/tests/wellformed/rss/item_xhtml_body.xml')
372
+ assert_equal('<p>Example content</p>', feed.entries.first.description)
373
+ assert_equal(nil, feed.entries.first.title)
374
+ assert_equal(false, feed.bozo?)
375
+ end
376
+
377
+ def test_item_link
378
+ feed = FeedTools::Feed.open(
379
+ 'http://feedparser.org/tests/wellformed/rss/item_link.xml')
380
+ assert_equal('http://example.com/', feed.entries.first.link)
381
+ assert_equal(nil, feed.entries.first.title)
382
+ assert_equal(nil, feed.entries.first.description)
383
+ assert_equal(false, feed.bozo?)
384
+ end
385
+
386
+ def test_item_guid
387
+ feed = FeedTools::Feed.open(
388
+ 'http://feedparser.org/tests/wellformed/rss/item_guid.xml')
389
+ assert_equal('http://guid.example.com/', feed.entries.first.guid)
390
+ assert_equal(false, feed.bozo?)
391
+ feed = FeedTools::Feed.open(
392
+ 'http://feedparser.org/tests/wellformed/rss/' +
393
+ 'item_guid_conflict_link.xml')
394
+ assert_equal('http://guid.example.com/', feed.entries.first.guid)
395
+ assert_equal('http://link.example.com/', feed.entries.first.link)
396
+ assert_equal(false, feed.bozo?)
397
+ feed = FeedTools::Feed.open(
398
+ 'http://feedparser.org/tests/wellformed/rss/item_guid_guidislink.xml')
399
+ assert_equal('http://guid.example.com/', feed.entries.first.guid)
400
+ assert_equal('http://guid.example.com/', feed.entries.first.link)
401
+ assert_equal(false, feed.bozo?)
402
+ feed = FeedTools::Feed.open(
403
+ 'http://feedparser.org/tests/wellformed/rss/' +
404
+ 'item_guid_isPermaLink_map_link.xml')
405
+ assert_equal('http://guid.example.com/', feed.entries.first.guid)
406
+ assert_equal('http://guid.example.com/', feed.entries.first.link)
407
+ assert_equal(false, feed.bozo?)
408
+ end
409
+
410
+ def test_item_author
411
+ feed = FeedTools::Feed.open(
412
+ 'http://feedparser.org/tests/wellformed/rss/item_author.xml')
413
+ assert_equal("Example editor", feed.items.first.author.raw)
414
+ assert_equal("Example editor", feed.items.first.author.name)
415
+ assert_equal(nil, feed.items.first.author.email)
416
+ assert_equal(nil, feed.items.first.author.url)
417
+ assert_equal(false, feed.bozo?)
418
+ feed = FeedTools::Feed.open(
419
+ 'http://feedparser.org/tests/wellformed/rss/' +
420
+ 'item_author_map_author_detail_email.xml')
421
+ assert_equal("Example editor (me@example.com)",
422
+ feed.items.first.author.raw)
423
+ assert_equal("Example editor", feed.items.first.author.name)
424
+ assert_equal("me@example.com", feed.items.first.author.email)
425
+ assert_equal(nil, feed.items.first.author.url)
426
+ assert_equal(false, feed.bozo?)
427
+ feed = FeedTools::Feed.open(
428
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_author.xml')
429
+ assert_equal("Example editor", feed.items.first.author.raw)
430
+ assert_equal("Example editor", feed.items.first.author.name)
431
+ assert_equal(nil, feed.items.first.author.email)
432
+ assert_equal(nil, feed.items.first.author.url)
433
+ assert_equal(false, feed.bozo?)
434
+ feed = FeedTools::Feed.open(
435
+ 'http://feedparser.org/tests/wellformed/rss/' +
436
+ 'item_dc_author_map_author_detail_email.xml')
437
+ assert_equal("Example editor (me@example.com)",
438
+ feed.items.first.author.raw)
439
+ assert_equal("Example editor", feed.items.first.author.name)
440
+ assert_equal("me@example.com", feed.items.first.author.email)
441
+ assert_equal(nil, feed.items.first.author.url)
442
+ assert_equal(false, feed.bozo?)
443
+ feed = FeedTools::Feed.open(
444
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_creator.xml')
445
+ assert_equal("Example editor", feed.items.first.author.raw)
446
+ assert_equal("Example editor", feed.items.first.author.name)
447
+ assert_equal(nil, feed.items.first.author.email)
448
+ assert_equal(nil, feed.items.first.author.url)
449
+ assert_equal(false, feed.bozo?)
450
+ feed = FeedTools::Feed.open(
451
+ 'http://feedparser.org/tests/wellformed/rss/' +
452
+ 'item_dc_creator_map_author_detail_email.xml')
453
+ assert_equal("Example editor (me@example.com)",
454
+ feed.items.first.author.raw)
455
+ assert_equal("Example editor", feed.items.first.author.name)
456
+ assert_equal("me@example.com", feed.items.first.author.email)
457
+ assert_equal(nil, feed.items.first.author.url)
458
+ assert_equal(false, feed.bozo?)
459
+ end
460
+
461
+ def test_item_publisher
462
+ feed = FeedTools::Feed.open(
463
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_publisher.xml')
464
+ assert_equal("Example editor", feed.items.first.publisher.raw)
465
+ assert_equal("Example editor", feed.items.first.publisher.name)
466
+ assert_equal(nil, feed.items.first.publisher.email)
467
+ assert_equal(nil, feed.items.first.publisher.url)
468
+ assert_equal(false, feed.bozo?)
469
+ feed = FeedTools::Feed.open(
470
+ 'http://feedparser.org/tests/wellformed/rss/' +
471
+ 'item_dc_publisher_email.xml')
472
+ assert_equal("Example editor (me@example.com)", feed.items.first.publisher.raw)
473
+ assert_equal("Example editor", feed.items.first.publisher.name)
474
+ assert_equal("me@example.com", feed.items.first.publisher.email)
475
+ assert_equal(nil, feed.items.first.publisher.url)
476
+ assert_equal(false, feed.bozo?)
477
+ end
478
+
479
+ def test_item_categories
480
+ feed = FeedTools::Feed.open(
481
+ 'http://feedparser.org/tests/wellformed/rss/item_category.xml')
482
+ assert_equal(1, feed.items.first.categories.size)
483
+ assert_equal("Example category", feed.items.first.categories.first.value)
484
+ assert_equal(false, feed.bozo?)
485
+ feed = FeedTools::Feed.open(
486
+ 'http://feedparser.org/tests/wellformed/rss/' +
487
+ 'item_category_domain.xml')
488
+ assert_equal(1, feed.items.first.categories.size)
489
+ assert_equal("Example category", feed.items.first.categories.first.value)
490
+ assert_equal("http://www.example.com/",
491
+ feed.items.first.categories.first.domain)
492
+ assert_equal(false, feed.bozo?)
493
+ feed = FeedTools::Feed.open(
494
+ 'http://feedparser.org/tests/wellformed/rss/' +
495
+ 'item_category_multiple.xml')
496
+ assert_equal(2, feed.items.first.categories.size)
497
+ assert_equal("Example category 1",
498
+ feed.items.first.categories[0].value)
499
+ assert_equal("http://www.example.com/1",
500
+ feed.items.first.categories[0].domain)
501
+ assert_equal("Example category 2",
502
+ feed.items.first.categories[1].value)
503
+ assert_equal("http://www.example.com/2",
504
+ feed.items.first.categories[1].domain)
505
+ assert_equal(false, feed.bozo?)
506
+ feed = FeedTools::Feed.open(
507
+ 'http://feedparser.org/tests/wellformed/rss/' +
508
+ 'item_category_multiple_2.xml')
509
+ assert_equal(2, feed.items.first.categories.size)
510
+ assert_equal("Example category 1",
511
+ feed.items.first.categories[0].value)
512
+ assert_equal(nil, feed.items.first.categories[0].domain)
513
+ assert_equal("Example category 2",
514
+ feed.items.first.categories[1].value)
515
+ assert_equal(nil, feed.items.first.categories[1].domain)
516
+ assert_equal(false, feed.bozo?)
517
+ feed = FeedTools::Feed.open(
518
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_subject.xml')
519
+ assert_equal(1, feed.items.first.categories.size)
520
+ assert_equal("Example category", feed.items.first.categories.first.value)
521
+ assert_equal(false, feed.bozo?)
522
+ feed = FeedTools::Feed.open(
523
+ 'http://feedparser.org/tests/wellformed/rss/' +
524
+ 'item_dc_subject_multiple.xml')
525
+ assert_equal(2, feed.items.first.categories.size)
526
+ assert_equal("Example category 1", feed.items.first.categories[0].value)
527
+ assert_equal(nil, feed.items.first.categories[0].domain)
528
+ assert_equal("Example category 2", feed.items.first.categories[1].value)
529
+ assert_equal(nil, feed.items.first.categories[1].domain)
530
+ assert_equal(false, feed.bozo?)
531
+ end
532
+
533
+ def test_item_copyright
534
+ feed = FeedTools::Feed.open(
535
+ 'http://feedparser.org/tests/wellformed/rss/item_dc_rights.xml')
536
+ assert_equal("Example copyright", feed.items.first.copyright)
537
+ assert_equal(false, feed.bozo?)
538
+ end
539
+
540
+ def test_item_comments
541
+ feed = FeedTools::Feed.open(
542
+ 'http://feedparser.org/tests/wellformed/rss/item_comments.xml')
543
+ assert_equal("http://example.com/", feed.items.first.comments)
544
+ assert_equal(false, feed.bozo?)
545
+ end
546
+
547
+ def test_item_enclosures
548
+ feed = FeedTools::Feed.open(
549
+ 'http://feedparser.org/tests/wellformed/rss/item_enclosure_length.xml')
550
+ assert_equal("http://example.com/", feed.items.first.link)
551
+ assert_equal("http://example.com/",
552
+ feed.items.first.enclosures[0].link)
553
+ assert_equal(100000, feed.items.first.enclosures[0].file_size)
554
+ assert_equal("image/jpeg", feed.items.first.enclosures[0].type)
555
+ assert_equal(nil, feed.items.first.title)
556
+ assert_equal(nil, feed.items.first.description)
557
+ assert_equal(false, feed.bozo?)
558
+ feed = FeedTools::Feed.open(
559
+ 'http://feedparser.org/tests/wellformed/rss/' +
560
+ 'item_enclosure_multiple.xml')
561
+ assert_equal("http://example.com/", feed.items.first.link)
562
+ assert_equal("http://example.com/1",
563
+ feed.items.first.enclosures[0].link)
564
+ assert_equal(100000, feed.items.first.enclosures[0].file_size)
565
+ assert_equal("image/jpeg", feed.items.first.enclosures[0].type)
566
+ assert_equal("http://example.com/2",
567
+ feed.items.first.enclosures[1].link)
568
+ assert_equal(200000, feed.items.first.enclosures[1].file_size)
569
+ assert_equal("image/gif", feed.items.first.enclosures[1].type)
570
+ assert_equal(nil, feed.items.first.title)
571
+ assert_equal(nil, feed.items.first.description)
572
+ assert_equal(false, feed.bozo?)
573
+ end
574
+
575
+ def test_item_source
576
+ feed = FeedTools::Feed.open(
577
+ 'http://feedparser.org/tests/wellformed/rss/item_source.xml')
578
+ assert_equal("http://example.com/", feed.items.first.source.url)
579
+ assert_equal("Example source", feed.items.first.source.value)
580
+ assert_equal(false, feed.bozo?)
581
+ end
582
+
583
+ # This doesn't *really* test much since FeedTools isn't a namespace
584
+ # aware parser yet. Mostly it just verifies that switching namepaces
585
+ # doesn't make the feeds unreadable.
586
+ def test_namespaces
587
+ feed = FeedTools::Feed.open(
588
+ 'http://feedparser.org/tests/wellformed/rss/rss_namespace_1.xml')
589
+ assert_equal("Example description", feed.description)
590
+ assert_equal(nil, feed.title)
591
+ assert_equal(false, feed.bozo?)
592
+ feed = FeedTools::Feed.open(
593
+ 'http://feedparser.org/tests/wellformed/rss/rss_namespace_2.xml')
594
+ assert_equal("Example description", feed.description)
595
+ assert_equal(nil, feed.title)
596
+ assert_equal(false, feed.bozo?)
597
+ feed = FeedTools::Feed.open(
598
+ 'http://feedparser.org/tests/wellformed/rss/rss_namespace_3.xml')
599
+ assert_equal("Example description", feed.description)
600
+ assert_equal(nil, feed.title)
601
+ assert_equal(false, feed.bozo?)
602
+ feed = FeedTools::Feed.open(
603
+ 'http://feedparser.org/tests/wellformed/rss/rss_namespace_4.xml')
604
+ assert_equal("Example description", feed.description)
605
+ assert_equal(nil, feed.title)
606
+ assert_equal(false, feed.bozo?)
607
+ feed = FeedTools::Feed.open(
608
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_090.xml')
609
+ assert_equal("rss", feed.feed_type)
610
+ assert_equal(0.9, feed.feed_version)
611
+ assert_equal(false, feed.bozo?)
612
+ feed = FeedTools::Feed.open(
613
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_091_netscape.xml')
614
+ assert_equal("rss", feed.feed_type)
615
+ assert_equal(0.91, feed.feed_version)
616
+ assert_equal(false, feed.bozo?)
617
+ feed = FeedTools::Feed.open(
618
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_091_userland.xml')
619
+ assert_equal("rss", feed.feed_type)
620
+ assert_equal(0.91, feed.feed_version)
621
+ assert_equal(false, feed.bozo?)
622
+ feed = FeedTools::Feed.open(
623
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_092.xml')
624
+ assert_equal("rss", feed.feed_type)
625
+ assert_equal(0.92, feed.feed_version)
626
+ assert_equal(false, feed.bozo?)
627
+ feed = FeedTools::Feed.open(
628
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_093.xml')
629
+ assert_equal("rss", feed.feed_type)
630
+ assert_equal(0.93, feed.feed_version)
631
+ assert_equal(false, feed.bozo?)
632
+ feed = FeedTools::Feed.open(
633
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_094.xml')
634
+ assert_equal("rss", feed.feed_type)
635
+ assert_equal(0.94, feed.feed_version)
636
+ assert_equal(false, feed.bozo?)
637
+ feed = FeedTools::Feed.open(
638
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_20.xml')
639
+ assert_equal("rss", feed.feed_type)
640
+ assert_equal(2.0, feed.feed_version)
641
+ assert_equal(false, feed.bozo?)
642
+ feed = FeedTools::Feed.open(
643
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_201.xml')
644
+ assert_equal("rss", feed.feed_type)
645
+ assert_equal(2.0, feed.feed_version)
646
+ assert_equal(false, feed.bozo?)
647
+ feed = FeedTools::Feed.open(
648
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_21.xml')
649
+ assert_equal("rss", feed.feed_type)
650
+ assert_equal(2.0, feed.feed_version)
651
+ assert_equal(false, feed.bozo?)
652
+ feed = FeedTools::Feed.open(
653
+ 'http://feedparser.org/tests/wellformed/rss/rss_version_missing.xml')
654
+ assert_equal("rss", feed.feed_type)
655
+ assert_equal(nil, feed.feed_version)
656
+ assert_equal(false, feed.bozo?)
657
+ end
230
658
  end