test/test_latexbuilder.rb in review-0.9.0 vs test/test_latexbuilder.rb in review-1.0.0

- old
+ new

@@ -22,22 +22,22 @@ @builder.bind(@compiler, @chapter, location) end def test_headline_level1 @builder.headline(1,"test","this is test.") - assert_equal %Q|\\chapter{this is test.}\n|, @builder.result + assert_equal %Q|\\chapter{this is test.}\n\\label{chap:chap1}\n|, @builder.result end def test_headline_level1_without_secno @param["secnolevel"] = 0 @builder.headline(1,"test","this is test.") - assert_equal %Q|\\chapter*{this is test.}\n|, @builder.result + assert_equal %Q|\\chapter*{this is test.}\n\\label{chap:chap1}\n|, @builder.result end def test_headline_level1_with_inlinetag @builder.headline(1,"test","this @<b>{is} test.<&\"_>") - assert_equal %Q|\\chapter{this \\textbf{is} test.\\textless{}\\&"\\textunderscore{}\\textgreater{}}\n|, @builder.result + assert_equal %Q|\\chapter{this \\textbf{is} test.\\textless{}\\&"\\textunderscore{}\\textgreater{}}\n\\label{chap:chap1}\n|, @builder.result end def test_headline_level2 @builder.headline(2,"test","this is test.") assert_equal %Q|\\section{this is test.}\n|, @builder.result @@ -59,21 +59,26 @@ @builder.label("label_test") assert_equal %Q|\\label{label_test}\n|, @builder.result end def test_href - ret = @builder.compile_href("http://github.com", "GitHub") + ret = @builder.compile_inline('@<href>{http://github.com,GitHub}') assert_equal %Q|\\href{http://github.com}{GitHub}|, ret end + def test_inline_href + ret = @builder.compile_inline('@<href>{http://github.com,Git\\,Hub}') + assert_equal %Q|\\href{http://github.com}{Git,Hub}|, ret + end + def test_href_without_label - ret = @builder.compile_href("http://github.com",nil) - assert_equal %Q|\\href{http://github.com}{http://github.com}|, ret + ret = @builder.compile_inline('@<href>{http://github.com}') + assert_equal %Q|\\url{http://github.com}|, ret end def test_href_with_underscore - ret = @builder.compile_href("http://example.com/aaa/bbb", "AAA_BBB") + ret = @builder.compile_inline('@<href>{http://example.com/aaa/bbb, AAA_BBB}') assert_equal %Q|\\href{http://example.com/aaa/bbb}{AAA\\textunderscore{}BBB}|, ret end def test_inline_br ret = @builder.inline_br("") @@ -110,11 +115,11 @@ assert_equal %Q|abc\\texttt{def}ghi|, ret end def test_inline_raw ret = @builder.compile_inline("@<raw>{@<tt>{inline!$%\\}}") - assert_equal %Q|@\\textless{}tt\\textgreater{}\\{inline!\\textdollar{}\\%\\}|, ret + assert_equal "@<tt>{inline!$%}", ret end def test_inline_sup ret = @builder.compile_inline("abc@<sup>{def}") assert_equal %Q|abc\\textsuperscript{def}|, ret @@ -177,15 +182,42 @@ def test_inline_uchar ret = @builder.compile_inline("test @<uchar>{2460} test2") assert_equal %Q|test \\UTF{2460} test2|, ret end - def test_headline_level1 - @builder.headline(1,"test","this is test.") - assert_equal %Q|\\chapter{this is test.}\n|, @builder.result + def test_dlist + @builder.dl_begin + @builder.dt "foo" + @builder.dd ["foo.\n", "bar.\n"] + @builder.dl_end + assert_equal %Q|\n\\begin{description}\n\\item[foo] \\mbox{} \\\\\nfoo.\nbar.\n\\end{description}\n|, @builder.result end + def test_cmd + lines = ["foo", "bar", "","buz"] + @builder.cmd(lines) + assert_equal %Q|\n\\begin{reviewcmd}\n\\begin{alltt}\nfoo\nbar\n\nbuz\n\\end{alltt}\n\\end{reviewcmd}\n|, @builder.result + end + + def test_cmd_caption + lines = ["foo", "bar", "","buz"] + @builder.cmd(lines, "cap1") + assert_equal %Q|\n\\reviewcmdcaption{cap1}\n\\begin{reviewcmd}\n\\begin{alltt}\nfoo\nbar\n\nbuz\n\\end{alltt}\n\\end{reviewcmd}\n|, @builder.result + end + + def test_emlist + lines = ["foo", "bar", "","buz"] + @builder.emlist(lines) + assert_equal %Q|\n\\begin{reviewemlist}\n\\begin{alltt}\nfoo\nbar\n\nbuz\n\\end{alltt}\n\\end{reviewemlist}\n|, @builder.result + end + + def test_emlist_caption + lines = ["foo", "bar", "","buz"] + @builder.emlist(lines, "cap1") + assert_equal %Q|\n\\reviewemlistcaption{cap1}\n\\begin{reviewemlist}\n\\begin{alltt}\nfoo\nbar\n\nbuz\n\\end{alltt}\n\\end{reviewemlist}\n|, @builder.result + end + def test_quote lines = ["foo", "bar", "","buz"] @builder.quote(lines) assert_equal %Q|\n\\begin{quote}\nfoobar\n\nbuz\n\\end{quote}\n|, @builder.result end @@ -202,27 +234,22 @@ def test_noindent @builder.noindent @builder.paragraph(["foo", "bar"]) @builder.paragraph(["foo2", "bar2"]) - assert_equal %Q|\\noindent\n\nfoo\nbar\n\nfoo2\nbar2\n|, @builder.raw_result + assert_equal %Q|\\noindent\nfoo\nbar\n\nfoo2\nbar2\n|, @builder.raw_result end - def test_raw - @builder.raw("<&>\\n") - assert_equal %Q|<&>\n|, @builder.result - end - def test_image def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) item.instance_eval{@pathes=["./images/chap1-sampleimg.png"]} item end @builder.image_image("sampleimg","sample photo",nil) - assert_equal %Q|\\begin{reviewimage}\n\\includegraphics{./images/chap1-sampleimg.png}\n\\label{image:chap1:sampleimg}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result + assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}\n\\label{image:chap1:sampleimg}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result end def test_image_with_metric def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) @@ -232,20 +259,31 @@ @builder.image_image("sampleimg","sample photo","scale=1.2") assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[scale=1.2]{./images/chap1-sampleimg.png}\n\\label{image:chap1:sampleimg}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result end + def test_image_with_metric2 + def @chapter.image(id) + item = ImageIndex::Item.new("sampleimg",1) + item.instance_eval{@pathes=["./images/chap1-sampleimg.png"]} + item + end + + @builder.image_image("sampleimg","sample photo","scale=1.2, html::class=\"sample\", latex::height=3cm") + assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[scale=1.2,height=3cm]{./images/chap1-sampleimg.png}\n\\label{image:chap1:sampleimg}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result + end + def test_indepimage def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) item.instance_eval{@pathes=["./images/chap1-sampleimg.png"]} item end # FIXME: indepimage's caption should not be with a counter. @builder.indepimage("sampleimg","sample photo",nil) - assert_equal %Q|\\begin{reviewimage}\n\\includegraphics{./images/chap1-sampleimg.png}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result + assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result end def test_indepimage_without_caption def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) @@ -253,11 +291,11 @@ item end # FIXME: indepimage's caption should not be with a counter. @builder.indepimage("sampleimg",nil,nil) - assert_equal %Q|\\begin{reviewimage}\n\\includegraphics{./images/chap1-sampleimg.png}\n\\end{reviewimage}\n|, @builder.raw_result + assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[width=\\maxwidth]{./images/chap1-sampleimg.png}\n\\end{reviewimage}\n|, @builder.raw_result end def test_indepimage_with_metric def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) @@ -268,18 +306,276 @@ # FIXME: indepimage's caption should not be with a counter. @builder.indepimage("sampleimg","sample photo","scale=1.2") assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[scale=1.2]{./images/chap1-sampleimg.png}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result end + def test_indepimage_with_metric2 + def @chapter.image(id) + item = ImageIndex::Item.new("sampleimg",1) + item.instance_eval{@pathes=["./images/chap1-sampleimg.png"]} + item + end + + # FIXME: indepimage's caption should not be with a counter. + @builder.indepimage("sampleimg","sample photo","scale=1.2, latex::height=3cm, html::class=\"sample\"") + assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[scale=1.2,height=3cm]{./images/chap1-sampleimg.png}\n\\caption{sample photo}\n\\end{reviewimage}\n|, @builder.raw_result + end + def test_indepimage_without_caption_but_with_metric def @chapter.image(id) item = ImageIndex::Item.new("sampleimg",1) item.instance_eval{@pathes=["./images/chap1-sampleimg.png"]} item end # FIXME: indepimage's caption should not be with a counter. @builder.indepimage("sampleimg",nil,"scale=1.2") assert_equal %Q|\\begin{reviewimage}\n\\includegraphics[scale=1.2]{./images/chap1-sampleimg.png}\n\\end{reviewimage}\n|, @builder.raw_result + end + + def test_bib + def @chapter.bibpaper(id) + BibpaperIndex::Item.new("samplebib",1,"sample bib") + end + + assert_equal "[1]", @builder.inline_bib("samplebib") + end + + def test_bibpaper + def @chapter.bibpaper(id) + BibpaperIndex::Item.new("samplebib",1,"sample bib") + end + + @builder.bibpaper(["a", "b"], "samplebib", "sample bib @<b>{bold}") + assert_equal %Q|[1] sample bib \\textbf{bold}\n\na\nb\n\n|, @builder.raw_result + end + + def test_bibpaper_without_body + def @chapter.bibpaper(id) + BibpaperIndex::Item.new("samplebib",1,"sample bib") + end + + @builder.bibpaper([], "samplebib", "sample bib") + assert_equal %Q|[1] sample bib\n\n|, @builder.raw_result + end + + def column_helper(review) + chap_singleton = class << @chapter; self; end + chap_singleton.send(:define_method, :content) { review } + @compiler.compile(@chapter) + end + + def test_column_1 + review =<<-EOS +===[column] prev column + +inside prev column + +===[column] test + +inside column + +===[/column] +EOS + expect =<<-EOS + +\\begin{reviewcolumn} +\\reviewcolumnhead{}{prev column} + +inside prev column + +\\end{reviewcolumn} + +\\begin{reviewcolumn} +\\reviewcolumnhead{}{test} + +inside column + +\\end{reviewcolumn} +EOS + assert_equal expect, column_helper(review) + end + + def test_column_2 + review =<<-EOS +===[column] test + +inside column + +=== next level +EOS + expect =<<-EOS + +\\begin{reviewcolumn} +\\reviewcolumnhead{}{test} + +inside column + +\\end{reviewcolumn} + +\\subsection*{next level} +EOS + + assert_equal expect, column_helper(review) + end + + def test_column_3 + review =<<-EOS +===[column] test + +inside column + +===[/column_dummy] +EOS + assert_raise(ReVIEW::CompileError) do + column_helper(review) + end + end + + def test_ul + src =<<-EOS + * AAA + * BBB +EOS + expect =<<-EOS + +\\begin{itemize} +\\item AAA +\\item BBB +\\end{itemize} +EOS + ul_helper(src, expect) + end + + def test_cont + src =<<-EOS + * AAA + -AA + * BBB + -BB +EOS + expect =<<-EOS + +\\begin{itemize} +\\item AAA-AA +\\item BBB-BB +\\end{itemize} +EOS + ul_helper(src, expect) + end + + def test_ul_nest1 + src =<<-EOS + * AAA + ** AA +EOS + + expect =<<-EOS + +\\begin{itemize} +\\item AAA + +\\begin{itemize} +\\item AA +\\end{itemize} + +\\end{itemize} +EOS + ul_helper(src, expect) + end + + def test_ul_nest3 + src =<<-EOS + * AAA + ** AA + * BBB + ** BB +EOS + + expect =<<-EOS + +\\begin{itemize} +\\item AAA + +\\begin{itemize} +\\item AA +\\end{itemize} + +\\item BBB + +\\begin{itemize} +\\item BB +\\end{itemize} + +\\end{itemize} +EOS + ul_helper(src, expect) + end + + def test_inline_raw0 + assert_equal "normal", @builder.inline_raw("normal") + end + + def test_inline_raw1 + assert_equal "body", @builder.inline_raw("|latex|body") + end + + def test_inline_raw2 + assert_equal "body", @builder.inline_raw("|html, latex|body") + end + + def test_inline_raw3 + assert_equal "", @builder.inline_raw("|idgxml, html|body") + end + + def test_inline_raw4 + assert_equal "|latex body", @builder.inline_raw("|latex body") + end + + def test_inline_raw5 + assert_equal "nor\nmal", @builder.inline_raw("|latex|nor\\nmal") + end + + def test_block_raw0 + @builder.raw("<>!\"\\n& ") + expect =<<-EOS +<>!" +& +EOS + assert_equal expect.chomp, @builder.raw_result + end + + def test_block_raw1 + @builder.raw("|latex|<>!\"\\n& ") + expect =<<-EOS +<>!" +& +EOS + assert_equal expect.chomp, @builder.raw_result + end + + def test_block_raw2 + @builder.raw("|html, latex|<>!\"\\n& ") + expect =<<-EOS +<>!\" +& +EOS + assert_equal expect.chomp, @builder.raw_result + end + + def test_block_raw3 + @builder.raw("|html, idgxml|<>!\"\\n& ") + expect =<<-EOS +EOS + assert_equal expect.chomp, @builder.raw_result + end + + def test_block_raw4 + @builder.raw("|latex <>!\"\\n& ") + expect =<<-EOS +|latex <>!\" +& +EOS + assert_equal expect.chomp, @builder.raw_result end end