home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ruby164.zip / rbemx164.zip / ruby / share / doc / rdtool-0.6.10 / test / test-rbl-file.rb < prev    next >
Text File  |  2001-04-15  |  4KB  |  164 lines

  1. require 'runit/testcase'
  2. require 'runit/cui/mytestrunner'
  3. require 'runit/topublic'
  4.  
  5. require 'test/temp-dir'
  6.  
  7. require 'rd/rbl-file'
  8. require 'rd/block-element'
  9. require 'rd/inline-element'
  10. require 'rd/rd-struct'
  11. require 'rd/reference-resolver'
  12.  
  13. include RD
  14.  
  15. class TestRBLFile < RUNIT::TestCase
  16.   include RUNIT::ToPublic
  17.   
  18.   def setup
  19.     tr_head2 = Tree.new_with_document_struct(DocumentStructure::RD)
  20.     de_head2 = DocumentElement.new
  21.     tr_head2.root = de_head2
  22.     hl1_head2, hl2_head2 = nil
  23.  
  24.     de_head2.build do
  25.       hl1_head2 = new Headline, 1 do
  26.     new StringElement, "label1"
  27.       end
  28.       new TextBlock
  29.       hl2_head2 = new Headline, 2 do
  30.     new StringElement, "label2"
  31.       end
  32.     end
  33.  
  34.     @resolv_head2 = ReferenceResolver.new(tr_head2, "label:")
  35.  
  36.     tr_desc = Tree.new_with_document_struct(DocumentStructure::RD)
  37.     de_desc = DocumentElement.new
  38.     tr_desc.root = de_desc
  39.     hl1_desc, dt1_desc = nil
  40.     de_desc.build do
  41.       hl1_desc = new(Headline, 1) do
  42.     new StringElement, "label1"
  43.       end
  44.       new DescList do
  45.     new DescListItem do
  46.       dt1_desc = make_term do
  47.         new StringElement, "label2"
  48.       end
  49.     end
  50.       end
  51.     end
  52.     @resolv_desc = ReferenceResolver.new(tr_desc, "Label-")
  53.  
  54.     tr_empty = Tree.new_with_document_struct(DocumentStructure::RD)
  55.     de_empty = DocumentElement.new
  56.     tr_empty.root = de_empty
  57.     @resolv_empty = ReferenceResolver.new(tr_empty, "LABEL")
  58.  
  59.     tr_arr = Tree.new_with_document_struct(DocumentStructure::RD)
  60.     de_arr = DocumentElement.new
  61.     tr_arr.root = de_arr
  62.  
  63.     de_arr.build do
  64.       new Headline, 1 do
  65.     new StringElement, "a => b"
  66.       end
  67.     end
  68.  
  69.     @resolv_arr = ReferenceResolver.new(tr_arr, "label:")
  70.  
  71.     @rbl_head2 = RBLFile.new("test-head2")
  72.     @rbl_desc = RBLFile.new("test-desc")
  73.     @rbl_empty = RBLFile.new("test-empty")
  74.     @rbl_arr = RBLFile.new("test-arr")
  75.   end
  76.   
  77.   def test_labels_to_string
  78.     res = "label1 => label:0\nlabel2 => label:1"
  79.     assert_equal(res, RBLFile.labels_to_string(@resolv_head2))
  80.  
  81.     res2 = "label1 => Label-0\nlabel2 => Label-1"
  82.     assert_equal(res2, RBLFile.labels_to_string(@resolv_desc))
  83.  
  84.     res_empty = ""
  85.     assert_equal(res_empty, RBLFile.labels_to_string(@resolv_empty))
  86.  
  87.     res_arr = "a => b => label:0"
  88.     assert_equal(res_arr, RBLFile.labels_to_string(@resolv_arr))
  89.   end
  90.  
  91.   def test_string_to_labels
  92.     rbl = RBLFile.new("test-head2")
  93.     src_head2 = "label1 => label:0\nlabel2 => label:1"
  94.     res_head2 = [["label1", "label:0"], ["label2", "label:1"]]
  95.     assert_equal(res_head2, rbl.string_to_labels(src_head2)) 
  96.  
  97.     src_head2 = "label1 =>label:0\nlabel2=> label:1"
  98.     res_head2 = [["label1", "label:0"], ["label2", "label:1"]]
  99.     assert_equal(res_head2, rbl.string_to_labels(src_head2)) 
  100.  
  101.     src_desc = "label1 => Label-0\nlabel2 => Label-1"
  102.     res_desc = [["label1", "Label-0"], ["label2", "Label-1"]]
  103.     assert_equal(res_desc, rbl.string_to_labels(src_desc)) 
  104.  
  105.     src_empty = ""
  106.     res_empty = []
  107.     assert_equal(res_empty, @rbl_empty.string_to_labels(src_empty)) 
  108.  
  109.     src_arr = "a => b => label:0"
  110.     res_arr = [["a => b", "label:0"]]
  111.     assert_equal(res_arr, @rbl_arr.string_to_labels(src_arr)) 
  112.   end
  113.  
  114.   def test_rbl_file_path
  115.     assert_equal("test-head2.rbl", RBLFile.rbl_file_path("test-head2.rd"))
  116.     assert_equal("test-head2.rbl", RBLFile.rbl_file_path("test-head2.rb"))
  117.     assert_equal("test-desc.rbl", RBLFile.rbl_file_path("test-desc"))
  118.   end
  119.  
  120.   def test_s_create_rbl_file
  121.     in_temp_dir do
  122.       begin
  123.     RBLFile.create_rbl_file("test-head2.rd", @resolv_head2)
  124.     assert(File.exist? "test-head2.rbl")
  125.       ensure
  126.     remove_file("test-head2.rbl")
  127.       end
  128.     end
  129.   end
  130.  
  131.   def test_load_rbl_file
  132.     in_temp_dir do
  133.       spath = [Dir.pwd]
  134.       begin
  135.     RBLFile.create_rbl_file("test-head2.rd", @resolv_head2)
  136.  
  137.     rbl_rd = RBLFile.new("test-head2.rd")
  138.     rbl_rd.load_rbl_file(spath)
  139.     res = [["label1", "label:0"], ["label2", "label:1"]]
  140.     assert_equal(res, rbl_rd.labels)
  141.     
  142.     rbl_no = RBLFile.new("test-head2")
  143.     rbl_no.load_rbl_file(spath)
  144.     assert_equal(res, rbl_no.labels)
  145.       ensure
  146.     remove_file("test-head2.rbl")
  147.       end
  148.     end
  149.   end
  150.  
  151.   def test_refer
  152.     spath = ["test/data"]
  153.     rbl = RBLFile.new("label")
  154.     rbl.load_rbl_file(spath)
  155.     assert_equal("label:0", rbl.refer("label1"))
  156.     assert_equal("label:1", rbl.refer("label2"))
  157.     assert_equal(nil, rbl.refer("label3"))
  158.   end
  159. end
  160.  
  161. if $0 == __FILE__
  162.   RUNIT::CUI::MyTestRunner.run(TestRBLFile.suite)
  163. end
  164.