Submit
Path:
~
/
/
lib
/
ruby
/
gems
/
3.0.0
/
gems
/
rss-0.2.9
/
test
/
File Content:
test_taxonomy.rb
# frozen_string_literal: false require "cgi" require_relative "rss-testcase" require "rss/1.0" require "rss/2.0" require "rss/taxonomy" module RSS class TestTaxonomy < TestCase def setup @prefix = "taxo" @uri = "http://purl.org/rss/1.0/modules/taxonomy/" @dc_prefix = "dc" @dc_uri = "http://purl.org/dc/elements/1.1/" @ns = { @prefix => @uri, @dc_prefix => @dc_uri, } @topics_parents = %w(channel item) @topics_lis = [ "http://meerkat.oreillynet.com/?c=cat23", "http://meerkat.oreillynet.com/?c=47", "http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/", ] @topics_node = "<#{@prefix}:topics>\n" @topics_node << " <rdf:Bag>\n" @topics_lis.each do |value| resource = CGI.escapeHTML(value) @topics_node << " <rdf:li resource=\"#{resource}\"/>\n" end @topics_node << " </rdf:Bag>\n" @topics_node << "</#{@prefix}:topics>" @topic_topics_lis = \ [ "http://meerkat.oreillynet.com/?c=cat23", "http://dmoz.org/Computers/Data_Formats/Markup_Languages/SGML/", "http://dmoz.org/Computers/Programming/Internet/", ] @topic_contents = \ [ { :link => "http://meerkat.oreillynet.com/?c=cat23", :title => "Data: XML", :description => "A Meerkat channel", }, { :link => "http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/", :title => "XML", :subject => "XML", :description => "DMOZ category", :topics => @topic_topics_lis, } ] @topic_nodes = @topic_contents.collect do |info| link = info[:link] rv = "<#{@prefix}:topic rdf:about=\"#{link}\">\n" info.each do |name, value| case name when :topics rv << " <#{@prefix}:topics>\n" rv << " <rdf:Bag>\n" value.each do |li| resource = CGI.escapeHTML(li) rv << " <rdf:li resource=\"#{resource}\"/>\n" end rv << " </rdf:Bag>\n" rv << " </#{@prefix}:topics>\n" else prefix = (name == :link ? @prefix : @dc_prefix) rv << " <#{prefix}:#{name}>#{value}</#{prefix}:#{name}>\n" end end rv << "</#{@prefix}:topic>" end @rss_source = make_RDF(<<-EOR, @ns) #{make_channel(@topics_node)} #{make_image()} #{make_item(@topics_node)} #{make_textinput()} #{@topic_nodes.join("\n")} EOR @rss = Parser.parse(@rss_source) end def test_parser assert_nothing_raised do Parser.parse(@rss_source) end assert_too_much_tag("topics", "channel") do Parser.parse(make_RDF(<<-EOR, @ns)) #{make_channel(@topics_node * 2)} #{make_item()} EOR end assert_too_much_tag("topics", "item") do Parser.parse(make_RDF(<<-EOR, @ns)) #{make_channel()} #{make_item(@topics_node * 2)} EOR end end def test_accessor topics = @rss.channel.taxo_topics assert_equal(@topics_lis.sort, topics.Bag.lis.collect {|li| li.resource}.sort) assert_equal(@topics_lis.sort, topics.resources.sort) assert_equal(@rss.taxo_topics.first, @rss.taxo_topic) @topic_contents.each_with_index do |info, i| topic = @rss.taxo_topics[i] info.each do |name, value| case name when :link assert_equal(value, topic.about) assert_equal(value, topic.taxo_link) when :topics assert_equal(value.sort, topic.taxo_topics.resources.sort) else assert_equal(value, topic.__send__("dc_#{name}")) end end end end def test_to_s @topics_parents.each do |parent| meth = "taxo_topics_element" assert_equal(@topics_node, @rss.__send__(parent).__send__(meth)) end @topic_nodes.each_with_index do |node, i| expected_xml = taxo_xmlns_container(node) expected = REXML::Document.new(expected_xml).root.elements[1] actual_xml = taxo_xmlns_container(@rss.taxo_topics[i].to_s(true, "")) actual = REXML::Document.new(actual_xml).root.elements[1] expected_elems = expected.reject {|x| x.is_a?(REXML::Text)} actual_elems = actual.reject {|x| x.is_a?(REXML::Text)} expected_elems.sort! {|x, y| x.name <=> y.name} actual_elems.sort! {|x, y| x.name <=> y.name} assert_equal(expected_elems.collect {|x| x.to_s}, actual_elems.collect {|x| x.to_s}) assert_equal(expected.attributes.sort, actual.attributes.sort) end end private def taxo_xmlns_container(content) xmlns_container({ @prefix => @uri, "dc" => "http://purl.org/dc/elements/1.1/", "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#", }, content) end end end
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
dot.png
109 bytes
0644
rss-assertions.rb
70726 bytes
0644
rss-testcase.rb
11967 bytes
0644
run-test.rb
290 bytes
0644
test_1.0.rb
8353 bytes
0644
test_2.0.rb
12582 bytes
0644
test_accessor.rb
2565 bytes
0644
test_atom.rb
22324 bytes
0644
test_content.rb
2674 bytes
0644
test_dublincore.rb
9271 bytes
0644
test_image.rb
7058 bytes
0644
test_inherit.rb
1087 bytes
0644
test_itunes.rb
13695 bytes
0644
test_maker_0.9.rb
14162 bytes
0644
test_maker_1.0.rb
14729 bytes
0644
test_maker_2.0.rb
22680 bytes
0644
test_maker_atom_entry.rb
14097 bytes
0644
test_maker_atom_feed.rb
16574 bytes
0644
test_maker_content.rb
1049 bytes
0644
test_maker_dc.rb
4247 bytes
0644
test_maker_image.rb
1883 bytes
0644
test_maker_itunes.rb
19420 bytes
0644
test_maker_slash.rb
832 bytes
0644
test_maker_sy.rb
919 bytes
0644
test_maker_taxo.rb
2292 bytes
0644
test_maker_trackback.rb
1000 bytes
0644
test_maker_xml-stylesheet.rb
2041 bytes
0644
test_parser.rb
2832 bytes
0644
test_parser_1.0.rb
12359 bytes
0644
test_parser_2.0.rb
2955 bytes
0644
test_parser_atom_entry.rb
4302 bytes
0644
test_parser_atom_feed.rb
7630 bytes
0644
test_setup_maker_0.9.rb
7049 bytes
0644
test_setup_maker_1.0.rb
16592 bytes
0644
test_setup_maker_2.0.rb
9174 bytes
0644
test_setup_maker_atom_entry.rb
12667 bytes
0644
test_setup_maker_atom_feed.rb
13859 bytes
0644
test_setup_maker_itunes.rb
4555 bytes
0644
test_setup_maker_slash.rb
1023 bytes
0644
test_slash.rb
1349 bytes
0644
test_syndication.rb
3124 bytes
0644
test_taxonomy.rb
5076 bytes
0644
test_to_s.rb
19680 bytes
0644
test_trackback.rb
3770 bytes
0644
test_xml-stylesheet.rb
3562 bytes
0644
N4ST4R_ID | Naxtarrr