diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-04-07 02:55:48 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-04-07 02:55:48 +0000 |
commit | b7fbf5bc69979ac3b6796517bc590f757f48f399 (patch) | |
tree | 420ad1cf825d8bd1358fb9340078cfbaa94d6023 /test/rss | |
parent | c272a3c5c2861a07c54b6ecd6793fdf98cb86fd2 (diff) | |
download | ruby-b7fbf5bc69979ac3b6796517bc590f757f48f399.tar.gz ruby-b7fbf5bc69979ac3b6796517bc590f757f48f399.tar.xz ruby-b7fbf5bc69979ac3b6796517bc590f757f48f399.zip |
* lib/rss/maker/dublincore.rb: _really_ supported multiple Dublin
Core items.
* test/rss/rss-assertions.rb (assert_multiple_dublin_core): added
an assertion for testing multiple Dublin Core items.
* test/rss/test_maker_dc.rb (test_rss10_multiple): added a test
for making multiple Dublin Core items.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rss')
-rw-r--r-- | test/rss/rss-assertions.rb | 10 | ||||
-rw-r--r-- | test/rss/test_maker_dc.rb | 54 |
2 files changed, 62 insertions, 2 deletions
diff --git a/test/rss/rss-assertions.rb b/test/rss/rss-assertions.rb index 569e9621d..263606251 100644 --- a/test/rss/rss-assertions.rb +++ b/test/rss/rss-assertions.rb @@ -394,6 +394,16 @@ module RSS end end + def assert_multiple_dublin_core(elems, target) + _wrap_assertion do + elems.each do |name, values, plural| + plural ||= "#{name}s" + actual = target.__send__("dc_#{plural}").collect{|x| x.value} + assert_equal(values, actual) + end + end + end + def assert_syndication(elems, target) _wrap_assertion do elems.each do |name, value| diff --git a/test/rss/test_maker_dc.rb b/test/rss/test_maker_dc.rb index 0a4a4d42c..92ae4055d 100644 --- a/test/rss/test_maker_dc.rb +++ b/test/rss/test_maker_dc.rb @@ -56,16 +56,66 @@ module RSS assert_dublin_core(@elements, rss.textinput) end + def test_rss10_multiple + elems = [] + @elements.each do |name, value| + plural = name.to_s + (name == :rights ? "es" : "s") + values = [value] + if name == :date + values << value + 60 + else + values << value * 2 + end + elems << [name, values, plural] + end + + rss = RSS::Maker.make("1.0") do |maker| + setup_dummy_channel(maker) + set_multiple_elements(maker.channel, elems) + + setup_dummy_image(maker) + set_multiple_elements(maker.image, elems) + + setup_dummy_item(maker) + item = maker.items.last + elems.each do |name, values, plural| + dc_elems = item.__send__("dc_#{plural}") + values.each do |value| + elem = dc_elems.__send__("new_#{name}") + elem.value = value + end + end + + setup_dummy_textinput(maker) + set_multiple_elements(maker.textinput, elems) + end + assert_multiple_dublin_core(elems, rss.channel) + assert_multiple_dublin_core(elems, rss.image) + assert_multiple_dublin_core(elems, rss.items.last) + assert_multiple_dublin_core(elems, rss.textinput) + end + private def accessor_name(name) "dc_#{name}" end - def set_elements(target) - @elements.each do |name, value| + def set_elements(target, elems=@elements) + elems.each do |name, value| target.__send__("#{accessor_name(name)}=", value) end end + def set_multiple_elements(target, elems) + elems.each do |name, values, plural| + plural ||= "#{name}s" + dc_elems = target.__send__("dc_#{plural}") + values.each do |value| + new_dc_elem = dc_elems.__send__("new_#{name}") + new_dc_elem.value = value + end + end + end + end end |