require "helper" class IntegrationTestXml < Loofah::TestCase context "integration test" do context "xml document" do context "custom scrubber" do it "act as expected" do xml = Loofah.xml_document <<-EOXML Abraham Lincoln Abe Vigoda EOXML bring_out_your_dead = Loofah::Scrubber.new do |node| if node.name == "employee" and node["deceased"] == "true" node.remove Loofah::Scrubber::STOP # don't bother with the rest of the subtree end end assert_equal 2, xml.css("employee").length xml.scrub!(bring_out_your_dead) employees = xml.css "employee" assert_equal 1, employees.length assert_equal "Abe Vigoda", employees.first.inner_text end end end context "xml fragment" do context "custom scrubber" do it "act as expected" do xml = Loofah.xml_fragment <<-EOXML Abraham Lincoln Abe Vigoda EOXML bring_out_your_dead = Loofah::Scrubber.new do |node| if node.name == "employee" and node["deceased"] == "true" node.remove Loofah::Scrubber::STOP # don't bother with the rest of the subtree end end assert_equal 2, xml.css("employee").length xml.scrub!(bring_out_your_dead) employees = xml.css "employee" assert_equal 1, employees.length assert_equal "Abe Vigoda", employees.first.inner_text end end end end end