docgenerator 0.1.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/examples/docgenerator_example.rb +76 -160
  2. data/examples/docgenerator_example_footnote.rb +98 -0
  3. data/examples/docgenerator_example_list.rb +62 -0
  4. data/examples/docgenerator_example_restrictions.rb +59 -0
  5. data/examples/docgenerator_example_tabular.rb +68 -0
  6. data/examples/docgenerator_example_tripfalls.rb +57 -0
  7. data/examples/wiki2docgenerator_example.rb +270 -0
  8. data/lib/docgenerator.rb +159 -0
  9. data/{docgenerator_attribute.rb → lib/docgenerator_attribute.rb} +32 -7
  10. data/{docgenerator_characters.rb → lib/docgenerator_characters.rb} +15 -0
  11. data/{docgenerator_css.rb → lib/docgenerator_css.rb} +6 -1
  12. data/{docgenerator_document.rb → lib/docgenerator_document.rb} +92 -93
  13. data/{docgenerator_element.rb → lib/docgenerator_element.rb} +125 -51
  14. data/{docgenerator_elements.rb → lib/docgenerator_elements.rb} +40 -56
  15. data/{docgenerator_environments.rb → lib/docgenerator_environments.rb} +16 -10
  16. data/{docgenerator_footnote.rb → lib/docgenerator_footnote.rb} +44 -22
  17. data/{docgenerator_lists.rb → lib/docgenerator_lists.rb} +44 -39
  18. data/{docgenerator_sections.rb → lib/docgenerator_sections.rb} +2 -2
  19. data/{docgenerator_tabular.rb → lib/docgenerator_tabular.rb} +71 -39
  20. data/{packages → lib/packages}/docgenerator_attachfile.rb +0 -0
  21. data/{packages → lib/packages}/docgenerator_caption.rb +0 -0
  22. data/{packages → lib/packages}/docgenerator_hyperref.rb +0 -0
  23. data/{packages → lib/packages}/docgenerator_listings.rb +1 -2
  24. data/{packages → lib/packages}/docgenerator_pdfpages.rb +0 -0
  25. data/{packages → lib/packages}/docgenerator_scrlettr2.rb +2 -2
  26. data/{packages → lib/packages}/docgenerator_scrpage2.rb +0 -0
  27. data/{packages → lib/packages}/docgenerator_url.rb +0 -0
  28. data/lib/templates/docgenerator_template.rb +176 -0
  29. data/lib/templates/docgenerator_template.yaml +105 -0
  30. data/lib/wiki2doc/wiki2docgenerator.rb +1161 -0
  31. data/self_docgenerator.rb +161 -0
  32. data/unittest/expected/test_beamer_note.html +1 -0
  33. data/unittest/expected/test_beamer_note.latex +1 -0
  34. data/unittest/expected/test_beamer_note.text +1 -0
  35. data/unittest/expected/test_beamer_note.wiki +1 -0
  36. data/unittest/expected/test_block.html +1 -0
  37. data/unittest/expected/test_block.latex +1 -0
  38. data/unittest/expected/test_block.text +1 -0
  39. data/unittest/expected/test_block.wiki +2 -0
  40. data/unittest/expected/test_css.css +1 -0
  41. data/unittest/expected/test_css2.css +1 -0
  42. data/unittest/expected/test_description.html +1 -0
  43. data/unittest/expected/test_description.latex +3 -0
  44. data/unittest/expected/test_description.text +3 -0
  45. data/unittest/expected/test_description.wiki +3 -0
  46. data/unittest/expected/test_document_article.latex +23 -0
  47. data/unittest/expected/test_document_html.html +14 -0
  48. data/unittest/expected/test_document_replacement_article.latex +23 -0
  49. data/unittest/expected/test_document_replacement_html.html +14 -0
  50. data/unittest/expected/test_document_replacement_text.text +5 -0
  51. data/unittest/expected/test_document_replacement_wiki.wiki +5 -0
  52. data/unittest/expected/test_document_text.text +5 -0
  53. data/unittest/expected/test_document_wiki.wiki +5 -0
  54. data/unittest/expected/test_enumerate.html +1 -0
  55. data/unittest/expected/test_enumerate.latex +3 -0
  56. data/unittest/expected/test_enumerate.text +1 -0
  57. data/unittest/expected/test_enumerate.wiki +2 -0
  58. data/unittest/expected/test_footnote.html +5 -0
  59. data/unittest/expected/test_footnote.latex +11 -0
  60. data/unittest/expected/test_footnote.text +13 -0
  61. data/unittest/expected/test_footnote.wiki +11 -0
  62. data/unittest/expected/test_footnote_group.html +8 -0
  63. data/unittest/expected/test_footnote_group.latex +17 -0
  64. data/unittest/expected/test_footnote_group.wiki +17 -0
  65. data/unittest/expected/test_href.html +2 -0
  66. data/unittest/expected/test_href.latex +8 -0
  67. data/unittest/expected/test_href.text +4 -0
  68. data/unittest/expected/test_html_css.html +1 -0
  69. data/unittest/expected/test_itemize.html +1 -0
  70. data/unittest/expected/test_itemize.latex +3 -0
  71. data/unittest/expected/test_itemize.text +1 -0
  72. data/unittest/expected/test_itemize.wiki +2 -0
  73. data/unittest/expected/test_section.html +8 -0
  74. data/unittest/expected/test_section.latex +20 -0
  75. data/unittest/expected/test_section.text +24 -0
  76. data/unittest/expected/test_section.wiki +20 -0
  77. data/unittest/expected/test_tabular.html +10 -0
  78. data/unittest/expected/test_tabular.latex +10 -0
  79. data/unittest/expected/test_tabular.wiki +31 -0
  80. data/unittest/expected/test_tabular_doc.latex +22 -0
  81. data/unittest/expected/test_wiki.html +6 -0
  82. data/unittest/expected/test_wiki.latex +12 -0
  83. data/unittest/expected/test_wiki.text +14 -0
  84. data/unittest/expected/test_wiki.wiki +12 -0
  85. data/unittest/expected/test_wiki_amazon.html +10 -0
  86. data/unittest/expected/test_wiki_description.html +7 -0
  87. data/unittest/expected/test_wiki_description.latex +11 -0
  88. data/unittest/expected/test_wiki_description.text +6 -0
  89. data/unittest/expected/test_wiki_description.wiki +6 -0
  90. data/unittest/expected/test_wiki_footnote.html +8 -0
  91. data/unittest/expected/test_wiki_footnote.latex +15 -0
  92. data/unittest/expected/test_wiki_footnote.text +12 -0
  93. data/unittest/expected/test_wiki_footnote.wiki +12 -0
  94. data/unittest/expected/test_wiki_footnote_groupid.html +21 -0
  95. data/unittest/expected/test_wiki_html_code.html +7 -0
  96. data/unittest/expected/test_wiki_html_code.latex +10 -0
  97. data/unittest/expected/test_wiki_html_code.text +6 -0
  98. data/unittest/expected/test_wiki_html_code.wiki +6 -0
  99. data/unittest/expected/test_wiki_inline.html +6 -0
  100. data/unittest/expected/test_wiki_inline.latex +12 -0
  101. data/unittest/expected/test_wiki_inline.text +8 -0
  102. data/unittest/expected/test_wiki_inline.wiki +8 -0
  103. data/unittest/expected/test_wiki_label.html +6 -0
  104. data/unittest/expected/test_wiki_link.html +8 -0
  105. data/unittest/expected/test_wiki_link.latex +14 -0
  106. data/unittest/expected/test_wiki_link.log +3 -0
  107. data/unittest/expected/test_wiki_link.wiki +6 -0
  108. data/unittest/expected/test_wiki_list_ol.html +24 -0
  109. data/unittest/expected/test_wiki_list_ol.latex +30 -0
  110. data/unittest/expected/test_wiki_list_ol.text +10 -0
  111. data/unittest/expected/test_wiki_list_ol.wiki +12 -0
  112. data/unittest/expected/test_wiki_list_ol_after_ul.html +16 -0
  113. data/unittest/expected/test_wiki_list_ol_after_ul.latex +24 -0
  114. data/unittest/expected/test_wiki_list_ol_after_ul.text +8 -0
  115. data/unittest/expected/test_wiki_list_ol_after_ul.wiki +10 -0
  116. data/unittest/expected/test_wiki_list_ol_ul.html +24 -0
  117. data/unittest/expected/test_wiki_list_ol_ul.latex +30 -0
  118. data/unittest/expected/test_wiki_list_ol_ul.text +10 -0
  119. data/unittest/expected/test_wiki_list_ol_ul.wiki +12 -0
  120. data/unittest/expected/test_wiki_list_ul.html +24 -0
  121. data/unittest/expected/test_wiki_list_ul.latex +30 -0
  122. data/unittest/expected/test_wiki_list_ul.text +10 -0
  123. data/unittest/expected/test_wiki_list_ul.wiki +12 -0
  124. data/unittest/expected/test_wiki_list_ul_too_much.html +39 -0
  125. data/unittest/expected/test_wiki_list_ul_too_much.latex +51 -0
  126. data/unittest/expected/test_wiki_list_ul_too_much.text +11 -0
  127. data/unittest/expected/test_wiki_list_ul_too_much.wiki +15 -0
  128. data/unittest/expected/test_wiki_picture.html +55 -0
  129. data/unittest/expected/test_wiki_picture.latex +76 -0
  130. data/unittest/expected/test_wiki_picture_thumb.html +5 -0
  131. data/unittest/expected/test_wiki_tab1.html +30 -0
  132. data/unittest/expected/test_wiki_tab1.latex +30 -0
  133. data/unittest/expected/test_wiki_tab1.wiki +29 -0
  134. data/unittest/expected/test_wiki_textformatting.html +7 -0
  135. data/unittest/expected/test_wiki_textformatting.latex +16 -0
  136. data/unittest/expected/test_wiki_textformatting.text +11 -0
  137. data/unittest/expected/test_wiki_textformatting.wiki +9 -0
  138. data/unittest/expected/test_wiki_toc.html +9 -0
  139. data/unittest/expected/test_wiki_toc.latex +18 -0
  140. data/unittest/expected/test_wiki_toc.text +21 -0
  141. data/unittest/expected/test_wiki_toc.wiki +18 -0
  142. data/unittest/expected/test_wiki_ul_multiple_line.html +18 -0
  143. data/unittest/expected/test_wiki_ul_multiple_line.latex +19 -0
  144. data/unittest/expected/test_wiki_ul_multiple_line.text +6 -0
  145. data/unittest/expected/test_wiki_ul_multiple_line.wiki +7 -0
  146. data/unittest/test_docgenerator.rb +85 -0
  147. data/unittest/unittest_docgenerator.rb +454 -0
  148. data/unittest/unittest_wiki2doc.rb +451 -0
  149. metadata +155 -31
  150. data/docgenerator.rb +0 -137
  151. data/docgenerator_template.rb +0 -103
  152. data/packages/docgenerator_beamer.rb +0 -250
