require 'abstract_unit' require 'active_support/xml_mini' class REXMLEngineTest < ActiveSupport::TestCase def test_default_is_rexml assert_equal ActiveSupport::XmlMini_REXML, ActiveSupport::XmlMini.backend end def test_set_rexml_as_backend ActiveSupport::XmlMini.backend = 'REXML' assert_equal ActiveSupport::XmlMini_REXML, ActiveSupport::XmlMini.backend end def test_parse_from_io ActiveSupport::XmlMini.backend = 'REXML' io = StringIO.new(<<-eoxml) good hello everyone morning eoxml hash = ActiveSupport::XmlMini.parse(io) assert hash.has_key?('root') assert hash['root'].has_key?('products') assert_match "good", hash['root']['__content__'] products = hash['root']['products'] assert products.has_key?("__content__") assert_match 'hello everyone', products['__content__'] end def test_parse_from_empty_string ActiveSupport::XmlMini.backend = 'REXML' assert_equal({}, ActiveSupport::XmlMini.parse("")) end def test_parse_from_frozen_string ActiveSupport::XmlMini.backend = 'REXML' xml_string = "".freeze assert_equal({"root" => {}}, ActiveSupport::XmlMini.parse(xml_string)) end end