diff options
Diffstat (limited to 'test/rss/test_xml-stylesheet.rb')
-rw-r--r-- | test/rss/test_xml-stylesheet.rb | 187 |
1 files changed, 94 insertions, 93 deletions
diff --git a/test/rss/test_xml-stylesheet.rb b/test/rss/test_xml-stylesheet.rb index eff5fd87e5..ed056257d6 100644 --- a/test/rss/test_xml-stylesheet.rb +++ b/test/rss/test_xml-stylesheet.rb @@ -1,109 +1,110 @@ # -*- tab-width: 2 -*- vim: ts=2 -require "test/unit" require "rexml/document" +require "rss-testcase" + require "rss/1.0" require "rss/xml-stylesheet" -require "common" -class TestXMLStyleSheet < Test::Unit::TestCase - include TestRSSMixin - - def test_accessor - [ - {:href => "a.xsl", :type => "text/xsl"}, - {:media => "print", :title => "FOO"}, - {:charset => "UTF-8", :alternate => "yes"}, - ].each do |attrs| - assert_xml_stylesheet_attrs(XMLStyleSheet.new(*attrs), attrs) - end - end - - def test_to_s - [ - {:href => "a.xsl", :type => "text/xsl"}, - {:type => "text/xsl"}, - {:href => "a.xsl", :guess_type => "text/xsl"}, - {:href => "a.css", :type => "text/css"}, - {:href => "a.css", :type => "text/xsl", - :guess_type => "text/css"}, - {:href => "a.xsl", :type => "text/xsl", - :title => "sample", :media => "printer", - :charset => "UTF-8", :alternate => "yes"}, - {:href => "a.css", :guess_type => "text/css", - :alternate => "no"}, - {:type => "text/xsl", :title => "sample", - :media => "printer", :charset => "UTF-8", - :alternate => "yes"}, - ].each do |attrs| - target, contents = parse_pi(XMLStyleSheet.new(*attrs).to_s) - assert_xml_stylesheet(target, XMLStyleSheet.new(*contents), attrs) - end - end - - def test_bad_alternate - %w(a ___ ??? BAD_ALTERNATE).each do |value| - xss = XMLStyleSheet.new - assert_raise(NotAvailableValueError) do - xss.alternate = value +module RSS + class TestXMLStyleSheet < TestCase + + def test_accessor + [ + {:href => "a.xsl", :type => "text/xsl"}, + {:media => "print", :title => "FOO"}, + {:charset => "UTF-8", :alternate => "yes"}, + ].each do |attrs| + assert_xml_stylesheet_attrs(XMLStyleSheet.new(*attrs), attrs) end - xss.do_validate = false - assert_nothing_raised do - xss.alternate = value + end + + def test_to_s + [ + {:href => "a.xsl", :type => "text/xsl"}, + {:type => "text/xsl"}, + {:href => "a.xsl", :guess_type => "text/xsl"}, + {:href => "a.css", :type => "text/css"}, + {:href => "a.css", :type => "text/xsl", + :guess_type => "text/css"}, + {:href => "a.xsl", :type => "text/xsl", + :title => "sample", :media => "printer", + :charset => "UTF-8", :alternate => "yes"}, + {:href => "a.css", :guess_type => "text/css", + :alternate => "no"}, + {:type => "text/xsl", :title => "sample", + :media => "printer", :charset => "UTF-8", + :alternate => "yes"}, + ].each do |attrs| + target, contents = parse_pi(XMLStyleSheet.new(*attrs).to_s) + assert_xml_stylesheet(target, XMLStyleSheet.new(*contents), attrs) end - assert_nil(xss.alternate) end - end - - def test_parse - [ - [{:href => "a.xsl", :type => "text/xsl"},], - [{:media => "print", :title => "FOO"},], - [{:charset => "UTF-8", :alternate => "yes"},], - [{:href => "a.xsl", :type => "text/xsl"}, - {:type => "text/xsl"}, - {:href => "a.xsl", :guess_type => "text/xsl"}, - {:href => "a.css", :type => "text/css"}, - {:href => "a.css", :type => "text/xsl", - :guess_type => "text/css"}, - {:href => "a.xsl", :type => "text/xsl", - :title => "sample", :media => "printer", - :charset => "UTF-8", :alternate => "yes"}, - {:href => "a.css", :guess_type => "text/css", - :alternate => "no"}, - {:type => "text/xsl", :title => "sample", - :media => "printer", :charset => "UTF-8", - :alternate => "yes"},], - ].each do |xsss| - doc = REXML::Document.new(make_sample_RDF) - root = doc.root - xsss.each do |xss| - content = xss.collect do |key, name| - %Q[#{key}="#{name}"] - end.join(" ") - pi = REXML::Instruction.new("xml-stylesheet", content) - root.previous_sibling = pi + + def test_bad_alternate + %w(a ___ ??? BAD_ALTERNATE).each do |value| + xss = XMLStyleSheet.new + assert_raise(NotAvailableValueError) do + xss.alternate = value + end + xss.do_validate = false + assert_nothing_raised do + xss.alternate = value + end + assert_nil(xss.alternate) end - rss = Parser.parse(doc.to_s) - have_href_xsss = xsss.find_all {|xss| xss.has_key?(:href)} - assert_equal(have_href_xsss.size, rss.xml_stylesheets.size) - rss.xml_stylesheets.each_with_index do |stylesheet, i| - target, = parse_pi(stylesheet.to_s) - assert_xml_stylesheet(target, stylesheet, have_href_xsss[i]) + end + + def test_parse + [ + [{:href => "a.xsl", :type => "text/xsl"},], + [{:media => "print", :title => "FOO"},], + [{:charset => "UTF-8", :alternate => "yes"},], + [{:href => "a.xsl", :type => "text/xsl"}, + {:type => "text/xsl"}, + {:href => "a.xsl", :guess_type => "text/xsl"}, + {:href => "a.css", :type => "text/css"}, + {:href => "a.css", :type => "text/xsl", + :guess_type => "text/css"}, + {:href => "a.xsl", :type => "text/xsl", + :title => "sample", :media => "printer", + :charset => "UTF-8", :alternate => "yes"}, + {:href => "a.css", :guess_type => "text/css", + :alternate => "no"}, + {:type => "text/xsl", :title => "sample", + :media => "printer", :charset => "UTF-8", + :alternate => "yes"},], + ].each do |xsss| + doc = REXML::Document.new(make_sample_RDF) + root = doc.root + xsss.each do |xss| + content = xss.collect do |key, name| + %Q[#{key}="#{name}"] + end.join(" ") + pi = REXML::Instruction.new("xml-stylesheet", content) + root.previous_sibling = pi + end + rss = Parser.parse(doc.to_s) + have_href_xsss = xsss.find_all {|xss| xss.has_key?(:href)} + assert_equal(have_href_xsss.size, rss.xml_stylesheets.size) + rss.xml_stylesheets.each_with_index do |stylesheet, i| + target, = parse_pi(stylesheet.to_s) + assert_xml_stylesheet(target, stylesheet, have_href_xsss[i]) + end end end - end - - def parse_pi(pi) - /\A\s*<\?(\S+)([^(?:\?>)]+)\?>\s*\z/ =~ pi - target = $1 - dummy = REXML::Document.new("<dummy #{$2}/>").root - contents = {} - dummy.attributes.each do |name, value| - contents[name] = value + + def parse_pi(pi) + /\A\s*<\?(\S+)([^(?:\?>)]+)\?>\s*\z/ =~ pi + target = $1 + dummy = REXML::Document.new("<dummy #{$2}/>").root + contents = {} + dummy.attributes.each do |name, value| + contents[name] = value + end + [target, contents] end - [target, contents] + end - end |