require 'test/unit' require 'webget_ruby_ramp' class XMLTest < Test::Unit::TestCase MYDIR=File.join('test','webget_ruby_ramp') @@formatter=REXML::Formatters::Default.new def test_load_dir_files dirpath=File.join(MYDIR,'xml_test_*.xml') expect=[File.join(MYDIR,'xml_test_1.xml'),File.join(MYDIR,'xml_test_2.xml')] actual=Dir[dirpath].sort assert_equal(expect,actual,"Dir[#{dirpath}] expects test data files") end def test_load_dir dirpath=File.join(MYDIR,'xml_test_*.xml') expect="abcdef" actual='' XML.load_dir(dirpath){|doc| doc.elements.each('foo/bar'){|e| actual+=e.attributes['x']}} assert_equal(expect,actual,'XML.load_dir') end def test_load_elements dirpath=File.join(MYDIR,'xml_test_*.xml') expect="" actual='' XML.load_elements(dirpath,'foo/bar'){|elem| actual+=elem.to_s } assert_equal(expect,actual,'XML.load_elements') end def test_load_attributes dirpath=File.join(MYDIR,'xml_test_*.xml') expect="xaxbxcxdxexf" actual='' XML.load_attributes(dirpath,'foo/bar'){|attributes| actual+=attributes.sort.to_s } assert_equal(expect,actual,'XML.load_attributes') end def test_load_attributes_hash dirpath=File.join(MYDIR,'xml_test_*.xml') expect="xaxbxcxdxexf" actual='' XML.load_attributes_hash(dirpath,'foo/bar'){|attributes_hash| actual+=attributes_hash.to_s } assert_equal(expect,actual,'XML.load_attributes_hash') end def test_attributes_to_hash doc=REXML::Document.new('') expect={"a"=>"b","c"=>"d","e"=>"f"} actual=doc.elements['foo'].attributes.to_hash assert_equal(expect,actual,'XML attributes hash') end def test_element_remove_attributes xml="text" expect="text" doc=REXML::Document.new(xml) doc.elements[1].remove_attributes actual=doc.to_s assert_equal(expect,actual) end def test_document_remove_attributes xml="text" expect="text" doc=REXML::Document.new(xml) doc.remove_attributes actual=doc.to_s assert_equal(expect,actual) end def test_strip_all s="HelloMicrosoftWorld" expect="HelloWorld" actual=XML.strip_all(s) assert_equal(expect,actual) end def strip_attributes s="Hello" expect="Hello" actual=XML.strip_attributes(s) assert_equal(expect,actual) end def test_strip_comments s="HelloWorld" expect="HelloWorld" actual=XML.strip_comments(s) assert_equal(expect,actual) end def test_strip_microsoft s="HelloMicrosoftWorld" expect="HelloWorld" actual=XML.strip_microsoft(s) assert_equal(expect,actual) end def test_strip_unprintables s="HelloWorld" #TODO create test that has unprintables expect="HelloWorld" actual=XML.strip_unprintables(s) assert_equal(expect,actual) end def test_strip_msword clean=File.open(File.join(MYDIR,"xml_test_msword_clean.html"),"rb") dirty=File.open(File.join(MYDIR,"xml_test_msword_dirty.html"),"rb") expect=clean.read actual=XML.strip_all(dirty.read) assert_equal(expect,actual) end end