1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rss/test_parser.rb
Jeremy Evans ffd0820ab3 Deprecate taint/trust and related methods, and make the methods no-ops
This removes the related tests, and puts the related specs behind
version guards.  This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
2019-11-18 01:00:25 +02:00

121 lines
2.7 KiB
Ruby

# frozen_string_literal: false
require "tempfile"
require_relative "rss-testcase"
require "rss/1.0"
require "rss/dublincore"
module RSS
class TestParser < TestCase
def setup
@_default_parser = Parser.default_parser
@rss10 = make_RDF(<<-EOR)
#{make_channel}
#{make_item}
#{make_textinput}
#{make_image}
EOR
@rss_tmp = Tempfile.new(%w"rss10- .rdf")
@rss_tmp.print(@rss10)
@rss_tmp.close
@rss_file = @rss_tmp.path
end
def teardown
Parser.default_parser = @_default_parser
@rss_tmp.close(true)
end
def test_default_parser
assert_nothing_raised do
Parser.default_parser = RSS::AVAILABLE_PARSERS.first
end
assert_raise(RSS::NotValidXMLParser) do
Parser.default_parser = RSS::Parser
end
end
def test_parse
assert_not_nil(RSS::Parser.parse(@rss_file))
garbage_rss_file = @rss_file + "-garbage"
if RSS::Parser.default_parser.name == "RSS::XMLParserParser"
assert_raise(RSS::NotWellFormedError) do
RSS::Parser.parse(garbage_rss_file)
end
else
assert_nil(RSS::Parser.parse(garbage_rss_file))
end
end
def test_parse_tag_includes_hyphen
assert_nothing_raised do
RSS::Parser.parse(make_RDF(<<-EOR))
<xCal:x-calconnect-venue xmlns:xCal="urn:ietf:params:xml:ns:xcal" />
#{make_channel}
#{make_item}
#{make_textinput}
#{make_image}
EOR
end
end
def test_parse_option_validate_nil
assert_raise(RSS::MissingTagError) do
RSS::Parser.parse(make_RDF(<<-RDF), :validate => nil)
RDF
end
end
def test_parse_option_validate_true
assert_raise(RSS::MissingTagError) do
RSS::Parser.parse(make_RDF(<<-RDF), :validate => true)
RDF
end
end
def test_parse_option_validate_false
rdf = RSS::Parser.parse(make_RDF(<<-RDF), :validate => false)
RDF
assert_nil(rdf.channel)
end
def test_parse_option_ignore_unknown_element_nil
assert_nothing_raised do
RSS::Parser.parse(make_RDF(<<-RDF), :ignore_unknown_element => nil)
<unknown/>
#{make_channel}
#{make_item}
#{make_textinput}
#{make_image}
RDF
end
end
def test_parse_option_ignore_unknown_element_true
assert_nothing_raised do
RSS::Parser.parse(make_RDF(<<-RDF), :ignore_unknown_element => true)
<unknown/>
#{make_channel}
#{make_item}
#{make_textinput}
#{make_image}
RDF
end
end
def test_parse_option_ignore_unknown_element_false
assert_raise(RSS::NotExpectedTagError) do
RSS::Parser.parse(make_RDF(<<-RDF), :ignore_unknown_element => false)
<unknown/>
#{make_channel}
#{make_item}
#{make_textinput}
#{make_image}
RDF
end
end
end
end