rss-nokogiri 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/.gemtest +0 -0
  2. data/.gitignore +19 -0
  3. data/.gitmodules +3 -0
  4. data/BSDL +22 -0
  5. data/COPYING +56 -0
  6. data/COPYING.ja +51 -0
  7. data/Gemfile +4 -0
  8. data/LEGAL +8 -0
  9. data/README.markdown +51 -0
  10. data/Rakefile +12 -0
  11. data/lib/rss/nokogiri.rb +92 -0
  12. data/rss-nokogiri.gemspec +24 -0
  13. data/test/regression/dot.png +0 -0
  14. data/test/regression/rss-assertions.rb +2090 -0
  15. data/test/regression/rss-testcase.rb +478 -0
  16. data/test/regression/test_1.0.rb +295 -0
  17. data/test/regression/test_2.0.rb +409 -0
  18. data/test/regression/test_accessor.rb +103 -0
  19. data/test/regression/test_atom.rb +681 -0
  20. data/test/regression/test_content.rb +104 -0
  21. data/test/regression/test_dublincore.rb +279 -0
  22. data/test/regression/test_image.rb +214 -0
  23. data/test/regression/test_inherit.rb +40 -0
  24. data/test/regression/test_itunes.rb +347 -0
  25. data/test/regression/test_maker_0.9.rb +474 -0
  26. data/test/regression/test_maker_1.0.rb +516 -0
  27. data/test/regression/test_maker_2.0.rb +757 -0
  28. data/test/regression/test_maker_atom_entry.rb +393 -0
  29. data/test/regression/test_maker_atom_feed.rb +454 -0
  30. data/test/regression/test_maker_content.rb +47 -0
  31. data/test/regression/test_maker_dc.rb +149 -0
  32. data/test/regression/test_maker_image.rb +62 -0
  33. data/test/regression/test_maker_itunes.rb +471 -0
  34. data/test/regression/test_maker_slash.rb +37 -0
  35. data/test/regression/test_maker_sy.rb +44 -0
  36. data/test/regression/test_maker_taxo.rb +81 -0
  37. data/test/regression/test_maker_trackback.rb +41 -0
  38. data/test/regression/test_maker_xml-stylesheet.rb +83 -0
  39. data/test/regression/test_parser.rb +62 -0
  40. data/test/regression/test_parser_1.0.rb +528 -0
  41. data/test/regression/test_parser_2.0.rb +122 -0
  42. data/test/regression/test_parser_atom_entry.rb +163 -0
  43. data/test/regression/test_parser_atom_feed.rb +276 -0
  44. data/test/regression/test_setup_maker_0.9.rb +246 -0
  45. data/test/regression/test_setup_maker_1.0.rb +550 -0
  46. data/test/regression/test_setup_maker_2.0.rb +308 -0
  47. data/test/regression/test_setup_maker_atom_entry.rb +409 -0
  48. data/test/regression/test_setup_maker_atom_feed.rb +445 -0
  49. data/test/regression/test_setup_maker_itunes.rb +144 -0
  50. data/test/regression/test_setup_maker_slash.rb +38 -0
  51. data/test/regression/test_slash.rb +64 -0
  52. data/test/regression/test_syndication.rb +125 -0
  53. data/test/regression/test_taxonomy.rb +172 -0
  54. data/test/regression/test_to_s.rb +670 -0
  55. data/test/regression/test_trackback.rb +135 -0
  56. data/test/regression/test_version.rb +9 -0
  57. data/test/regression/test_xml-stylesheet.rb +108 -0
  58. metadata +220 -0
