summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-04-07 02:55:48 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-04-07 02:55:48 +0000
commitc3410fc1e1d4085bf8f7531a9061818cfaf7b34c (patch)
tree420ad1cf825d8bd1358fb9340078cfbaa94d6023 /test
parentf1587ee5a095e12ff3a747ffceaa53be737ede96 (diff)
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@8259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/rss/rss-assertions.rb10
-rw-r--r--test/rss/test_maker_dc.rb54
2 files changed, 62 insertions, 2 deletions
diff --git a/test/rss/rss-assertions.rb b/test/rss/rss-assertions.rb
index 569e9621d2..2636062519 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 0a4a4d42cf..92ae4055d2 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