diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-17 00:21:24 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-06-17 00:21:24 +0000 |
commit | f1c37d2bf90986beddfc6fa60f45c1c55a6de94f (patch) | |
tree | c7b04a374b294bc82c6e40de9d2d526b26b24661 | |
parent | dcec1c3d4940842a65d38d2191d5c4889e03cc8a (diff) |
* lib/rss, test/rss: backported from trunk. (2005-11-16 - now)
* lib/rss/rss.rb: fixed a indentation bug.
* lib/rss/taxonomy.rb: fixed <taxo:topic> #to_s bug.
* test/rss/test_taxonomy.rb: added a #to_s test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@10290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | lib/rss/rss.rb | 4 | ||||
-rw-r--r-- | lib/rss/taxonomy.rb | 7 | ||||
-rw-r--r-- | test/rss/test_taxonomy.rb | 30 |
4 files changed, 33 insertions, 12 deletions
@@ -21,6 +21,10 @@ Sat Jun 17 09:03:47 2006 Kouhei Sutou <kou@cozmixng.org> * test/rss/rss-assertions.rb: added test for 'resources'. * test/rss/test_taxonomy.rb: ditto. + * lib/rss/rss.rb: fixed a indentation bug. + * lib/rss/taxonomy.rb: fixed <taxo:topic> #to_s bug. + * test/rss/test_taxonomy.rb: added a #to_s test. + Sat Jun 17 02:01:00 2006 Tanaka Akira <akr@m17n.org> * lib/pp.rb (Kernel#pretty_inspect): defined for pretty printed diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb index d2b7604488..7ccf1aefa1 100644 --- a/lib/rss/rss.rb +++ b/lib/rss/rss.rb @@ -725,8 +725,8 @@ EOC private_methods.each do |meth| if /\A([^_]+)_[^_]+_elements?\z/ =~ meth and self.class::NSPOOL.has_key?($1) - res = __send__(meth, need_convert) - rv << "#{indent}#{res}" if /\A\s*\z/ !~ res + res = __send__(meth, need_convert, indent) + rv << res if /\A\s*\z/ !~ res end end rv.join("\n") diff --git a/lib/rss/taxonomy.rb b/lib/rss/taxonomy.rb index c89de64d31..3eb5b893aa 100644 --- a/lib/rss/taxonomy.rb +++ b/lib/rss/taxonomy.rb @@ -163,7 +163,6 @@ module RSS def to_s(need_convert=true, indent=calc_indent) rv = tag(indent) do |next_indent| [ - link_element(need_convert, next_indent), other_element(need_convert, next_indent), ] end @@ -189,6 +188,12 @@ module RSS [@taxo_link, @taxo_topics] end + def _attrs + [ + ["#{RDF::PREFIX}:about", true, "about"] + ] + end + def _tags rv = [] rv << [TAXO_URI, "link"] unless @taxo_link.nil? diff --git a/test/rss/test_taxonomy.rb b/test/rss/test_taxonomy.rb index c899f4720b..c51d7d2c2d 100644 --- a/test/rss/test_taxonomy.rb +++ b/test/rss/test_taxonomy.rb @@ -20,7 +20,7 @@ module RSS @dc_prefix => @dc_uri, } - @parents = %w(channel item) + @topics_parents = %w(channel item) @topics_lis = [ "http://meerkat.oreillynet.com/?c=cat23", @@ -66,28 +66,28 @@ module RSS info.each do |name, value| case name when :topics - rv << "<#{@prefix}:topics>\n" - rv << " <rdf:Bag>\n" + rv << " <#{@prefix}:topics>\n" + rv << " <rdf:Bag>\n" value.each do |li| resource = CGI.escapeHTML(li) - rv << " <rdf:li resource=\"#{resource}\"/>\n" + rv << " <rdf:li resource=\"#{resource}\"/>\n" end - rv << " </rdf:Bag>\n" - rv << "</#{@prefix}:topics>" + 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.join("\n") + end @rss_source = make_RDF(<<-EOR, @ns) #{make_channel(@topics_node)} #{make_image()} #{make_item(@topics_node)} #{make_textinput()} -#{@topic_nodes} +#{@topic_nodes.join("\n")} EOR @rss = Parser.parse(@rss_source) @@ -138,10 +138,22 @@ EOR end def test_to_s - @parents.each do |parent| + @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 = REXML::Document.new(node).root + actual = REXML::Document.new(@rss.taxo_topics[i].to_s(true, "")).root + expected_elems = expected.children.reject {|x| x.is_a?(REXML::Text)} + actual_elems = actual.children.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 end end |