From 99ed561b4b34813979bf598a73023c33f8486c18 Mon Sep 17 00:00:00 2001 From: kou Date: Sun, 11 Aug 2013 08:43:17 +0000 Subject: * test/rexml/parser/test_sax2.rb: Add SAX2 API test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42512 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 +++ test/rexml/parser/test_sax2.rb | 57 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 test/rexml/parser/test_sax2.rb diff --git a/ChangeLog b/ChangeLog index 9061b20f3a..0ffb530a21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Aug 11 17:41:41 2013 Kouhei Sutou + + * test/rexml/parser/test_sax2.rb: Add SAX2 API test. + Sun Aug 11 15:10:40 2013 Nobuyoshi Nakada * parse.y (rb_enc_symname_type): allow ID_ATTRSET for ID_INSTANCE, diff --git a/test/rexml/parser/test_sax2.rb b/test/rexml/parser/test_sax2.rb new file mode 100644 index 0000000000..d808899dd2 --- /dev/null +++ b/test/rexml/parser/test_sax2.rb @@ -0,0 +1,57 @@ +require "test/unit" +require "rexml/parsers/sax2parser" +require "rexml/sax2listener" + +class TestSAX2Parser < Test::Unit::TestCase + class TestDocumentTypeDeclaration < self + private + def xml(internal_subset) + <<-XML + + + XML + end + + class TestEntityDecl < self + class Listener + include REXML::SAX2Listener + attr_reader :entity_declarations + def initialize + @entity_declarations = [] + end + + def entitydecl(*args) + super + @entity_declarations << args + 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)) + + INTERNAL_SUBSET + end + + def test_single_quote + assert_equal([["name", "value"]], parse(<<-INTERNAL_SUBSET)) + + INTERNAL_SUBSET + end + end + end + end + end +end -- cgit v1.2.3