diff options
author | Hiroshi SHIBATA <[email protected]> | 2020-01-11 21:48:06 +0900 |
---|---|---|
committer | SHIBATA Hiroshi <[email protected]> | 2020-01-12 12:28:29 +0900 |
commit | 83240f315a10b42b53c3b62c1fbc428f97912665 (patch) | |
tree | 2d17b6aded6273ecd7b2c8a27bd4accfb7bd5f2d /test/rss/test_setup_maker_atom_feed.rb | |
parent | c3ccf23d5807f2ff20127bf5e42df0977bf672fb (diff) |
Make rss library to the bundle gems
[Feature #16485][ruby-core:96683]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/2832
Diffstat (limited to 'test/rss/test_setup_maker_atom_feed.rb')
-rw-r--r-- | test/rss/test_setup_maker_atom_feed.rb | 446 |
1 files changed, 0 insertions, 446 deletions
diff --git a/test/rss/test_setup_maker_atom_feed.rb b/test/rss/test_setup_maker_atom_feed.rb deleted file mode 100644 index 2196f1a46a..0000000000 --- a/test/rss/test_setup_maker_atom_feed.rb +++ /dev/null @@ -1,446 +0,0 @@ -# frozen_string_literal: false -require_relative "rss-testcase" - -require "rss/maker" - -module RSS - class TestSetupMakerAtomFeed < TestCase - def setup - t = Time.iso8601("2000-01-01T12:00:05+00:00") - class << t - alias_method(:to_s, :iso8601) - end - - @dc_elems = { - :title => "hoge", - :description => - " XML is placing increasingly heavy loads on - the existing technical infrastructure of the Internet.", - :creator => "Rael Dornfest (mailto:[email protected])", - :subject => "XML", - :publisher => "The O'Reilly Network", - :contributor => "hogehoge", - :type => "fugafuga", - :format => "hohoho", - :identifier => "fufufu", - :source => "barbar", - :language => "ja", - :relation => "cococo", - :rights => "Copyright (c) 2000 O'Reilly & Associates, Inc.", - :date => t, - } - end - - def test_setup_maker_feed(with_dc=true) - authors = [ - { - :name => "Bob", - :uri => "http://example.com/~bob/", - :email => "[email protected]", - }, - { - :name => "Alice", - :uri => "http://example.com/~alice/", - :email => "[email protected]", - }, - ] - categories = [ - { - :term => "music", - :label => "Music", - }, - { - :term => "book", - :scheme => "http://example.com/category/book/", - :label => "Book", - }, - ] - contributors = [ - { - :name => "Chris", - :email => "[email protected]", - }, - { - :name => "Eva", - :uri => "http://example.com/~eva/", - }, - ] - generator = { - :uri => "http://example.com/generator/", - :version => "0.0.1", - :content => "Feed Generator", - } - icon = "http://example.com/icon.png" - about = "http://hoge.com" - title = "fugafuga" - link = "http://hoge.com" - logo = "http://example.com/logo.png" - rights = "Copyrights (c) 2007 Alice and Bob" - description = "fugafugafugafuga" - updated = Time.now - - feed = RSS::Maker.make("atom") do |maker| - authors.each do |author_info| - maker.channel.authors.new_author do |author| - author_info.each do |key, value| - author.__send__("#{key}=", value) - end - end - end - - categories.each do |category_info| - maker.channel.categories.new_category do |category| - category_info.each do |key, value| - category.__send__("#{key}=", value) - end - end - end - - contributors.each do |contributor_info| - maker.channel.contributors.new_contributor do |contributor| - contributor_info.each do |key, value| - contributor.__send__("#{key}=", value) - end - end - end - - generator.each do |key, value| - maker.channel.generator do |g| - g.__send__("#{key}=", value) - end - end - - maker.channel.icon = icon - - maker.channel.about = about - maker.channel.link = link - maker.channel.logo = logo - maker.channel.rights = rights - maker.channel.title = title - maker.channel.description = description - maker.channel.updated = updated - - if with_dc - @dc_elems.each do |var, value| - if var == :date - maker.channel.new_dc_date(value) - else - maker.channel.__send__("dc_#{var}=", value) - end - end - end - - setup_dummy_item_atom(maker) - end - assert_not_nil(feed) - - new_feed = RSS::Maker.make("atom") do |maker| - feed.setup_maker(maker) - end - assert_not_nil(new_feed) - - new_authors = new_feed.authors.collect do |author| - { - :name => author.name.content, - :uri => author.uri.content, - :email => author.email.content, - } - end - assert_equal(authors, new_authors) - - new_categories = new_feed.categories.collect do |category| - { - :term => category.term, - :scheme => category.scheme, - :label => category.label, - }.reject {|key, value| value.nil?} - end - assert_equal(categories, new_categories) - - new_contributors = new_feed.contributors.collect do |contributor| - info = {} - info[:name] = contributor.name.content - info[:uri] = contributor.uri.content if contributor.uri - info[:email] = contributor.email.content if contributor.email - info - end - assert_equal(contributors, new_contributors) - - new_generator = { - :uri => new_feed.generator.uri, - :version => new_feed.generator.version, - :content => new_feed.generator.content, - } - assert_equal(generator, new_generator) - - assert_equal(icon, new_feed.icon.content) - assert_equal(about, new_feed.id.content) - assert_equal(link, new_feed.link.href) - assert_equal(logo, new_feed.logo.content) - assert_equal(rights, new_feed.rights.content) - assert_equal(description, new_feed.subtitle.content) - assert_equal(title, new_feed.title.content) - assert_equal(updated, new_feed.updated.content) - - if with_dc - @dc_elems.each do |var, value| - if var == :date - assert_equal([updated, value], - new_feed.dc_dates.collect {|date| date.value}) - else - assert_equal(value, new_feed.__send__("dc_#{var}")) - end - end - end - - assert_equal(1, new_feed.items.size) - end - - def test_setup_maker_feed_without_dc - test_setup_maker_feed(false) - end - - def test_setup_maker_items(for_backward_compatibility=false) - title = "TITLE" - link = "http://hoge.com/" - description = "text hoge fuga" - updated = Time.now - - item_size = 5 - feed = RSS::Maker.make("atom") do |maker| - setup_dummy_channel_atom(maker) - - item_size.times do |i| - maker.items.new_item do |item| - item.title = "#{title}#{i}" - item.link = "#{link}#{i}" - item.description = "#{description}#{i}" - item.updated = updated + i * 60 - end - end - end - - new_feed = RSS::Maker.make("atom") do |maker| - feed.items.each do |item| - if for_backward_compatibility - item.setup_maker(maker) - else - item.setup_maker(maker.items) - end - end - - feed.items.clear - feed.setup_maker(maker) - end - - assert_equal(item_size, new_feed.items.size) - new_feed.items.each_with_index do |item, i| - assert_equal("#{title}#{i}", item.title.content) - assert_equal("#{link}#{i}", item.link.href) - assert_equal("#{description}#{i}", item.summary.content) - assert_equal(updated + i * 60, item.updated.content) - end - end - - def test_setup_maker_items_sort - title = "TITLE" - link = "http://hoge.com/" - summary = "text hoge fuga" - updated = Time.now - - feed_size = 5 - feed = RSS::Maker.make("atom") do |maker| - setup_dummy_channel_atom(maker) - - feed_size.times do |i| - entry_class = RSS::Atom::Feed::Entry - entry = entry_class.new - entry.title = entry_class::Title.new(:content => "#{title}#{i}") - entry.links << entry_class::Link.new(:href => "#{link}#{i}") - entry.summary = entry_class::Summary.new(:content => "#{summary}#{i}") - entry.updated = entry_class::Updated.new(:content => updated + i * 60) - entry.setup_maker(maker.items) - end - maker.items.do_sort = false - end - assert_equal(feed_size, feed.entries.size) - feed.entries.each_with_index do |entry, i| - assert_equal("#{title}#{i}", entry.title.content) - assert_equal("#{link}#{i}", entry.link.href) - assert_equal("#{summary}#{i}", entry.summary.content) - end - - - feed = RSS::Maker.make("atom") do |maker| - setup_dummy_channel_atom(maker) - - feed_size.times do |i| - entry_class = RSS::Atom::Feed::Entry - entry = entry_class.new - entry.title = entry_class::Title.new(:content => "#{title}#{i}") - entry.links << entry_class::Link.new(:href => "#{link}#{i}") - entry.summary = entry_class::Summary.new(:content => "#{summary}#{i}") - entry.updated = entry_class::Updated.new(:content => updated + i * 60) - entry.setup_maker(maker.items) - end - maker.items.do_sort = true - end - assert_equal(feed_size, feed.entries.size) - feed.entries.reverse.each_with_index do |entry, i| - assert_equal("#{title}#{i}", entry.title.content) - assert_equal("#{link}#{i}", entry.link.href) - assert_equal("#{summary}#{i}", entry.summary.content) - end - end - - def test_setup_maker_items_backward_compatibility - test_setup_maker_items(true) - end - - def test_setup_maker - encoding = "EUC-JP" - standalone = true - - href = 'a.xsl' - type = 'text/xsl' - title = 'sample' - media = 'printer' - charset = 'UTF-8' - alternate = 'yes' - - feed = RSS::Maker.make("atom") do |maker| - maker.encoding = encoding - maker.standalone = standalone - - maker.xml_stylesheets.new_xml_stylesheet do |xss| - xss.href = href - xss.type = type - xss.title = title - xss.media = media - xss.charset = charset - xss.alternate = alternate - end - - setup_dummy_channel_atom(maker) - setup_dummy_item_atom(maker) - end - assert_not_nil(feed) - - new_feed = RSS::Maker.make("atom") do |maker| - feed.setup_maker(maker) - end - - assert_equal(["atom", "1.0", "feed"], new_feed.feed_info) - assert_equal(encoding, new_feed.encoding) - assert_equal(standalone, new_feed.standalone) - - xss = new_feed.xml_stylesheets.first - assert_equal(1, new_feed.xml_stylesheets.size) - assert_equal(href, xss.href) - assert_equal(type, xss.type) - assert_equal(title, xss.title) - assert_equal(media, xss.media) - assert_equal(charset, xss.charset) - assert_equal(alternate, xss.alternate) - end - - def test_setup_maker_full - encoding = "EUC-JP" - standalone = true - - href = 'a.xsl' - type = 'text/xsl' - title = 'sample' - media = 'printer' - charset = 'UTF-8' - alternate = 'yes' - - channel_about = "http://hoge.com" - channel_title = "fugafuga" - channel_link = "http://hoge.com" - channel_description = "fugafugafugafuga" - channel_author = "Bob" - - image_url = "http://hoge.com/hoge.png" - - item_title = "TITLE" - item_link = "http://hoge.com/" - item_description = "text hoge fuga" - - entry_size = 5 - feed = RSS::Maker.make("atom") do |maker| - maker.encoding = encoding - maker.standalone = standalone - - maker.xml_stylesheets.new_xml_stylesheet do |xss| - xss.href = href - xss.type = type - xss.title = title - xss.media = media - xss.charset = charset - xss.alternate = alternate - end - - maker.channel.about = channel_about - maker.channel.title = channel_title - maker.channel.link = channel_link - maker.channel.description = channel_description - maker.channel.author = channel_author - @dc_elems.each do |var, value| - maker.channel.__send__("dc_#{var}=", value) - end - - maker.image.url = image_url - - entry_size.times do |i| - maker.items.new_item do |item| - item.title = "#{item_title}#{i}" - item.link = "#{item_link}#{i}" - item.description = "#{item_description}#{i}" - - @dc_elems.each do |var, value| - item.__send__("dc_#{var}=", value) - end - end - end - end - - new_feed = RSS::Maker.make("atom") do |maker| - feed.setup_maker(maker) - end - - assert_equal(["atom", "1.0", "feed"], new_feed.feed_info) - assert_equal(encoding, new_feed.encoding) - assert_equal(standalone, new_feed.standalone) - - xss = new_feed.xml_stylesheets.first - assert_equal(1, new_feed.xml_stylesheets.size) - assert_equal(href, xss.href) - assert_equal(type, xss.type) - assert_equal(title, xss.title) - assert_equal(media, xss.media) - assert_equal(charset, xss.charset) - assert_equal(alternate, xss.alternate) - - assert_equal(channel_title, new_feed.title.content) - assert_equal(channel_link, new_feed.link.href) - assert_equal(channel_description, new_feed.subtitle.content) - assert_equal(channel_author, new_feed.author.name.content) - assert_equal(image_url, new_feed.logo.content) - @dc_elems.each do |var, value| - assert_equal(value, new_feed.__send__("dc_#{var}")) - end - - assert_equal(entry_size, new_feed.entries.size) - new_feed.entries.each_with_index do |entry, i| - assert_equal("#{item_title}#{i}", entry.title.content) - assert_equal("#{item_link}#{i}", entry.link.href) - assert_equal("#{item_description}#{i}", entry.summary.content) - - @dc_elems.each do |var, value| - assert_equal(value, entry.__send__("dc_#{var}")) - end - end - end - end -end |