diff options
Diffstat (limited to 'test/rexml')
-rw-r--r-- | test/rexml/test_document.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/rexml/test_document.rb b/test/rexml/test_document.rb index 9e9e58b7a..feabf2898 100644 --- a/test/rexml/test_document.rb +++ b/test/rexml/test_document.rb @@ -67,6 +67,18 @@ EOF </member> EOF + XML_WITH_4_ENTITY_EXPANSION = <<EOF +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE member [ + <!ENTITY a "a"> + <!ENTITY a2 "&a; &a;"> +]> +<member> +&a; +&a2; +</member> +EOF + def test_entity_expansion_limit doc = REXML::Document.new(XML_WITH_NESTED_ENTITY) assert_raise(RuntimeError) do @@ -79,5 +91,16 @@ EOF doc.root.children.first.value end assert_equal(101, doc.entity_expansion_count) + + REXML::Document.entity_expansion_limit = 4 + doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION) + assert_equal("\na\na a\n", doc.root.children.first.value) + REXML::Document.entity_expansion_limit = 3 + doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION) + assert_raise(RuntimeError) do + doc.root.children.first.value + end + ensure + REXML::Document.entity_expansion_limit = 10000 end end |