1#! /usr/local/bin/ruby 2 3 4require 'test/unit' 5require 'rexml/document' 6 7class TestNotationDeclMixin < Test::Unit::TestCase 8 def setup 9 @pubid1 = "TEST1" 10 @pubid2 = "TEST2" 11 @sysid2 = "urn:x-henrikmartensson.org:test2" 12 @pubid3 = "TEST3" 13 @pubid4 = "TEST4" 14 @sysid4 = "urn:x-henrikmartensson.org:test4" 15 @pubid5 = "TEST5" 16 @sysid5 = "urn:x-henrikmartensson.org:test5" 17 @pubid6 = "TEST6" 18 @sysid6 = "urn:x-henrikmartensson.org:test6" 19 @sysid7 = "urn:x-henrikmartensson.org:test7" 20 doc_string = <<-"XMLEND" 21 <!DOCTYPE r SYSTEM "urn:x-henrikmartensson:test" [ 22 <!NOTATION n1 PUBLIC "#{@pubid1}"> 23 <!NOTATION n2 PUBLIC "#{@pubid2}" "#{@sysid2}"> 24 <!NOTATION n3 PUBLIC '#{@pubid3}'> 25 <!NOTATION n4 PUBLIC '#{@pubid4}' '#{@sysid4}'> 26 <!NOTATION n5 PUBLIC "#{@pubid5}" '#{@sysid5}'> 27 <!NOTATION n6 PUBLIC '#{@pubid6}' "#{@sysid6}"> 28 <!NOTATION n7 SYSTEM "#{@sysid7}"> 29 ]> 30 <r/> 31 XMLEND 32 @doctype = REXML::Document.new(doc_string).doctype 33 end 34 35 def test_name 36 assert_equal('n1', @doctype.notation('n1').name) 37 end 38 39 def test_public_2 40 assert_equal(@pubid1, @doctype.notation('n1').public) 41 assert_equal(@pubid2, @doctype.notation('n2').public) 42 assert_equal(@pubid3, @doctype.notation('n3').public) 43 assert_equal(@pubid4, @doctype.notation('n4').public) 44 assert_equal(@pubid5, @doctype.notation('n5').public) 45 assert_equal(@pubid6, @doctype.notation('n6').public) 46 assert_nil(@doctype.notation('n7').public) 47 end 48 49 def test_system_2 50 assert_equal(@sysid2, @doctype.notation('n2').system) 51 assert_nil(@doctype.notation('n3').system) 52 assert_equal(@sysid4, @doctype.notation('n4').system) 53 assert_equal(@sysid5, @doctype.notation('n5').system) 54 assert_equal(@sysid6, @doctype.notation('n6').system) 55 assert_equal(@sysid7, @doctype.notation('n7').system) 56 end 57 58end 59