summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rexml/test_doctype.rb
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/test/rexml/test_doctype.rb
Fresh start
Diffstat (limited to 'jni/ruby/test/rexml/test_doctype.rb')
-rw-r--r--jni/ruby/test/rexml/test_doctype.rb106
1 files changed, 106 insertions, 0 deletions
diff --git a/jni/ruby/test/rexml/test_doctype.rb b/jni/ruby/test/rexml/test_doctype.rb
new file mode 100644
index 0000000..0b3ea11
--- /dev/null
+++ b/jni/ruby/test/rexml/test_doctype.rb
@@ -0,0 +1,106 @@
+require 'test/unit'
+require 'rexml/document'
+
+module REXMLTests
+ class TestDocTypeAccessor < Test::Unit::TestCase
+
+ def setup
+ @sysid = "urn:x-test:sysid1"
+ @notid1 = "urn:x-test:notation1"
+ @notid2 = "urn:x-test:notation2"
+ document_string1 = <<-"XMLEND"
+ <!DOCTYPE r SYSTEM "#{@sysid}" [
+ <!NOTATION n1 SYSTEM "#{@notid1}">
+ <!NOTATION n2 SYSTEM "#{@notid2}">
+ ]>
+ <r/>
+ XMLEND
+ @doctype1 = REXML::Document.new(document_string1).doctype
+
+ @pubid = "TEST_ID"
+ document_string2 = <<-"XMLEND"
+ <!DOCTYPE r PUBLIC "#{@pubid}">
+ <r/>
+ XMLEND
+ @doctype2 = REXML::Document.new(document_string2).doctype
+
+ document_string3 = <<-"XMLEND"
+ <!DOCTYPE r PUBLIC "#{@pubid}" "#{@sysid}">
+ <r/>
+ XMLEND
+ @doctype3 = REXML::Document.new(document_string3).doctype
+
+ end
+
+ def test_public
+ assert_equal(nil, @doctype1.public)
+ assert_equal(@pubid, @doctype2.public)
+ assert_equal(@pubid, @doctype3.public)
+ end
+
+ def test_system
+ assert_equal(@sysid, @doctype1.system)
+ assert_equal(nil, @doctype2.system)
+ assert_equal(@sysid, @doctype3.system)
+ end
+
+ def test_notation
+ assert_equal(@notid1, @doctype1.notation("n1").system)
+ assert_equal(@notid2, @doctype1.notation("n2").system)
+ end
+
+ def test_notations
+ notations = @doctype1.notations
+ assert_equal(2, notations.length)
+ assert_equal(@notid1, find_notation(notations, "n1").system)
+ assert_equal(@notid2, find_notation(notations, "n2").system)
+ end
+
+ def find_notation(notations, name)
+ notations.find { |notation|
+ name == notation.name
+ }
+ end
+
+ end
+
+ class TestNotationDeclPublic < Test::Unit::TestCase
+ def setup
+ @name = "vrml"
+ @id = "VRML 1.0"
+ @uri = "http://www.web3d.org/"
+ end
+
+ def test_to_s
+ assert_equal("<!NOTATION #{@name} PUBLIC \"#{@id}\">",
+ decl(@id, nil).to_s)
+ end
+
+ def test_to_s_with_uri
+ assert_equal("<!NOTATION #{@name} PUBLIC \"#{@id}\" \"#{@uri}\">",
+ decl(@id, @uri).to_s)
+ end
+
+ private
+ def decl(id, uri)
+ REXML::NotationDecl.new(@name, "PUBLIC", id, uri)
+ end
+ end
+
+ class TestNotationDeclSystem < Test::Unit::TestCase
+ def setup
+ @name = "gif"
+ @id = "gif viewer"
+ end
+
+ def test_to_s
+ assert_equal("<!NOTATION #{@name} SYSTEM \"#{@id}\">",
+ decl(@id).to_s)
+ end
+
+ private
+ def decl(id)
+ REXML::NotationDecl.new(@name, "SYSTEM", id, nil)
+ end
+ end
+end