diff options
Diffstat (limited to 'test/rexml/parser')
-rw-r--r-- | test/rexml/parser/test_sax2.rb | 203 | ||||
-rw-r--r-- | test/rexml/parser/test_stream.rb | 32 | ||||
-rw-r--r-- | test/rexml/parser/test_tree.rb | 43 | ||||
-rw-r--r-- | test/rexml/parser/test_ultra_light.rb | 70 |
4 files changed, 0 insertions, 348 deletions
diff --git a/test/rexml/parser/test_sax2.rb b/test/rexml/parser/test_sax2.rb deleted file mode 100644 index 91d135f5f7..0000000000 --- a/test/rexml/parser/test_sax2.rb +++ /dev/null @@ -1,203 +0,0 @@ -# frozen_string_literal: false -require "test/unit" -require "rexml/parsers/sax2parser" -require "rexml/sax2listener" - -module REXMLTests -class TestSAX2Parser < Test::Unit::TestCase - class TestDocumentTypeDeclaration < self - private - def xml(internal_subset) - <<-XML -<!DOCTYPE r SYSTEM "urn:x-henrikmartensson:test" [ -#{internal_subset} -]> -<r/> - XML - end - - class TestEntityDeclaration < self - class Listener - include REXML::SAX2Listener - attr_reader :entity_declarations - def initialize - @entity_declarations = [] - end - - def entitydecl(declaration) - super - @entity_declarations << declaration - end - end - - private - def parse(internal_subset) - listener = Listener.new - parser = REXML::Parsers::SAX2Parser.new(xml(internal_subset)) - parser.listen(listener) - parser.parse - listener.entity_declarations - end - - class TestGeneralEntity < self - class TestValue < self - def test_double_quote - assert_equal([["name", "value"]], parse(<<-INTERNAL_SUBSET)) -<!ENTITY name "value"> - INTERNAL_SUBSET - end - - def test_single_quote - assert_equal([["name", "value"]], parse(<<-INTERNAL_SUBSET)) -<!ENTITY name 'value'> - INTERNAL_SUBSET - end - end - - class TestExternlID < self - class TestSystem < self - def test_with_ndata - declaration = [ - "name", - "SYSTEM", "system-literal", - "NDATA", "ndata-name", - ] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!ENTITY name SYSTEM "system-literal" NDATA ndata-name> - INTERNAL_SUBSET - end - - def test_without_ndata - declaration = [ - "name", - "SYSTEM", "system-literal", - ] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!ENTITY name SYSTEM "system-literal"> - INTERNAL_SUBSET - end - end - - class TestPublic < self - def test_with_ndata - declaration = [ - "name", - "PUBLIC", "public-literal", "system-literal", - "NDATA", "ndata-name", - ] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!ENTITY name PUBLIC "public-literal" "system-literal" NDATA ndata-name> - INTERNAL_SUBSET - end - - def test_without_ndata - declaration = [ - "name", - "PUBLIC", "public-literal", "system-literal", - ] - assert_equal([declaration], parse(<<-INTERNAL_SUBSET)) -<!ENTITY name PUBLIC "public-literal" "system-literal"> - INTERNAL_SUBSET - end - end - end - end - - class TestParameterEntity < self - class TestValue < self - def test_double_quote - assert_equal([["%", "name", "value"]], parse(<<-INTERNAL_SUBSET)) -<!ENTITY % name "value"> - INTERNAL_SUBSET - end - - def test_single_quote - assert_equal([["%", "name", "value"]], parse(<<-INTERNAL_SUBSET)) -<!ENTITY % name 'value'> - INTERNAL_SUBSET - end - end - - class TestExternlID < self - def test_system - declaration = [ - "%", - "name", - "SYSTEM", "system-literal", - ] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!ENTITY % name SYSTEM "system-literal"> - INTERNAL_SUBSET - end - - def test_public - declaration = [ - "%", - "name", - "PUBLIC", "public-literal", "system-literal", - ] - assert_equal([declaration], parse(<<-INTERNAL_SUBSET)) -<!ENTITY % name PUBLIC "public-literal" "system-literal"> - INTERNAL_SUBSET - end - end - end - end - - class TestNotationDeclaration < self - class Listener - include REXML::SAX2Listener - attr_reader :notation_declarations - def initialize - @notation_declarations = [] - end - - def notationdecl(*declaration) - super - @notation_declarations << declaration - end - end - - private - def parse(internal_subset) - listener = Listener.new - parser = REXML::Parsers::SAX2Parser.new(xml(internal_subset)) - parser.listen(listener) - parser.parse - listener.notation_declarations - end - - class TestExternlID < self - def test_system - declaration = ["name", "SYSTEM", nil, "system-literal"] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!NOTATION name SYSTEM "system-literal"> - INTERNAL_SUBSET - end - - def test_public - declaration = ["name", "PUBLIC", "public-literal", "system-literal"] - assert_equal([declaration], parse(<<-INTERNAL_SUBSET)) -<!NOTATION name PUBLIC "public-literal" "system-literal"> - INTERNAL_SUBSET - end - end - - class TestPublicID < self - def test_literal - declaration = ["name", "PUBLIC", "public-literal", nil] - assert_equal([declaration], - parse(<<-INTERNAL_SUBSET)) -<!NOTATION name PUBLIC "public-literal"> - INTERNAL_SUBSET - end - end - end - end -end -end diff --git a/test/rexml/parser/test_stream.rb b/test/rexml/parser/test_stream.rb deleted file mode 100644 index c315833e4b..0000000000 --- a/test/rexml/parser/test_stream.rb +++ /dev/null @@ -1,32 +0,0 @@ -require "test/unit" -require "rexml/document" -require "rexml/streamlistener" - -module REXMLTests - class TestStreamParser < Test::Unit::TestCase - class NullListener - include REXML::StreamListener - end - - class TestInvalid < self - def test_no_end_tag - xml = "<root><sub>" - exception = assert_raise(REXML::ParseException) do - parse(xml) - end - assert_equal(<<-MESSAGE, exception.to_s) -Missing end tag for '/root/sub' -Line: 1 -Position: #{xml.bytesize} -Last 80 unconsumed characters: - MESSAGE - end - - private - def parse(xml, listener=nil) - listener ||= NullListener.new - REXML::Document.parse_stream(xml, listener) - end - end - end -end diff --git a/test/rexml/parser/test_tree.rb b/test/rexml/parser/test_tree.rb deleted file mode 100644 index 8a5d9d1223..0000000000 --- a/test/rexml/parser/test_tree.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: false -require "test/unit" -require "rexml/document" -require "rexml/parsers/treeparser" - -module REXMLTests -class TestTreeParser < Test::Unit::TestCase - class TestInvalid < self - def test_unmatched_close_tag - xml = "<root></not-root>" - exception = assert_raise(REXML::ParseException) do - parse(xml) - end - assert_equal(<<-MESSAGE, exception.to_s) -Missing end tag for 'root' (got 'not-root') -Line: 1 -Position: #{xml.bytesize} -Last 80 unconsumed characters: - MESSAGE - end - - def test_no_close_tag - xml = "<root>" - exception = assert_raise(REXML::ParseException) do - parse(xml) - end - assert_equal(<<-MESSAGE, exception.to_s) -No close tag for /root -Line: 1 -Position: #{xml.bytesize} -Last 80 unconsumed characters: - MESSAGE - end - - private - def parse(xml) - document = REXML::Document.new - parser = REXML::Parsers::TreeParser.new(xml, document) - parser.parse - end - end -end -end diff --git a/test/rexml/parser/test_ultra_light.rb b/test/rexml/parser/test_ultra_light.rb deleted file mode 100644 index 8f4a3980d5..0000000000 --- a/test/rexml/parser/test_ultra_light.rb +++ /dev/null @@ -1,70 +0,0 @@ -# frozen_string_literal: false -require "test/unit" -require "rexml/parsers/ultralightparser" - -module REXMLTests -class TestUltraLightParser < Test::Unit::TestCase - class TestDocumentTypeDeclaration < self - def test_entity_declaration - assert_equal([ - [ - :start_doctype, - :parent, - "root", - "SYSTEM", - "urn:x-test", - nil, - [:entitydecl, "name", "value"] - ], - [:text, "\n"], - [:start_element, :parent, "root", {}], - [:text, "\n"], - ], - parse(<<-INTERNAL_SUBSET)) -<!ENTITY name "value"> - INTERNAL_SUBSET - end - - private - def xml(internal_subset) - <<-XML -<!DOCTYPE root SYSTEM "urn:x-test" [ -#{internal_subset} -]> -<root/> - XML - end - - def parse(internal_subset) - parser = REXML::Parsers::UltraLightParser.new(xml(internal_subset)) - normalize(parser.parse) - end - - def normalize(root) - root.collect do |child| - normalize_child(child) - end - end - - def normalize_child(child) - tag = child.first - case tag - when :start_doctype - normalized_parent = :parent - normalized_doctype = child.dup - normalized_doctype[1] = normalized_parent - normalized_doctype - when :start_element - tag, _parent, name, attributes, *children = child - normalized_parent = :parent - normalized_children = children.collect do |sub_child| - normalize_child(sub_child) - end - [tag, normalized_parent, name, attributes, *normalized_children] - else - child - end - end - end -end -end |