@@ -0,0 +1,757 @@
1
+ require "rss-testcase"
2
+
3
+ require "rss/maker"
4
+
5
+ module RSS
6
+ class TestMaker20 < TestCase
7
+ def test_supported?
8
+ assert(RSS::Maker.supported?("2.0"))
9
+ assert(RSS::Maker.supported?("rss2.0"))
10
+ assert(!RSS::Maker.supported?("2.2"))
11
+ assert(!RSS::Maker.supported?("rss2.2"))
12
+ end
13
+
14
+ def test_find_class
15
+ assert_equal(RSS::Maker::RSS20, RSS::Maker["2.0"])
16
+ assert_equal(RSS::Maker::RSS20, RSS::Maker["rss2.0"])
17
+ end
18
+
19
+ def test_rss
20
+ assert_raise(LocalJumpError) do
21
+ RSS::Maker.make("2.0")
22
+ end
23
+
24
+ rss = RSS::Maker.make("2.0") do |maker|
25
+ setup_dummy_channel(maker)
26
+ end
27
+ assert_equal("2.0", rss.rss_version)
28
+
29
+ rss = RSS::Maker.make("2.0") do |maker|
30
+ setup_dummy_channel(maker)
31
+
32
+ maker.encoding = "EUC-JP"
33
+ end
34
+ assert_equal("2.0", rss.rss_version)
35
+ assert_equal("EUC-JP", rss.encoding)
36
+
37
+ rss = RSS::Maker.make("2.0") do |maker|
38
+ setup_dummy_channel(maker)
39
+
40
+ maker.standalone = "yes"
41
+ end
42
+ assert_equal("2.0", rss.rss_version)
43
+ assert_equal("yes", rss.standalone)
44
+
45
+ rss = RSS::Maker.make("2.0") do |maker|
46
+ setup_dummy_channel(maker)
47
+
48
+ maker.encoding = "EUC-JP"
49
+ maker.standalone = "yes"
50
+ end
51
+ assert_equal("2.0", rss.rss_version)
52
+ assert_equal("EUC-JP", rss.encoding)
53
+ assert_equal("yes", rss.standalone)
54
+ end
55
+
56
+ def test_channel
57
+ title = "fugafuga"
58
+ link = "http://hoge.com"
59
+ description = "fugafugafugafuga"
60
+ language = "ja"
61
+ copyright = "foo"
62
+ managingEditor = "bar"
63
+ webMaster = "web master"
64
+ rating = '(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l gen true comment "RSACi North America Server" for "http://www.rsac.org" on "1996.04.16T08:15-0500" r (n 0 s 0 v 0 l 0))'
65
+ docs = "http://foo.com/doc"
66
+ skipDays = [
67
+ "Sunday",
68
+ "Monday",
69
+ ]
70
+ skipHours = [
71
+ "0",
72
+ "13",
73
+ ]
74
+ pubDate = Time.now
75
+ lastBuildDate = Time.now
76
+ categories = [
77
+ "Nespapers",
78
+ "misc",
79
+ ]
80
+ generator = "RSS Maker"
81
+ ttl = "60"
82
+
83
+ rss = RSS::Maker.make("2.0") do |maker|
84
+ maker.channel.title = title
85
+ maker.channel.link = link
86
+ maker.channel.description = description
87
+ maker.channel.language = language
88
+ maker.channel.copyright = copyright
89
+ maker.channel.managingEditor = managingEditor
90
+ maker.channel.webMaster = webMaster
91
+ maker.channel.rating = rating
92
+ maker.channel.docs = docs
93
+ maker.channel.pubDate = pubDate
94
+ maker.channel.lastBuildDate = lastBuildDate
95
+
96
+ skipDays.each do |day|
97
+ maker.channel.skipDays.new_day do |new_day|
98
+ new_day.content = day
99
+ end
100
+ end
101
+ skipHours.each do |hour|
102
+ maker.channel.skipHours.new_hour do |new_hour|
103
+ new_hour.content = hour
104
+ end
105
+ end
106
+
107
+ categories.each do |category|
108
+ maker.channel.categories.new_category do |new_category|
109
+ new_category.content = category
110
+ end
111
+ end
112
+
113
+ maker.channel.generator = generator
114
+ maker.channel.ttl = ttl
115
+ end
116
+ channel = rss.channel
117
+
118
+ assert_equal(title, channel.title)
119
+ assert_equal(link, channel.link)
120
+ assert_equal(description, channel.description)
121
+ assert_equal(language, channel.language)
122
+ assert_equal(copyright, channel.copyright)
123
+ assert_equal(managingEditor, channel.managingEditor)
124
+ assert_equal(webMaster, channel.webMaster)
125
+ assert_equal(rating, channel.rating)
126
+ assert_equal(docs, channel.docs)
127
+ assert_equal(pubDate, channel.pubDate)
128
+ assert_equal(pubDate, channel.date)
129
+ assert_equal(lastBuildDate, channel.lastBuildDate)
130
+
131
+ skipDays.each_with_index do |day, i|
132
+ assert_equal(day, channel.skipDays.days[i].content)
133
+ end
134
+ skipHours.each_with_index do |hour, i|
135
+ assert_equal(hour.to_i, channel.skipHours.hours[i].content)
136
+ end
137
+
138
+ channel.categories.each_with_index do |category, i|
139
+ assert_equal(categories[i], category.content)
140
+ end
141
+
142
+ assert_equal(generator, channel.generator)
143
+ assert_equal(ttl.to_i, channel.ttl)
144
+
145
+ assert(channel.items.empty?)
146
+ assert_nil(channel.image)
147
+ assert_nil(channel.textInput)
148
+ end
149
+
150
+ def test_not_valid_channel
151
+ title = "fugafuga"
152
+ link = "http://hoge.com"
153
+ description = "fugafugafugafuga"
154
+ language = "ja"
155
+
156
+ assert_not_set_error("maker.channel", %w(title)) do
157
+ RSS::Maker.make("2.0") do |maker|
158
+ # maker.channel.title = title
159
+ maker.channel.link = link
160
+ maker.channel.description = description
161
+ maker.channel.language = language
162
+ end
163
+ end
164
+
165
+ assert_not_set_error("maker.channel", %w(link)) do
166
+ RSS::Maker.make("2.0") do |maker|
167
+ maker.channel.title = title
168
+ # maker.channel.link = link
169
+ maker.channel.description = description
170
+ maker.channel.language = language
171
+ end
172
+ end
173
+
174
+ assert_not_set_error("maker.channel", %w(description)) do
175
+ RSS::Maker.make("2.0") do |maker|
176
+ maker.channel.title = title
177
+ maker.channel.link = link
178
+ # maker.channel.description = description
179
+ maker.channel.language = language
180
+ end
181
+ end
182
+
183
+ rss = RSS::Maker.make("2.0") do |maker|
184
+ maker.channel.title = title
185
+ maker.channel.link = link
186
+ maker.channel.description = description
187
+ # maker.channel.language = language
188
+ end
189
+ assert_not_nil(rss)
190
+ end
191
+
192
+
193
+ def test_cloud
194
+ domain = "rpc.sys.com"
195
+ port = "80"
196
+ path = "/RPC2"
197
+ registerProcedure = "myCloud.rssPleaseNotify"
198
+ protocol = "xml-rpc"
199
+
200
+ rss = RSS::Maker.make("2.0") do |maker|
201
+ setup_dummy_channel(maker)
202
+
203
+ maker.channel.cloud.domain = domain
204
+ maker.channel.cloud.port = port
205
+ maker.channel.cloud.path = path
206
+ maker.channel.cloud.registerProcedure = registerProcedure
207
+ maker.channel.cloud.protocol = protocol
208
+ end
209
+ cloud = rss.channel.cloud
210
+ assert_equal(domain, cloud.domain)
211
+ assert_equal(port.to_i, cloud.port)
212
+ assert_equal(path, cloud.path)
213
+ assert_equal(registerProcedure, cloud.registerProcedure)
214
+ assert_equal(protocol, cloud.protocol)
215
+ end
216
+
217
+ def test_not_valid_cloud
218
+ domain = "rpc.sys.com"
219
+ port = "80"
220
+ path = "/RPC2"
221
+ registerProcedure = "myCloud.rssPleaseNotify"
222
+ protocol = "xml-rpc"
223
+
224
+ rss = RSS::Maker.make("2.0") do |maker|
225
+ setup_dummy_channel(maker)
226
+
227
+ # maker.channel.cloud.domain = domain
228
+ maker.channel.cloud.port = port
229
+ maker.channel.cloud.path = path
230
+ maker.channel.cloud.registerProcedure = registerProcedure
231
+ maker.channel.cloud.protocol = protocol
232
+ end
233
+ assert_nil(rss.channel.cloud)
234
+
235
+ rss = RSS::Maker.make("2.0") do |maker|
236
+ setup_dummy_channel(maker)
237
+
238
+ maker.channel.cloud.domain = domain
239
+ # maker.channel.cloud.port = port
240
+ maker.channel.cloud.path = path
241
+ maker.channel.cloud.registerProcedure = registerProcedure
242
+ maker.channel.cloud.protocol = protocol
243
+ end
244
+ assert_nil(rss.channel.cloud)
245
+
246
+ rss = RSS::Maker.make("2.0") do |maker|
247
+ setup_dummy_channel(maker)
248
+
249
+ maker.channel.cloud.domain = domain
250
+ maker.channel.cloud.port = port
251
+ # maker.channel.cloud.path = path
252
+ maker.channel.cloud.registerProcedure = registerProcedure
253
+ maker.channel.cloud.protocol = protocol
254
+ end
255
+ assert_nil(rss.channel.cloud)
256
+
257
+ rss = RSS::Maker.make("2.0") do |maker|
258
+ setup_dummy_channel(maker)
259
+
260
+ maker.channel.cloud.domain = domain
261
+ maker.channel.cloud.port = port
262
+ maker.channel.cloud.path = path
263
+ # maker.channel.cloud.registerProcedure = registerProcedure
264
+ maker.channel.cloud.protocol = protocol
265
+ end
266
+ assert_nil(rss.channel.cloud)
267
+
268
+ rss = RSS::Maker.make("2.0") do |maker|
269
+ setup_dummy_channel(maker)
270
+
271
+ maker.channel.cloud.domain = domain
272
+ maker.channel.cloud.port = port
273
+ maker.channel.cloud.path = path
274
+ maker.channel.cloud.registerProcedure = registerProcedure
275
+ # maker.channel.cloud.protocol = protocol
276
+ end
277
+ assert_nil(rss.channel.cloud)
278
+ end
279
+
280
+
281
+ def test_image
282
+ title = "fugafuga"
283
+ link = "http://hoge.com"
284
+ url = "http://hoge.com/hoge.png"
285
+ width = "144"
286
+ height = "400"
287
+ description = "an image"
288
+
289
+ rss = RSS::Maker.make("2.0") do |maker|
290
+ setup_dummy_channel(maker)
291
+ maker.channel.link = link
292
+
293
+ maker.image.title = title
294
+ maker.image.url = url
295
+ maker.image.width = width
296
+ maker.image.height = height
297
+ maker.image.description = description
298
+ end
299
+ image = rss.image
300
+ assert_equal(title, image.title)
301
+ assert_equal(link, image.link)
302
+ assert_equal(url, image.url)
303
+ assert_equal(width.to_i, image.width)
304
+ assert_equal(height.to_i, image.height)
305
+ assert_equal(description, image.description)
306
+
307
+ assert_not_set_error("maker.channel", %w(title description)) do
308
+ RSS::Maker.make("2.0") do |maker|
309
+ # setup_dummy_channel(maker)
310
+ maker.channel.link = link
311
+
312
+ maker.image.title = title
313
+ maker.image.url = url
314
+ maker.image.width = width
315
+ maker.image.height = height
316
+ maker.image.description = description
317
+ end
318
+ end
319
+ end
320
+
321
+ def test_not_valid_image
322
+ title = "fugafuga"
323
+ link = "http://hoge.com"
324
+ url = "http://hoge.com/hoge.png"
325
+ width = "144"
326
+ height = "400"
327
+ description = "an image"
328
+
329
+ rss = RSS::Maker.make("2.0") do |maker|
330
+ setup_dummy_channel(maker)
331
+ maker.channel.link = link
332
+
333
+ # maker.image.title = title
334
+ maker.image.url = url
335
+ maker.image.width = width
336
+ maker.image.height = height
337
+ maker.image.description = description
338
+ end
339
+ assert_nil(rss.image)
340
+
341
+ assert_not_set_error("maker.channel", %w(link)) do
342
+ RSS::Maker.make("2.0") do |maker|
343
+ setup_dummy_channel(maker)
344
+ # maker.channel.link = link
345
+ maker.channel.link = nil
346
+
347
+ maker.image.title = title
348
+ maker.image.url = url
349
+ maker.image.width = width
350
+ maker.image.height = height
351
+ maker.image.description = description
352
+ end
353
+ end
354
+
355
+ rss = RSS::Maker.make("2.0") do |maker|
356
+ setup_dummy_channel(maker)
357
+ maker.channel.link = link
358
+
359
+ maker.image.title = title
360
+ # maker.image.url = url
361
+ maker.image.width = width
362
+ maker.image.height = height
363
+ maker.image.description = description
364
+ end
365
+ assert_nil(rss.image)
366
+ end
367
+
368
+ def test_items(with_convenience_way=true)
369
+ title = "TITLE"
370
+ link = "http://hoge.com/"
371
+ description = "text hoge fuga"
372
+ author = "oprah@oxygen.net"
373
+ comments = "http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290"
374
+ pubDate = Time.now
375
+
376
+ rss = RSS::Maker.make("2.0") do |maker|
377
+ setup_dummy_channel(maker)
378
+ end
379
+ assert(rss.channel.items.empty?)
380
+
381
+ item_size = 5
382
+ rss = RSS::Maker.make("2.0") do |maker|
383
+ setup_dummy_channel(maker)
384
+
385
+ item_size.times do |i|
386
+ maker.items.new_item do |item|
387
+ item.title = "#{title}#{i}"
388
+ item.link = "#{link}#{i}"
389
+ item.description = "#{description}#{i}"
390
+ item.author = "#{author}#{i}"
391
+ item.comments = "#{comments}#{i}"
392
+ item.date = pubDate
393
+ end
394
+ end
395
+ maker.items.do_sort = true
396
+ end
397
+ assert_equal(item_size, rss.items.size)
398
+ rss.channel.items.each_with_index do |item, i|
399
+ assert_equal("#{title}#{i}", item.title)
400
+ assert_equal("#{link}#{i}", item.link)
401
+ assert_equal("#{description}#{i}", item.description)
402
+ assert_equal("#{author}#{i}", item.author)
403
+ assert_equal("#{comments}#{i}", item.comments)
404
+ assert_equal(pubDate, item.pubDate)
405
+ assert_equal(pubDate, item.date)
406
+ end
407
+
408
+ rss = RSS::Maker.make("2.0") do |maker|
409
+ setup_dummy_channel(maker)
410
+
411
+ item_size.times do |i|
412
+ maker.items.new_item do |item|
413
+ item.title = "#{title}#{i}"
414
+ item.link = "#{link}#{i}"
415
+ item.description = "#{description}#{i}"
416
+ item.author = "#{author}#{i}"
417
+ item.comments = "#{comments}#{i}"
418
+ item.date = pubDate
419
+ end
420
+ end
421
+ maker.items.do_sort = Proc.new do |x, y|
422
+ if with_convenience_way
423
+ y.title[-1] <=> x.title[-1]
424
+ else
425
+ y.title {|t| t.content[-1]} <=> x.title {|t| t.content[-1]}
426
+ end
427
+ end
428
+ end
429
+ assert_equal(item_size, rss.items.size)
430
+ rss.channel.items.reverse.each_with_index do |item, i|
431
+ assert_equal("#{title}#{i}", item.title)
432
+ assert_equal("#{link}#{i}", item.link)
433
+ assert_equal("#{description}#{i}", item.description)
434
+ assert_equal("#{author}#{i}", item.author)
435
+ assert_equal("#{comments}#{i}", item.comments)
436
+ assert_equal(pubDate, item.pubDate)
437
+ assert_equal(pubDate, item.date)
438
+ end
439
+ end
440
+
441
+ def test_items_with_new_api_since_018
442
+ test_items(false)
443
+ end
444
+
445
+ def test_pubDate_without_description
446
+ title = "TITLE"
447
+ link = "http://hoge.com/"
448
+ description = "text hoge fuga"
449
+ author = "oprah@oxygen.net"
450
+ pubDate = Time.now
451
+
452
+ rss = RSS::Maker.make("2.0") do |maker|
453
+ setup_dummy_channel(maker)
454
+
455
+ maker.items.new_item do |item|
456
+ item.title = title
457
+ item.link = link
458
+ # item.description = description
459
+ item.author = author
460
+ item.pubDate = pubDate
461
+ end
462
+ end
463
+ assert_equal(1, rss.items.size)
464
+ rss.channel.items.each_with_index do |item, i|
465
+ assert_equal(title, item.title)
466
+ assert_equal(link, item.link)
467
+ # assert_equal(description, item.description)
468
+ assert_equal(author, item.author)
469
+ assert_equal(pubDate, item.pubDate)
470
+ assert_equal(pubDate, item.date)
471
+ end
472
+ end
473
+
474
+ def test_guid
475
+ isPermaLink = "true"
476
+ content = "http://inessential.com/2002/09/01.php#a2"
477
+
478
+ rss = RSS::Maker.make("2.0") do |maker|
479
+ setup_dummy_channel(maker)
480
+ setup_dummy_item(maker)
481
+
482
+ guid = maker.items.last.guid
483
+ guid.isPermaLink = isPermaLink
484
+ guid.content = content
485
+ end
486
+ guid = rss.channel.items.last.guid
487
+ assert_equal(isPermaLink == "true", guid.isPermaLink)
488
+ assert_equal(content, guid.content)
489
+ end
490
+
491
+ def test_guid_permanent_link
492
+ content = "http://inessential.com/2002/09/01.php#a2"
493
+
494
+ rss = RSS::Maker.make("2.0") do |maker|
495
+ setup_dummy_channel(maker)
496
+ setup_dummy_item(maker)
497
+
498
+ guid = maker.items.last.guid
499
+ assert_equal(nil, guid.permanent_link?)
500
+ assert_equal(guid.isPermaLink, guid.permanent_link?)
501
+ guid.permanent_link = true
502
+ assert_equal(true, guid.permanent_link?)
503
+ assert_equal(guid.isPermaLink, guid.permanent_link?)
504
+ guid.content = content
505
+ end
506
+ guid = rss.channel.items.last.guid
507
+ assert_equal(true, guid.isPermaLink)
508
+ assert_equal(content, guid.content)
509
+ end
510
+
511
+ def test_guid_permanent_link_false
512
+ content = "http://inessential.com/2002/09/01.php#a2"
513
+
514
+ rss = RSS::Maker.make("2.0") do |maker|
515
+ setup_dummy_channel(maker)
516
+ setup_dummy_item(maker)
517
+
518
+ guid = maker.items.last.guid
519
+ assert_equal(nil, guid.permanent_link?)
520
+ assert_equal(guid.isPermaLink, guid.permanent_link?)
521
+ guid.permanent_link = false
522
+ assert_equal(false, guid.permanent_link?)
523
+ assert_equal(guid.isPermaLink, guid.permanent_link?)
524
+ guid.content = content
525
+ end
526
+ guid = rss.channel.items.last.guid
527
+ assert_equal(false, guid.isPermaLink)
528
+ assert_equal(content, guid.content)
529
+ end
530
+
531
+ def test_not_valid_guid
532
+ content = "http://inessential.com/2002/09/01.php#a2"
533
+
534
+ rss = RSS::Maker.make("2.0") do |maker|
535
+ setup_dummy_channel(maker)
536
+ setup_dummy_item(maker)
537
+
538
+ guid = maker.items.last.guid
539
+ # guid.content = content
540
+ end
541
+ assert_nil(rss.channel.items.last.guid)
542
+ end
543
+
544
+ def test_enclosure
545
+ url = "http://www.scripting.com/mp3s/weatherReportSuite.mp3"
546
+ length = "12216320"
547
+ type = "audio/mpeg"
548
+
549
+ rss = RSS::Maker.make("2.0") do |maker|
550
+ setup_dummy_channel(maker)
551
+ setup_dummy_item(maker)
552
+
553
+ enclosure = maker.items.last.enclosure
554
+ enclosure.url = url
555
+ enclosure.length = length
556
+ enclosure.type = type
557
+ end
558
+ enclosure = rss.channel.items.last.enclosure
559
+ assert_equal(url, enclosure.url)
560
+ assert_equal(length.to_i, enclosure.length)
561
+ assert_equal(type, enclosure.type)
562
+ end
563
+
564
+ def test_not_valid_enclosure
565
+ url = "http://www.scripting.com/mp3s/weatherReportSuite.mp3"
566
+ length = "12216320"
567
+ type = "audio/mpeg"
568
+
569
+ rss = RSS::Maker.make("2.0") do |maker|
570
+ setup_dummy_channel(maker)
571
+ setup_dummy_item(maker)
572
+
573
+ enclosure = maker.items.last.enclosure
574
+ # enclosure.url = url
575
+ enclosure.length = length
576
+ enclosure.type = type
577
+ end
578
+ assert_nil(rss.channel.items.last.enclosure)
579
+
580
+ rss = RSS::Maker.make("2.0") do |maker|
581
+ setup_dummy_channel(maker)
582
+ setup_dummy_item(maker)
583
+
584
+ enclosure = maker.items.last.enclosure
585
+ enclosure.url = url
586
+ # enclosure.length = length
587
+ enclosure.type = type
588
+ end
589
+ assert_nil(rss.channel.items.last.enclosure)
590
+
591
+ rss = RSS::Maker.make("2.0") do |maker|
592
+ setup_dummy_channel(maker)
593
+ setup_dummy_item(maker)
594
+
595
+ enclosure = maker.items.last.enclosure
596
+ enclosure.url = url
597
+ enclosure.length = length
598
+ # enclosure.type = type
599
+ end
600
+ assert_nil(rss.channel.items.last.enclosure)
601
+ end
602
+
603
+
604
+ def test_source
605
+ url = "http://static.userland.com/tomalak/links2.xml"
606
+ content = "Tomalak's Realm"
607
+
608
+ rss = RSS::Maker.make("2.0") do |maker|
609
+ setup_dummy_channel(maker)
610
+ setup_dummy_item(maker)
611
+
612
+ source = maker.items.last.source
613
+ source.url = url
614
+ source.content = content
615
+ end
616
+ source = rss.channel.items.last.source
617
+ assert_equal(url, source.url)
618
+ assert_equal(content, source.content)
619
+ end
620
+
621
+ def test_not_valid_source
622
+ url = "http://static.userland.com/tomalak/links2.xml"
623
+ content = "Tomalak's Realm"
624
+
625
+ rss = RSS::Maker.make("2.0") do |maker|
626
+ setup_dummy_channel(maker)
627
+ setup_dummy_item(maker)
628
+
629
+ source = maker.items.last.source
630
+ # source.url = url
631
+ source.content = content
632
+ end
633
+ assert_nil(rss.channel.items.last.source)
634
+
635
+ rss = RSS::Maker.make("2.0") do |maker|
636
+ setup_dummy_channel(maker)
637
+ setup_dummy_item(maker)
638
+
639
+ source = maker.items.last.source
640
+ source.url = url
641
+ # source.content = content
642
+ end
643
+ assert_nil(rss.channel.items.last.source)
644
+ end
645
+
646
+ def test_category
647
+ domain = "http://www.fool.com/cusips"
648
+ content = "MSFT"
649
+
650
+ rss = RSS::Maker.make("2.0") do |maker|
651
+ setup_dummy_channel(maker)
652
+ setup_dummy_item(maker)
653
+
654
+ maker.items.last.categories.new_category do |category|
655
+ category.domain = domain
656
+ category.content = content
657
+ end
658
+ end
659
+ category = rss.channel.items.last.categories.last
660
+ assert_equal(domain, category.domain)
661
+ assert_equal(content, category.content)
662
+ end
663
+
664
+ def test_not_valid_category
665
+ content = "Grateful Dead"
666
+
667
+ rss = RSS::Maker.make("2.0") do |maker|
668
+ setup_dummy_channel(maker)
669
+ setup_dummy_item(maker)
670
+
671
+ maker.items.last.categories.new_category do |category|
672
+ # category.content = content
673
+ end
674
+ end
675
+ assert(rss.channel.items.last.categories.empty?)
676
+ end
677
+
678
+ def test_textInput
679
+ title = "fugafuga"
680
+ description = "text hoge fuga"
681
+ name = "hoge"
682
+ link = "http://hoge.com"
683
+
684
+ rss = RSS::Maker.make("2.0") do |maker|
685
+ setup_dummy_channel(maker)
686
+
687
+ maker.textinput.title = title
688
+ maker.textinput.description = description
689
+ maker.textinput.name = name
690
+ maker.textinput.link = link
691
+ end
692
+ textInput = rss.channel.textInput
693
+ assert_equal(title, textInput.title)
694
+ assert_equal(description, textInput.description)
695
+ assert_equal(name, textInput.name)
696
+ assert_equal(link, textInput.link)
697
+
698
+ assert_not_set_error("maker.channel", %w(link description title)) do
699
+ RSS::Maker.make("2.0") do |maker|
700
+ # setup_dummy_channel(maker)
701
+
702
+ maker.textinput.title = title
703
+ maker.textinput.description = description
704
+ maker.textinput.name = name
705
+ maker.textinput.link = link
706
+ end
707
+ end
708
+ end
709
+
710
+ def test_not_valid_textInput
711
+ title = "fugafuga"
712
+ description = "text hoge fuga"
713
+ name = "hoge"
714
+ link = "http://hoge.com"
715
+
716
+ rss = RSS::Maker.make("2.0") do |maker|
717
+ setup_dummy_channel(maker)
718
+
719
+ # maker.textinput.title = title
720
+ maker.textinput.description = description
721
+ maker.textinput.name = name
722
+ maker.textinput.link = link
723
+ end
724
+ assert_nil(rss.channel.textInput)
725
+
726
+ rss = RSS::Maker.make("2.0") do |maker|
727
+ setup_dummy_channel(maker)
728
+
729
+ maker.textinput.title = title
730
+ # maker.textinput.description = description
731
+ maker.textinput.name = name
732
+ maker.textinput.link = link
733
+ end
734
+ assert_nil(rss.channel.textInput)
735
+
736
+ rss = RSS::Maker.make("2.0") do |maker|
737
+ setup_dummy_channel(maker)
738
+
739
+ maker.textinput.title = title
740
+ maker.textinput.description = description
741
+ # maker.textinput.name = name
742
+ maker.textinput.link = link
743
+ end
744
+ assert_nil(rss.channel.textInput)
745
+
746
+ rss = RSS::Maker.make("2.0") do |maker|
747
+ setup_dummy_channel(maker)
748
+
749
+ maker.textinput.title = title
750
+ maker.textinput.description = description
751
+ maker.textinput.name = name
752
+ # maker.textinput.link = link
753
+ end
754
+ assert_nil(rss.channel.textInput)
755
+ end
756
+ end
757
+ end