diff --git a/test/xml/test_node_set.rb b/test/xml/test_node_set.rb index 232d953d4b..555d5c7832 100644 --- a/test/xml/test_node_set.rb +++ b/test/xml/test_node_set.rb @@ -542,6 +542,23 @@ def test_wrap_a_fragment assert_equal 'employee', frag.at(".//wrapper").children.first.name end + # https://github.com/sparklemotion/nokogiri/issues/1952 + def test_gc_stress + frag = "13250123type" + pages = 150 + + 50.times do |i| + frag_dup = frag.dup + + xml = Nokogiri::XML.parse(frag) + xml.root.content = '' + pages.times do + xml.root.children += Nokogiri::XML.parse(frag_dup).root.children + end + assert_equal pages, xml.root.children.count + end + end + def test_wrap_preserves_document_structure assert_equal "employeeId", @xml.at_xpath("//employee").children.detect{|j| ! j.text? }.name