@@ -0,0 +1,85 @@
1
+ require 'test/unit'
2
+ require 'tempfile' #needed to get logger.data
3
+
4
+
5
+ $: << '../lib'
6
+ require 'docgenerator'
7
+ require 'wiki2doc/wiki2docgenerator'
8
+ puts "==> Version #{DOCGENERATOR_VERSION}"
9
+
10
+ $fixmes = []
11
+ #
12
+ # Mag nicht
13
+ #
14
+ #~ END{
15
+ #~ puts 'Fixmes:'
16
+ #~ puts $fixmes.join("\n")
17
+ #~ }
18
+
19
+ require 'ftools'
20
+ class Test::Unit::TestCase
21
+ #
22
+ #Takes the content of the file 'filename' and compares it with 'actual' like in assert_equal.
23
+ #If 'filname' doesn't exist, the failure
24
+ # Reference file <#{filename}> missing
25
+ #is returned.
26
+ #
27
+ #'folder_for_failure' will contain all results with differences.
28
+ #
29
+ #What will happen:
30
+ #1) text.to_doc(:html) is the test. It creates some HTML-Text
31
+ #2) "expected/test_section.html" is read and compared to text.to_doc(:html)
32
+ #2a) If the file is missing -> error
33
+ #2b) If it is the same -> fine
34
+ #2c) If there are differences:
35
+ #3) A message is given (like in assert_equal)
36
+ #4) A folder "failure#{Date.today}" is created if not already exist
37
+ #5) The file 'test_section.html' with the result is created in "failure#{Date.today}/"
38
+ #6) I can use a compare tool to compare the expected result and the real result.
39
+ #
40
+ #Recommendation to build up your test.
41
+ #1) Create two folders: 'expected' and 'failure'
42
+ #2) Define your assertion with a non-existing filename
43
+ #3) Run the test with folder_for_failure = 'failure'
44
+ #4) You will get a failure (reference file is missing).
45
+ #5) Copy the file in 'failure' to 'expected'
46
+ #6) Rerun again, you have no failure (hopefully ;-) )
47
+ def assert_equal_filecontent( filename, actual, folder_for_failure = "failure#{Date.today}", message = nil )
48
+ if File.exist?(filename)
49
+ expected = File.read(filename)
50
+ full_message = build_message(message, "<?> expected (#{filename}) but was\n<?>.\n", expected, actual)
51
+ else
52
+ full_message = "Reference file <#{filename}> missing"
53
+ end
54
+ #Write the real result to a file.
55
+ #Folder is defined with Test::Unit::TestCase#folder_for_failure
56
+ if folder_for_failure and expected != actual
57
+ File.makedirs(folder_for_failure) if ! File.directory?(folder_for_failure)
58
+ File.open( "#{folder_for_failure}/#{File.basename(filename)}", 'w'){|f|
59
+ f << actual
60
+ }
61
+ end
62
+ assert_block( full_message ){ expected == actual }
63
+ end
64
+ #
65
+ end
66
+
67
+ #~ #
68
+ #~ # Little helper. assert_equal with another order of data.
69
+ #~ # Reason: The here-documents must be the last parameter in a method call.
70
+ #~ #
71
+ #~ def assert_equal_reverse( code, expectedresult )
72
+ #~ assert_equal( expectedresult, code )
73
+ #~ end
74
+ #~ # Little helper. assert_equal with another order of data.
75
+ #~ # Reason: The here-documents must be the last parameter in a method call.
76
+ #~ #
77
+ #~ def assert_equal_reverse_chomp( code, expectedresult )
78
+ #~ assert_equal( expectedresult.chomp, code )
79
+ #~ end
80
+
81
+
82
+ if $0 == __FILE__
83
+ #~ require 'unittest_docgenerator.rb'
84
+ #~ require 'unittest_wiki2doc.rb'
85
+ end
@@ -0,0 +1,454 @@
1
+ require 'test_docgenerator.rb'
2
+
3
+ Element.log = true
4
+ #~ DOCGENERATOR_LOGGER.level = Log4r::DEBUG
5
+ #~ DOCGENERATOR_LOGGER.level = Log4r::ERROR
6
+
7
+
8
+ class Test_elements < Test::Unit::TestCase
9
+ #Redirect Logger data to temporary file
10
+ def set_temporary_logger()
11
+ templogfile = Tempfile.new("xxx_warn.log")
12
+ @loglevel = DOCGENERATOR_LOGGER.level
13
+ @outputter = DOCGENERATOR_LOGGER.outputters.first
14
+ DOCGENERATOR_LOGGER.level = Log4r::WARN
15
+ DOCGENERATOR_LOGGER.outputters = Log4r::IOOutputter.new('log_xxx', templogfile )
16
+ return templogfile
17
+ end
18
+ #Get temporary data and reset logger.
19
+ def get_temporary_logger(templogfile)
20
+ templogfile.close()
21
+ templogfile.open()
22
+ templogfile_content = templogfile.readlines.to_s
23
+ templogfile.close(true)
24
+ DOCGENERATOR_LOGGER.level = @loglevel
25
+ DOCGENERATOR_LOGGER.outputters = @outputter
26
+ return templogfile_content
27
+ end
28
+
29
+ def test_generell_settings()
30
+ #Check the logger
31
+ assert_instance_of( Log4r::Logger, DOCGENERATOR_LOGGER)
32
+ assert_equal( Log4r::FATAL, DOCGENERATOR_LOGGER.level, "Default Level of Default-Logger (DOCGENERATOR_LOGGER) changed:")
33
+ #~ assert_equal( Log4r::ERROR, DOCGENERATOR_LOGGER.level)
34
+ assert_instance_of( Log4r::StdoutOutputter, DOCGENERATOR_LOGGER.outputters.first)
35
+ #~ assert_equal( Log4r::FATAL, DOCGENERATOR_LOGGER.outputters.first.level)
36
+ end
37
+ def test_content_flag()
38
+ #~ log = Log4r::Logger.new( 'Flags')
39
+ #~ log.level = Log4r::ERROR
40
+ #~ log.level = Log4r::DEBUG
41
+ #~ log.outputters = Log4r::StdoutOutputter.new('test_section')
42
+
43
+ assert_equal( true, element(:p).content?)
44
+ assert_equal( false, element(:br).content?)
45
+ #Result ok, but warning
46
+ assert_equal( "<br />", element(:br,{},'content').to_html)
47
+
48
+ #fixme Umsetzen des logger in methden
49
+ templogfile = set_temporary_logger()
50
+ assert_equal( "<br />", element(:br,{},'content').to_html)
51
+ #~ assert_equal_filecontent( "expected/test_content.log", get_temporary_logger() )
52
+ assert_equal(%Q{ WARN docgenerator: Add content to an element without this feature ["br/", :br, :newline, "br"], "content"\n}, get_temporary_logger(templogfile))
53
+ end
54
+ def test_symbols()
55
+ #~ log = Log4r::Logger.new( 'section_logger')
56
+ #~ log.level = Log4r::ERROR
57
+ #~ log.level = Log4r::DEBUG
58
+ #~ log.outputters = Log4r::StdoutOutputter.new('test_section')
59
+ assert_equal( '&ensp;', element(:space).to_html)
60
+ assert_equal( '&ensp;', element(:ensp).to_html)
61
+ assert_equal( '~', element(:space).to_latex)
62
+ assert_equal( '~', element(:ensp).to_latex)
63
+ assert_equal( '&emsp;', element(:bigspace).to_html)
64
+ assert_equal( '&emsp;', element(:emsp).to_html)
65
+ assert_equal( '~~', element(:bigspace).to_latex)
66
+ assert_equal( '~~', element(:emsp).to_latex)
67
+ assert_equal( '&nbsp;', element(:nbsp).to_html)
68
+ assert_equal( '~', element(:nbsp).to_latex)
69
+ assert_equal( '&euro;', element(:euro).to_html)
70
+ assert_equal( '\euro', element(:euro).to_latex)
71
+ assert_equal( '%', element(:percent).to_html)
72
+ assert_equal( '%', element(:'%').to_html)
73
+ assert_equal( '\%', element(:percent).to_latex)
74
+ assert_equal( '\%', element(:'%').to_latex)
75
+ assert_equal( '^', element(:'^').to_html)
76
+ assert_equal( '\hat{}', element(:'^').to_latex)
77
+ assert_equal( '&iquest;', element(:iquest).to_html)
78
+ assert_equal( '�', element(:iquest).to_latex)
79
+ assert_equal( '&amp;', element(:ampersand).to_html)
80
+ assert_equal( '&amp;', element(:'&').to_html)
81
+ assert_equal( '\&', element(:ampersand).to_latex)
82
+ assert_equal( '\&', element(:'&').to_latex)
83
+ assert_equal( '}', element(:rbrace).to_html)
84
+ assert_equal( '}', element(:'}').to_html)
85
+ assert_equal( '\}', element(:rbrace).to_latex)
86
+ assert_equal( '\}', element(:'}').to_latex)
87
+ assert_equal( '{', element(:lbrace).to_html)
88
+ assert_equal( '{', element(:'{').to_html)
89
+ assert_equal( '\{', element(:lbrace).to_latex)
90
+ assert_equal( '\{', element(:'{').to_latex)
91
+ assert_equal( '\\', element(:backslash).to_html)
92
+ assert_equal( '\ensuremath{\backslash}', element(:backslash).to_latex)
93
+ assert_equal( '&radic;', element(:radic).to_html)
94
+ assert_equal( '\ensuremath{\sqrt{}}', element(:radic).to_latex)
95
+ assert_equal( '&rarr;', element(:rarr).to_html)
96
+ assert_equal( '&rarr;', element(:rightarrow).to_html)
97
+ assert_equal( '&rarr;', element(:'->').to_html)
98
+ assert_equal( '\ensuremath{\rightarrow}', element(:rarr).to_latex)
99
+ assert_equal( '\ensuremath{\rightarrow}', element(:rightarrow).to_latex)
100
+ assert_equal( '\ensuremath{\rightarrow}', element(:'->').to_latex)
101
+ assert_equal( '&rArr;', element(:rArr).to_html)
102
+ assert_equal( '&rArr;', element(:Rightarrow).to_html)
103
+ assert_equal( '&rArr;', element(:'=>').to_html)
104
+ assert_equal( '\ensuremath{\Rightarrow}', element(:rArr).to_latex)
105
+ assert_equal( '\ensuremath{\Rightarrow}', element(:Rightarrow).to_latex)
106
+ assert_equal( '\ensuremath{\Rightarrow}', element(:'=>').to_latex)
107
+ assert_equal( '&larr;', element(:larr).to_html)
108
+ assert_equal( '&larr;', element(:leftarrow).to_html)
109
+ assert_equal( '&larr;', element(:'<-').to_html)
110
+ assert_equal( '\ensuremath{\leftarrow}', element(:larr).to_latex)
111
+ assert_equal( '\ensuremath{\leftarrow}', element(:leftarrow).to_latex)
112
+ assert_equal( '\ensuremath{\leftarrow}', element(:'<-').to_latex)
113
+ assert_equal( '&lArr;', element(:lArr).to_html)
114
+ assert_equal( '&lArr;', element(:Leftarrow).to_html)
115
+ assert_equal( '&lArr;', element(:'<=').to_html)
116
+ assert_equal( '\ensuremath{\Lefttarrow}', element(:lArr).to_latex)
117
+ assert_equal( '\ensuremath{\Lefttarrow}', element(:Leftarrow).to_latex)
118
+ assert_equal( '\ensuremath{\Lefttarrow}', element(:'<=').to_latex)
119
+ assert_equal( '&uArr;', element(:uArr).to_html)
120
+ assert_equal( '&uArr;', element(:Uparrow).to_html)
121
+ assert_equal( '\ensuremath{\Uparrow}', element(:uArr).to_latex)
122
+ assert_equal( '\ensuremath{\Uparrow}', element(:Uparrow).to_latex)
123
+ assert_equal( '&lt;', element(:lt).to_html)
124
+ assert_equal( '&lt;', element(:'<').to_html)
125
+ assert_equal( '\ensuremath{<}', element(:lt).to_latex)
126
+ assert_equal( '\ensuremath{<}', element(:'<').to_latex)
127
+ assert_equal( '&gt;', element(:gt).to_html)
128
+ assert_equal( '&gt;', element(:'>').to_html)
129
+ assert_equal( '\ensuremath{>}', element(:gt).to_latex)
130
+ assert_equal( '\ensuremath{>}', element(:'>').to_latex)
131
+ assert_equal( '&infin;', element(:infin).to_html)
132
+ assert_equal( '&infin;', element(:infty).to_html)
133
+ assert_equal( '\ensuremath{\infty}', element(:infin).to_latex)
134
+ assert_equal( '\ensuremath{\infty}', element(:infty).to_latex)
135
+ assert_equal( '&divide;', element(:divide).to_html)
136
+ assert_equal( '\ensuremath{\div}', element(:divide).to_latex)
137
+ assert_equal( '&yen;', element(:yen).to_html)
138
+ assert_equal( '&sim;', element(:sim).to_html)
139
+ assert_equal( '\ensuremath{\sim}', element(:sim).to_latex)
140
+ assert_equal( '&brvbar;', element(:brvbar).to_html)
141
+ assert_equal( '|', element(:brvbar).to_latex)
142
+ assert_equal( '5&euro;', element(:euros,{},5).to_html)
143
+ assert_equal( '\euros{5}', element(:euros,{},5).to_latex)
144
+ assert_equal( '&not;', element(:neg).to_html)
145
+ assert_equal( '&not;', element(:not).to_html)
146
+ assert_equal( '\ensuremath{\neg}', element(:neg).to_latex)
147
+ assert_equal( '\ensuremath{\neg}', element(:not).to_latex)
148
+ assert_equal( '&times;', element(:times).to_html)
149
+ assert_equal( '\ensuremath{\times}', element(:times).to_latex)
150
+ assert_equal( '&otimes;', element(:otimes).to_html)
151
+ assert_equal( '\ensuremath{\otimes}', element(:otimes).to_latex)
152
+ assert_equal( '&empty;', element(:empty).to_html)
153
+ assert_equal( '\ensuremath{\emptyset}', element(:empty).to_latex)
154
+ assert_equal( '_', element(:'_').to_html)
155
+ assert_equal( '_', element(:underscore).to_html)
156
+ assert_equal( '\_', element(:'_').to_latex)
157
+ assert_equal( '\_', element(:underscore).to_latex)
158
+ assert_equal( '&#149;', element(:bullet).to_html)
159
+ assert_equal( '\ensuremath{\bullet}', element(:bullet).to_latex)
160
+ assert_equal( '&ndash;', element(:'--').to_html)
161
+ assert_equal( '&ndash;', element(:ndash).to_html)
162
+ assert_equal( '--', element(:'--').to_latex)
163
+ assert_equal( '--', element(:ndash).to_latex)
164
+ assert_equal( '&mdash;', element(:'---').to_html)
165
+ assert_equal( '&mdash;', element(:mdash).to_html)
166
+ assert_equal( '---', element(:'---').to_latex)
167
+ assert_equal( '---', element(:mdash).to_latex)
168
+ assert_equal( '&dagger;', element(:dagger).to_html)
169
+ assert_equal( '\dag', element(:dagger).to_latex)
170
+ end
171
+ def test_section()
172
+ #~ log = Log4r::Logger.new( 'section_logger')
173
+ #~ log.level = Log4r::ERROR
174
+ #~ log.level = Log4r::DEBUG
175
+ #~ log.outputters = Log4r::StdoutOutputter.new('test_section')
176
+
177
+ text = [
178
+ element(:h1, {}, 'Abschnitt 1' ).cr,
179
+ element(:par, {}, 'Text zu Abschnitt 1' ).cr,
180
+ element(:h2, {}, 'Abschnitt 1.1' ).cr,
181
+ element(:p, {}, 'Text zu Abschnitt 1.1' ).cr,
182
+ element(:h1, {}, 'Abschnitt 2' ).cr,
183
+ element(:par, {}, 'Text zu Abschnitt 2' ).cr,
184
+ element(:h2, {}, 'Abschnitt 2.1' ).cr,
185
+ element(:p, {}, 'Text zu Abschnitt 2.1' ).cr
186
+ ]
187
+ assert_equal_filecontent( "expected/test_section.html", text.to_doc(:html))
188
+ assert_equal_filecontent( "expected/test_section.latex", text.to_doc(:latex))
189
+ assert_equal_filecontent( "expected/test_section.wiki", text.to_doc(:wiki))
190
+ assert_equal_filecontent( "expected/test_section.text", text.to_doc(:text))
191
+ end
192
+ def test_href()
193
+ #~ log = Log4r::Logger.new( 'section_logger')
194
+ #~ log.level = Log4r::ERROR
195
+ #~ log.level = Log4r::DEBUG
196
+ #~ log.outputters = Log4r::StdoutOutputter.new('test_section')
197
+
198
+ text = [
199
+ element(:p, {}, [ 'Jetzt ein ',
200
+ element(:label, { :name => 'ilink'}, 'Ziel'),
201
+ ' f�r einen Link',
202
+ ] ).cr,
203
+ element(:p, {}, [ 'Und hier der Textlink zum ',
204
+ element(:a, {:href=>'#ilink'}, 'Ziel.'),
205
+ ] ).cr,
206
+ ]
207
+ assert_equal_filecontent( "expected/test_href.html", text.to_doc(:html))
208
+ assert_equal_filecontent( "expected/test_href.latex", text.to_doc(:latex))
209
+ #~ assert_equal_filecontent( "expected/test_href.wiki", text.to_doc(:wiki))
210
+ assert_equal_filecontent( "expected/test_href.text", text.to_doc(:text)) #not good
211
+ end
212
+ end #Test_elements
213
+
214
+ class Test_lists < Test::Unit::TestCase
215
+ def test_itemize
216
+ ul = element(:ul, {}, [
217
+ element(:li, {}, 'Listpunkt 1'),
218
+ ])
219
+ assert_equal_filecontent( "expected/test_itemize.html", ul.to_doc(:html))
220
+ assert_equal_filecontent( "expected/test_itemize.latex", ul.to_doc(:latex))
221
+ assert_equal_filecontent( "expected/test_itemize.wiki", ul.to_doc(:wiki))
222
+ assert_equal_filecontent( "expected/test_itemize.text", ul.to_doc(:text))
223
+ end
224
+ def test_enumerate
225
+ ol = element(:ol, {}, [
226
+ element(:li, {}, 'Listpunkt 1'),
227
+ ])
228
+ assert_equal_filecontent( "expected/test_enumerate.html", ol.to_doc(:html))
229
+ assert_equal_filecontent( "expected/test_enumerate.latex", ol.to_doc(:latex))
230
+ assert_equal_filecontent( "expected/test_enumerate.wiki", ol.to_doc(:wiki))
231
+ assert_equal_filecontent( "expected/test_enumerate.text", ol.to_doc(:text))
232
+ end
233
+ def test_description
234
+ description = element(:description, {}, [
235
+ element(:dt, {}, 'Top 1'),
236
+ element(:dd, {}, 'Listpunkt 1'),
237
+ ])
238
+ assert_equal_filecontent( "expected/test_description.html", description.to_doc(:html))
239
+ assert_equal_filecontent( "expected/test_description.latex", description.to_doc(:latex))
240
+ assert_equal_filecontent( "expected/test_description.wiki", description.to_doc(:wiki))
241
+ assert_equal_filecontent( "expected/test_description.text", description.to_doc(:text))
242
+ end
243
+ end #Test_lists
244
+
245
+ class Test_footnotes < Test::Unit::TestCase
246
+ def test_footnote
247
+ text = [
248
+ element(:h1, {}, 'Abschnitt 1' ).cr,
249
+ element(:par, {}, [
250
+ 'Text zu Abschnitt 1',
251
+ element(:footnote,{}, 'Fu� eins'),
252
+ 'Weiterer Text',
253
+ ]
254
+ ).cr,
255
+ element(:h2, {}, 'Fu�noten' ).cr,
256
+ Footnotegroup.get,
257
+ ]
258
+ assert_equal_filecontent( "expected/test_footnote.html", text.to_doc(:html))
259
+ assert_equal_filecontent( "expected/test_footnote.latex", text.to_doc(:latex))
260
+ #~ assert_equal_filecontent( "expected/test_footnote.wiki", text.to_doc(:wiki))
261
+ #~ assert_equal_filecontent( "expected/test_footnote.text", text.to_doc(:text))
262
+ end #test_footnote
263
+ def test_footnote_group
264
+ Footnotegroup.clear()
265
+ text = [
266
+ element(:h1, {}, 'Abschnitt 1' ).cr,
267
+ element(:par, {}, [
268
+ 'Text zu Abschnitt 1',
269
+ element(:footnote,{ :groupid => 'g1' }, 'Fu� eins (g1)'),
270
+ 'Weiterer Text',
271
+ element(:footnote,{}, 'Noch ne Fu�note'),
272
+ ]
273
+ ).cr,
274
+ element(:h2, {}, 'Fu�noten' ).cr,
275
+ Footnotegroup.get,
276
+ element(:h3, {}, 'Fu�noten g1' ).cr,
277
+ Footnotegroup.get('g1'),
278
+ ]
279
+ assert_equal_filecontent( "expected/test_footnote_group.html", text.to_doc(:html))
280
+ assert_equal_filecontent( "expected/test_footnote_group.latex", text.to_doc(:latex))
281
+ #~ assert_equal_filecontent( "expected/test_footnote_group.wiki", text.to_doc(:wiki))
282
+ #~ assert_equal_filecontent( "expected/test_footnote_group.text", text.to_doc(:text))
283
+ end #test_footnote
284
+ end #Test_footnotes
285
+
286
+ class Test_tabular < Test::Unit::TestCase
287
+ def mk_tabular( columns, lines )
288
+
289
+ tab = element(:tabular, {
290
+ :columns => columns.size, #for HTML
291
+ :columndescription => 'c' * columns.size #for LaTeX
292
+ } ).CR
293
+
294
+ tab << row = element( :row, {:add_vspace=>'1ex'} ).cr
295
+ row << element(:multicolumn, {
296
+ :columns => columns.size,
297
+ :pos => 'c', #LaTeX
298
+ }, 'Titel over all columns' )
299
+ row.hline #Only LaTeX
300
+ tab << row = element( :row, {:add_vspace=>'1ex'} ).cr
301
+ row << multicol = element(:multicolumn, {
302
+ :pos => 'c', #LaTeX
303
+ }, 'SubTitel over all columns' )
304
+ multicol[:columns] <<columns.size
305
+ row.hline #Only LaTeX
306
+
307
+ lines.each{|line|
308
+ tab << row = element( :row ).cr
309
+ columns.each{|column|
310
+ row << element(:column, {}, "#{line}#{column}" )
311
+ }
312
+ }
313
+ return tab
314
+ end
315
+ def test_tabular()
316
+ text = mk_tabular( Array('A'..'D'), Array(1..5) )
317
+ assert_equal_filecontent( "expected/test_tabular.html", text.to_doc(:html))
318
+ #The line ends will be \\\\
319
+ #In usage in documents, it's converted into \\.
320
+ #
321
+ #~ doc = Document.new()
322
+ #~ doc.body << text.to_doc(:latex)
323
+ #~ doc.save('Test.tex') #\\ is ok
324
+ #
325
+ #~ $fixmes << "tabular/latex: tablines line 229 ../lib/docgenerator_tabular.rb#229"
326
+ assert_equal_filecontent( "expected/test_tabular.latex", text.to_doc(:latex))
327
+ assert_equal_filecontent( "expected/test_tabular.wiki", text.to_doc(:wiki))
328
+ $fixmes << "text-output for tables"
329
+ #~ assert_equal_filecontent( "expected/test_tabular.text", text.to_doc(:text))
330
+ end
331
+ def test_tabular_doc()
332
+ doc = Document.new()
333
+ doc.body << mk_tabular( Array('A'..'D'), Array(1..5) )
334
+ #~ doc.save('Test.tex', true) #\\ is ok
335
+
336
+ #~ doc.log.outputters = Log4r::StdoutOutputter.new('test_section')
337
+ #~ doc.log.level = Log4r::INFO
338
+
339
+ #~ assert_equal_filecontent( "expected/test_tabular_doc.html", text.to_doc(:html))
340
+
341
+ #The row ends in tabulars are \\.
342
+ #When used in documents, \\ is converted into \.
343
+ #So there is a special rule to double the \\ when used in combination with a filename.
344
+ assert_equal_filecontent( "expected/test_tabular_doc.latex", doc.to_doc(:latex,
345
+ { :log => doc.log, :template=> DocumentTemplate[:article], :filename => 'test'}
346
+ ) )
347
+ #~ assert_equal_filecontent( "expected/test_tabular_doc.wiki", text.to_doc(:wiki))
348
+ #~ assert_equal_filecontent( "expected/test_tabular_doc.text", text.to_doc(:text))
349
+ end
350
+ end
351
+
352
+
353
+ class Test_HTML < Test::Unit::TestCase
354
+ def test_html_css()
355
+ text = [
356
+ element(:div,{}, [ 'Block 1',
357
+ element(:span,{
358
+ :style => CSS.new(
359
+ :background_color => 'blue',
360
+ :color => 'red'
361
+ )
362
+ }, 'Zwischenblock' ),
363
+ 'Ende Block 1',
364
+ ]).cr
365
+ ]
366
+ assert_equal_filecontent( "expected/test_html_css.html", text.to_doc(:html))
367
+ #~ assert_equal_filecontent( "expected/test_block.latex", text.to_doc(:latex))
368
+ #~ assert_equal_filecontent( "expected/test_block.wiki", text.to_doc(:wiki))
369
+ #~ assert_equal_filecontent( "expected/test_block.text", text.to_doc(:text))
370
+ end
371
+ def test_css()
372
+ css = CSS.new(
373
+ :color => 'red',
374
+ :background_color => 'blue'
375
+ )
376
+ assert_equal_filecontent( "expected/test_css.css", css.to_s)
377
+ css[:float] = 'right'
378
+ assert_equal_filecontent( "expected/test_css2.css", css.to_html)
379
+ end
380
+ end
381
+ #~ class TestBeamer < Test::Unit::TestCase
382
+ #~ def test_beamer_note()
383
+ #~ text = element(:note,{}, 'Notiz').cr
384
+
385
+ #~ assert_equal_filecontent( "expected/test_beamer_note.html", text.to_doc(:html))
386
+ #~ assert_equal_filecontent( "expected/test_beamer_note.latex", text.to_doc(:latex))
387
+ #~ assert_equal_filecontent( "expected/test_beamer_note.wiki", text.to_doc(:wiki))
388
+ #~ assert_equal_filecontent( "expected/test_beamer_note.text", text.to_doc(:text))
389
+
390
+ #~ end
391
+ #~ end #TestBeamer
392
+
393
+ #
394
+ #Remark:
395
+ #- The <<prefix>> is replaced by Document.save.
396
+ #- With <<prefix>> we get always differences (timestamp)
397
+ class Test_document < Test::Unit::TestCase
398
+ def test_document()
399
+ doc = Document.new(
400
+ :title => 'Testdokument',
401
+ :keywords => 'Test',
402
+ :description => 'This is a test for a Document, generated by docgenerator.rb',
403
+ :author => 'docgenerator.rb',
404
+ :maketitle => true
405
+ )
406
+ doc.body << element(:p,{}, 'This is some content' )
407
+ #~ doc.save('test_document.html')
408
+ assert_instance_of( Log4r::Logger, doc.log)
409
+ assert_not_same( DOCGENERATOR_LOGGER, doc.log)
410
+ {
411
+ :html => :html,
412
+ :article => :latex,
413
+ :wiki => :wiki,
414
+ :text => :text,
415
+ }.each{|template, target|
416
+ filename = "test_document_#{template}.#{target}"
417
+ assert_equal_filecontent( "expected/#{filename}",
418
+ doc.to_doc(target, {
419
+ :template=> DocumentTemplate[template],
420
+ :filename => filename,
421
+ #~ :replacements => replacements,
422
+ :log => doc.log
423
+ }))
424
+ }
425
+ end
426
+ def test_doc_with_replacement()
427
+ doc = Document.new(
428
+ :title => 'Testdokument',
429
+ :keywords => 'Test',
430
+ :description => 'This is a test for a Document, generated by docgenerator.rb',
431
+ :author => 'docgenerator.rb',
432
+ :maketitle => true
433
+ )
434
+ doc.body << element(:p,{}, 'This is some content' )
435
+ #~ doc.save('test_document.html')
436
+ assert_instance_of( Log4r::Logger, doc.log)
437
+ assert_not_same( DOCGENERATOR_LOGGER, doc.log)
438
+ {
439
+ :html => :html,
440
+ :article => :latex,
441
+ :wiki => :wiki,
442
+ :text => :text,
443
+ }.each{|template, target|
444
+ filename = "test_document_replacement_#{template}.#{target}"
445
+ assert_equal_filecontent( "expected/#{filename}",
446
+ doc.to_doc(target, {
447
+ :template=> DocumentTemplate[template],
448
+ :filename => filename,
449
+ :replacements => {/This is some content/ => 'Etwas Inhalt' },
450
+ :log => doc.log
451
+ }))
452
+ }
453
+ end
454
+ end