2004-10-31 17:14:21 +03:00
require " rss-testcase "
require " rss/maker "
module RSS
class TestMaker09 < TestCase
2008-12-11 15:06:26 +03:00
def test_find_class
assert_equal ( RSS :: Maker :: RSS091 , RSS :: Maker [ " 0.91 " ] )
assert_equal ( RSS :: Maker :: RSS091 , RSS :: Maker [ " rss0.91 " ] )
assert_equal ( RSS :: Maker :: RSS092 , RSS :: Maker [ " 0.9 " ] )
assert_equal ( RSS :: Maker :: RSS092 , RSS :: Maker [ " 0.92 " ] )
assert_equal ( RSS :: Maker :: RSS092 , RSS :: Maker [ " rss0.92 " ] )
end
2004-10-31 17:14:21 +03:00
def test_rss
2008-06-29 12:38:11 +04:00
assert_raise ( LocalJumpError ) do
RSS :: Maker . make ( " 0.91 " )
end
2004-10-31 17:14:21 +03:00
rss = RSS :: Maker . make ( " 0.9 " ) do | maker |
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
end
2008-02-11 11:24:18 +03:00
assert_equal ( " 0.92 " , rss . rss_version )
2004-10-31 17:14:21 +03:00
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-11-27 11:43:18 +03:00
end
assert_equal ( " 0.91 " , rss . rss_version )
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . encoding = " EUC-JP "
end
assert_equal ( " 0.91 " , rss . rss_version )
assert_equal ( " EUC-JP " , rss . encoding )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . standalone = " yes "
end
assert_equal ( " 0.91 " , rss . rss_version )
assert_equal ( " yes " , rss . standalone )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . encoding = " EUC-JP "
maker . standalone = " yes "
end
assert_equal ( " 0.91 " , rss . rss_version )
assert_equal ( " EUC-JP " , rss . encoding )
assert_equal ( " yes " , rss . standalone )
end
def test_channel
title = " fugafuga "
link = " http://hoge.com "
description = " fugafugafugafuga "
language = " ja "
copyright = " foo "
managingEditor = " bar "
webMaster = " web master "
2005-11-25 06:43:48 +03:00
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))'
2004-10-31 17:14:21 +03:00
docs = " http://foo.com/doc "
2004-11-19 11:25:25 +03:00
skipDays = [
" Sunday " ,
" Monday " ,
]
skipHours = [
2005-11-25 06:43:48 +03:00
" 0 " ,
" 13 " ,
2004-11-19 11:25:25 +03:00
]
2004-10-31 17:14:21 +03:00
pubDate = Time . now
lastBuildDate = Time . now
2007-03-17 13:13:25 +03:00
image_url = " http://example.com/logo.png "
image_title = " Logo "
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
maker . channel . title = title
maker . channel . link = link
maker . channel . description = description
maker . channel . language = language
maker . channel . copyright = copyright
maker . channel . managingEditor = managingEditor
maker . channel . webMaster = webMaster
maker . channel . rating = rating
maker . channel . docs = docs
maker . channel . pubDate = pubDate
maker . channel . lastBuildDate = lastBuildDate
2004-11-19 11:25:25 +03:00
skipDays . each do | day |
2007-03-17 13:13:25 +03:00
maker . channel . skipDays . new_day do | new_day |
new_day . content = day
end
2004-11-19 11:25:25 +03:00
end
skipHours . each do | hour |
2007-03-17 13:13:25 +03:00
maker . channel . skipHours . new_hour do | new_hour |
new_hour . content = hour
end
2004-11-19 11:25:25 +03:00
end
2007-03-17 13:13:25 +03:00
maker . image . url = image_url
maker . image . title = image_title
2004-10-31 17:14:21 +03:00
end
channel = rss . channel
assert_equal ( title , channel . title )
assert_equal ( link , channel . link )
assert_equal ( description , channel . description )
assert_equal ( language , channel . language )
assert_equal ( copyright , channel . copyright )
assert_equal ( managingEditor , channel . managingEditor )
assert_equal ( webMaster , channel . webMaster )
assert_equal ( rating , channel . rating )
assert_equal ( docs , channel . docs )
assert_equal ( pubDate , channel . pubDate )
2005-02-13 17:21:21 +03:00
assert_equal ( pubDate , channel . date )
2004-10-31 17:14:21 +03:00
assert_equal ( lastBuildDate , channel . lastBuildDate )
2004-11-19 11:25:25 +03:00
skipDays . each_with_index do | day , i |
assert_equal ( day , channel . skipDays . days [ i ] . content )
end
skipHours . each_with_index do | hour , i |
2005-11-25 06:43:48 +03:00
assert_equal ( hour . to_i , channel . skipHours . hours [ i ] . content )
2004-11-19 11:25:25 +03:00
end
2004-10-31 17:14:21 +03:00
assert ( channel . items . empty? )
2007-03-17 13:13:25 +03:00
assert_equal ( image_url , channel . image . url )
assert_equal ( image_title , channel . image . title )
assert_equal ( link , channel . image . link )
2004-10-31 17:14:21 +03:00
assert_nil ( channel . textInput )
end
def test_not_valid_channel
title = " fugafuga "
link = " http://hoge.com "
description = " fugafugafugafuga "
language = " ja "
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( title ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
# maker.channel.title = title
maker . channel . link = link
maker . channel . description = description
maker . channel . language = language
end
2004-10-31 17:14:21 +03:00
end
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( link ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
maker . channel . title = title
# maker.channel.link = link
maker . channel . link = nil
maker . channel . description = description
maker . channel . language = language
end
2004-10-31 17:14:21 +03:00
end
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( description ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
maker . channel . title = title
maker . channel . link = link
# maker.channel.description = description
maker . channel . language = language
end
2004-10-31 17:14:21 +03:00
end
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( language ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
maker . channel . title = title
maker . channel . link = link
maker . channel . description = description
# maker.channel.language = language
end
2004-10-31 17:14:21 +03:00
end
end
def test_image
title = " fugafuga "
link = " http://hoge.com "
url = " http://hoge.com/hoge.png "
2005-11-25 06:43:48 +03:00
width = " 144 "
height = " 400 "
2004-10-31 17:14:21 +03:00
description = " an image "
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
maker . channel . link = link
maker . image . title = title
maker . image . url = url
maker . image . width = width
maker . image . height = height
maker . image . description = description
end
image = rss . image
assert_equal ( title , image . title )
assert_equal ( link , image . link )
assert_equal ( url , image . url )
2005-11-25 06:43:48 +03:00
assert_equal ( width . to_i , image . width )
assert_equal ( height . to_i , image . height )
2004-10-31 17:14:21 +03:00
assert_equal ( description , image . description )
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( description title language ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
# setup_dummy_channel(maker)
maker . channel . link = link
2004-10-31 17:14:21 +03:00
2004-11-28 09:53:41 +03:00
maker . image . title = title
maker . image . url = url
maker . image . width = width
maker . image . height = height
maker . image . description = description
end
2004-10-31 17:14:21 +03:00
end
end
def test_not_valid_image
title = " fugafuga "
link = " http://hoge.com "
url = " http://hoge.com/hoge.png "
2005-11-25 06:43:48 +03:00
width = " 144 "
height = " 400 "
2004-10-31 17:14:21 +03:00
description = " an image "
2007-03-17 13:13:25 +03:00
assert_not_set_error ( " maker.image " , %w( title ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
setup_dummy_channel ( maker )
maker . channel . link = link
# maker.image.title = title
maker . image . url = url
maker . image . width = width
maker . image . height = height
maker . image . description = description
end
2004-10-31 17:14:21 +03:00
end
2004-11-28 09:53:41 +03:00
assert_not_set_error ( " maker.channel " , %w( link ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
setup_dummy_channel ( maker )
# maker.channel.link = link
maker . channel . link = nil
2004-10-31 17:14:21 +03:00
2004-11-28 09:53:41 +03:00
maker . image . title = title
maker . image . url = url
maker . image . width = width
maker . image . height = height
maker . image . description = description
end
2004-10-31 17:14:21 +03:00
end
2007-03-17 13:13:25 +03:00
assert_not_set_error ( " maker.image " , %w( url ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
setup_dummy_channel ( maker )
maker . channel . link = link
maker . image . title = title
# maker.image.url = url
maker . image . width = width
maker . image . height = height
maker . image . description = description
end
2004-10-31 17:14:21 +03:00
end
end
2007-08-05 07:03:05 +04:00
def test_items ( with_convenience_way = true )
2004-10-31 17:14:21 +03:00
title = " TITLE "
link = " http://hoge.com/ "
description = " text hoge fuga "
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
end
assert ( rss . channel . items . empty? )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
maker . items . new_item do | item |
item . title = title
item . link = link
# item.description = description
end
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
end
assert_equal ( 1 , rss . channel . items . size )
item = rss . channel . items . first
assert_equal ( title , item . title )
assert_equal ( link , item . link )
assert_nil ( item . description )
item_size = 5
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
item_size . times do | i |
2007-08-05 07:03:05 +04:00
maker . items . new_item do | _item |
_item . title = " #{ title } #{ i } "
_item . link = " #{ link } #{ i } "
_item . description = " #{ description } #{ i } "
2007-03-17 13:13:25 +03:00
end
2004-10-31 17:14:21 +03:00
end
2004-11-03 09:43:18 +03:00
maker . items . do_sort = true
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
end
assert_equal ( item_size , rss . items . size )
2007-08-05 07:03:05 +04:00
rss . channel . items . each_with_index do | _item , i |
assert_equal ( " #{ title } #{ i } " , _item . title )
assert_equal ( " #{ link } #{ i } " , _item . link )
assert_equal ( " #{ description } #{ i } " , _item . description )
2004-10-31 17:14:21 +03:00
end
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
item_size . times do | i |
2007-08-05 07:03:05 +04:00
maker . items . new_item do | _item |
_item . title = " #{ title } #{ i } "
_item . link = " #{ link } #{ i } "
_item . description = " #{ description } #{ i } "
2007-03-17 13:13:25 +03:00
end
2004-10-31 17:14:21 +03:00
end
2004-11-03 09:43:18 +03:00
maker . items . do_sort = Proc . new do | x , y |
2007-08-05 07:03:05 +04:00
if with_convenience_way
y . title [ - 1 ] < = > x . title [ - 1 ]
else
y . title { | t | t . content [ - 1 ] } < = > x . title { | t | t . content [ - 1 ] }
end
2004-10-31 17:14:21 +03:00
end
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
end
assert_equal ( item_size , rss . items . size )
2007-08-05 07:03:05 +04:00
rss . channel . items . reverse . each_with_index do | _item , i |
assert_equal ( " #{ title } #{ i } " , _item . title )
assert_equal ( " #{ link } #{ i } " , _item . link )
assert_equal ( " #{ description } #{ i } " , _item . description )
2004-10-31 17:14:21 +03:00
end
end
2007-08-05 07:03:05 +04:00
def test_items_with_new_api_since_018
test_items ( false )
end
2004-10-31 17:14:21 +03:00
def test_textInput
title = " fugafuga "
description = " text hoge fuga "
name = " hoge "
link = " http://hoge.com "
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . textinput . title = title
maker . textinput . description = description
maker . textinput . name = name
maker . textinput . link = link
end
textInput = rss . channel . textInput
assert_equal ( title , textInput . title )
assert_equal ( description , textInput . description )
assert_equal ( name , textInput . name )
assert_equal ( link , textInput . link )
2007-03-17 13:13:25 +03:00
assert_not_set_error ( " maker.channel " ,
%w( link language description title ) ) do
RSS :: Maker . make ( " 0.91 " ) do | maker |
# setup_dummy_channel(maker)
2004-10-31 17:14:21 +03:00
2007-03-17 13:13:25 +03:00
maker . textinput . title = title
maker . textinput . description = description
maker . textinput . name = name
maker . textinput . link = link
end
2004-10-31 17:14:21 +03:00
end
end
def test_not_valid_textInput
title = " fugafuga "
description = " text hoge fuga "
name = " hoge "
link = " http://hoge.com "
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
# maker.textinput.title = title
maker . textinput . description = description
maker . textinput . name = name
maker . textinput . link = link
end
assert_nil ( rss . channel . textInput )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . textinput . title = title
# maker.textinput.description = description
maker . textinput . name = name
maker . textinput . link = link
end
assert_nil ( rss . channel . textInput )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . textinput . title = title
maker . textinput . description = description
# maker.textinput.name = name
maker . textinput . link = link
end
assert_nil ( rss . channel . textInput )
2004-11-27 11:43:18 +03:00
rss = RSS :: Maker . make ( " 0.91 " ) do | maker |
2004-10-31 17:14:21 +03:00
setup_dummy_channel ( maker )
2007-03-17 13:13:25 +03:00
setup_dummy_image ( maker )
2004-10-31 17:14:21 +03:00
maker . textinput . title = title
maker . textinput . description = description
maker . textinput . name = name
# maker.textinput.link = link
end
assert_nil ( rss . channel . textInput )
end
end
end