From 0dc342de848a642ecce8db697b8fecd83a63e117 Mon Sep 17 00:00:00 2001 From: yugui Date: Mon, 25 Aug 2008 15:02:05 +0000 Subject: added tag v1_9_0_4 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- trunk/test/rss/test_syndication.rb | 125 +++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 trunk/test/rss/test_syndication.rb (limited to 'trunk/test/rss/test_syndication.rb') diff --git a/trunk/test/rss/test_syndication.rb b/trunk/test/rss/test_syndication.rb new file mode 100644 index 0000000000..abd75e905e --- /dev/null +++ b/trunk/test/rss/test_syndication.rb @@ -0,0 +1,125 @@ +require "cgi" +require "rexml/document" + +require "rss-testcase" + +require "rss/1.0" +require "rss/syndication" + +module RSS + class TestSyndication < TestCase + + def setup + @prefix = "sy" + @uri = "http://purl.org/rss/1.0/modules/syndication/" + + @parents = %w(channel) + + t = Time.iso8601("2000-01-01T12:00:05+00:00") + class << t + alias_method(:to_s, :iso8601) + end + + @elems = { + :updatePeriod => "hourly", + :updateFrequency => "2", + :updateBase => t, + } + + @sy_nodes = @elems.collect do |name, value| + "<#{@prefix}:#{name}>#{CGI.escapeHTML(value.to_s)}" + end.join("\n") + + @rss_source = make_RDF(<<-EOR, {@prefix => @uri}) +#{make_channel(@sy_nodes)} +#{make_image()} +#{make_item()} +#{make_textinput()} +EOR + + @rss = Parser.parse(@rss_source) + end + + def test_parser + + assert_nothing_raised do + Parser.parse(@rss_source) + end + + @elems.each do |tag, value| + assert_too_much_tag(tag.to_s, "channel") do + Parser.parse(make_RDF(<<-EOR, {@prefix => @uri})) +#{make_channel(("<" + @prefix + ":" + tag.to_s + ">" + + CGI.escapeHTML(value.to_s) + + "") * 2)} +#{make_item} +EOR + end + end + + end + + def test_accessor + + t = Time.iso8601("2003-01-01T12:00:23+09:00") + class << t + alias_method(:to_s, :iso8601) + end + + new_value = { + :updatePeriod => "daily", + :updateFrequency => "11", + :updateBase => t, + } + + @elems.each do |name, value| + value = value.to_i if name == :updateFrequency + @parents.each do |parent| + assert_equal(value, @rss.__send__(parent).__send__("sy_#{name}")) + @rss.__send__(parent).__send__("sy_#{name}=", new_value[name]) + new_val = new_value[name] + new_val = new_val.to_i if name == :updateFrequency + assert_equal(new_val, @rss.__send__(parent).__send__("sy_#{name}")) + end + end + + %w(hourly daily weekly monthly yearly).each do |x| + @parents.each do |parent| + assert_nothing_raised do + @rss.__send__(parent).sy_updatePeriod = x + end + end + end + + %w(-2 0.3 -0.4).each do |x| + @parents.each do |parent| + assert_not_available_value("sy:updateBase", x) do + @rss.__send__(parent).sy_updateBase = x + end + end + end + + end + + def test_to_s + + @elems.each do |name, value| + excepted = "<#{@prefix}:#{name}>#{value}" + @parents.each do |parent| + assert_equal(excepted, + @rss.__send__(parent).__send__("sy_#{name}_element")) + end + end + + REXML::Document.new(@rss_source).root.each_element do |parent| + if @parents.include?(parent.name) + parent.each_element do |elem| + if elem.namespace == @uri + assert_equal(elem.text, @elems[elem.name.intern].to_s) + end + end + end + end + end + end +end -- cgit v1.2.3