diff options
Diffstat (limited to 'test/rss/test_1.0.rb')
-rw-r--r-- | test/rss/test_1.0.rb | 81 |
1 files changed, 65 insertions, 16 deletions
diff --git a/test/rss/test_1.0.rb b/test/rss/test_1.0.rb index b905ba6e94..9cb7607590 100644 --- a/test/rss/test_1.0.rb +++ b/test/rss/test_1.0.rb @@ -19,8 +19,8 @@ module RSS standalone = false rdf = RDF.new(version, encoding, standalone) - - doc = REXML::Document.new(rdf.to_s(false)) + setup_rss10(rdf) + doc = REXML::Document.new(rdf.to_s) xmldecl = doc.xml_decl @@ -59,16 +59,31 @@ module RSS link = "http://hoge.com" description = "fugafugafugafuga" resource = "http://hoge.com/hoge.png" + + item_title = "item title" + item_link = "http://hoge.com/item" + image = RDF::Channel::Image.new(resource) items = RDF::Channel::Items.new + items.Seq.lis << items.class::Seq::Li.new(item_link) textinput = RDF::Channel::Textinput.new(resource) - + + rss_item = RDF::Item.new + rss_item.title = item_title + rss_item.link = item_link + rss_item.about = item_link + channel = RDF::Channel.new(about) %w(title link description image items textinput).each do |x| channel.__send__("#{x}=", instance_eval(x)) end - doc = REXML::Document.new(make_RDF(channel.to_s)) + doc = REXML::Document.new(make_RDF(<<-EOR)) +#{channel} +<items> +#{rss_item} +</items> +EOR c = doc.root.elements[1] assert_equal(about, c.attributes["about"]) @@ -123,8 +138,12 @@ module RSS assert_equal(resource, res.value) end - def test_items + def test_channel_items + item_link = "http://example.com/item" + items = RDF::Channel::Items.new + li = items.Seq.class::Li.new(item_link) + items.Seq.lis << li doc = REXML::Document.new(make_RDF(items.to_s)) i = doc.root.elements[1] @@ -133,18 +152,34 @@ module RSS assert_equal(@uri, i.namespace) assert_equal(1, i.elements.size) - assert_equal("Seq", i.elements[1].name) - assert_equal(@rdf_uri, i.elements[1].namespace) + seq = i.elements[1] + assert_equal("Seq", seq.name) + assert_equal(@rdf_uri, seq.namespace) + + assert_equal(1, seq.elements.size) + l = seq.elements[1] + assert_equal("li", l.name) + assert_equal(@rdf_uri, l.namespace) + assert_equal(item_link, l.attributes["resource"]) end def test_seq + item_link = "http://example.com/item" seq = RDF::Seq.new + li = seq.class::Li.new(item_link) + seq.lis << li doc = REXML::Document.new(make_RDF(seq.to_s)) s = doc.root.elements[1] assert_equal("Seq", s.name) assert_equal(@rdf_uri, s.namespace) + + assert_equal(1, s.elements.size) + l = s.elements[1] + assert_equal("li", l.name) + assert_equal(@rdf_uri, l.namespace) + assert_equal(item_link, l.attributes["resource"]) end def test_li @@ -233,15 +268,29 @@ module RSS end end - def test_indent_size - assert_equal(0, RDF.indent_size) - assert_equal(1, RDF::Channel.indent_size) - assert_equal(2, RDF::Channel::Image.indent_size) - assert_equal(2, RDF::Channel::Textinput.indent_size) - assert_equal(2, RDF::Channel::Items.indent_size) - assert_equal(1, RDF::Image.indent_size) - assert_equal(1, RDF::Item.indent_size) - assert_equal(1, RDF::Textinput.indent_size) + def test_to_xml + rss = RSS::Parser.parse(make_sample_RDF) + assert_equal(rss.to_s, rss.to_xml) + assert_equal(rss.to_s, rss.to_xml("1.0")) + rss09 = rss.to_xml("0.91") do |maker| + maker.channel.language = "en-us" + end + rss09 = RSS::Parser.parse(rss09) + assert_equal("0.91", rss09.rss_version) + assert_equal(["rss", "0.91", nil], rss09.feed_info) + rss20 = RSS::Parser.parse(rss.to_xml("2.0")) + assert_equal("2.0", rss20.rss_version) + assert_equal(["rss", "2.0", nil], rss20.feed_info) + + atom_xml = rss.to_xml("atom") do |maker| + maker.channel.author = "Alice" + maker.channel.updated ||= Time.now + maker.items.each do |item| + item.updated ||= Time.now + end + end + atom = RSS::Parser.parse(atom_xml) + assert_equal(["atom", "1.0", "feed"], atom.feed_info) end end end |