summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/generate.sh1
-rw-r--r--tests/runtests.pl10
-rw-r--r--tests/tables.context135
-rw-r--r--tests/writer.context708
4 files changed, 853 insertions, 1 deletions
diff --git a/tests/generate.sh b/tests/generate.sh
index c2e5eff0f..15e931b6c 100755
--- a/tests/generate.sh
+++ b/tests/generate.sh
@@ -8,4 +8,5 @@
../pandoc -r native -s -w rtf testsuite.native > writer.rtf
../pandoc -r native -s -w man testsuite.native > writer.man
sed -e '/^, Header 1 \[Str "HTML",Space,Str "Blocks"\]/,/^, HorizontalRule/d' testsuite.native | ../pandoc -r native -w docbook -s > writer.docbook
+sed -e '/^, Header 1 \[Str "LaTeX"\]/,/^, HorizontalRule/d' testsuite.native | ../pandoc -r native -w context -s > writer.context
diff --git a/tests/runtests.pl b/tests/runtests.pl
index af0f0bc16..06e7a1b3e 100644
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -14,7 +14,7 @@ unless (-x $script) { die "$script is not executable.\n"; }
print "Writer tests:\n";
-my @writeformats = ("html", "latex", "rst", "rtf", "markdown", "man", "native"); # docbook and s5 handled separately
+my @writeformats = ("html", "latex", "rst", "rtf", "markdown", "man", "native"); # docbook, context, and s5 handled separately
my @readformats = ("latex", "native"); # handle html,markdown & rst separately
my $source = "testsuite.native";
@@ -61,6 +61,14 @@ test_results("docbook writer", "tmp.docbook", "writer.docbook");
print " docbook tables...";
test_results("docbook tables", "tmp.docbook", "tables.docbook");
+print "Testing context writer...";
+# remove LaTeX tests, as this produces invalid docbook...
+`sed -e '/^, Header 1 \\[Str "LaTeX"\\]/,/^, HorizontalRule/d' testsuite.native | $script -r native -w context -s > tmp.context`;
+test_results("context writer", "tmp.context", "writer.context");
+`$script -r native -w context tables.native > tmp.context`;
+print " context tables...";
+test_results("context tables", "tmp.context", "tables.context");
+
print "Testing s5 writer (basic)...";
`$script -r native -w s5 -s s5.native > tmp.html`;
test_results("s5 writer (basic)", "tmp.html", "s5.basic.html");
diff --git a/tests/tables.context b/tests/tables.context
new file mode 100644
index 000000000..cb6e9ccd1
--- /dev/null
+++ b/tests/tables.context
@@ -0,0 +1,135 @@
+Simple table with caption:
+
+\placetable[here]{Demonstration of simple table syntax.}
+\starttable[|rp(0.15\textwidth)|lp(0.09\textwidth)|cp(0.16\textwidth)|lp(0.13\textwidth)|]
+\HL
+\NC Right
+\NC Left
+\NC Center
+\NC Default
+\NC\AR
+\HL
+\NC 12
+\NC 12
+\NC 12
+\NC 12
+\NC\AR
+\NC 123
+\NC 123
+\NC 123
+\NC 123
+\NC\AR
+\NC 1
+\NC 1
+\NC 1
+\NC 1
+\NC\AR
+\HL
+\stoptable
+
+Simple table without caption:
+
+\placetable[here]{none}
+\starttable[|rp(0.15\textwidth)|lp(0.09\textwidth)|cp(0.16\textwidth)|lp(0.13\textwidth)|]
+\HL
+\NC Right
+\NC Left
+\NC Center
+\NC Default
+\NC\AR
+\HL
+\NC 12
+\NC 12
+\NC 12
+\NC 12
+\NC\AR
+\NC 123
+\NC 123
+\NC 123
+\NC 123
+\NC\AR
+\NC 1
+\NC 1
+\NC 1
+\NC 1
+\NC\AR
+\HL
+\stoptable
+
+Simple table indented two spaces:
+
+\placetable[here]{Demonstration of simple table syntax.}
+\starttable[|rp(0.15\textwidth)|lp(0.09\textwidth)|cp(0.16\textwidth)|lp(0.13\textwidth)|]
+\HL
+\NC Right
+\NC Left
+\NC Center
+\NC Default
+\NC\AR
+\HL
+\NC 12
+\NC 12
+\NC 12
+\NC 12
+\NC\AR
+\NC 123
+\NC 123
+\NC 123
+\NC 123
+\NC\AR
+\NC 1
+\NC 1
+\NC 1
+\NC 1
+\NC\AR
+\HL
+\stoptable
+
+Multiline table with caption:
+
+\placetable[here]{Here's the caption. It may span multiple lines.}
+\starttable[|cp(0.15\textwidth)|lp(0.14\textwidth)|rp(0.16\textwidth)|lp(0.34\textwidth)|]
+\HL
+\NC Centered Header
+\NC Left Aligned
+\NC Right Aligned
+\NC Default aligned
+\NC\AR
+\HL
+\NC First
+\NC row
+\NC 12.0
+\NC Example of a row that spans multiple lines.
+\NC\AR
+\NC Second
+\NC row
+\NC 5.0
+\NC Here's another one. Note the blank line between rows.
+\NC\AR
+\HL
+\stoptable
+
+Multiline table without caption:
+
+\placetable[here]{none}
+\starttable[|cp(0.15\textwidth)|lp(0.14\textwidth)|rp(0.16\textwidth)|lp(0.34\textwidth)|]
+\HL
+\NC Centered Header
+\NC Left Aligned
+\NC Right Aligned
+\NC Default aligned
+\NC\AR
+\HL
+\NC First
+\NC row
+\NC 12.0
+\NC Example of a row that spans multiple lines.
+\NC\AR
+\NC Second
+\NC row
+\NC 5.0
+\NC Here's another one. Note the blank line between rows.
+\NC\AR
+\HL
+\stoptable
+
diff --git a/tests/writer.context b/tests/writer.context
new file mode 100644
index 000000000..4176965e9
--- /dev/null
+++ b/tests/writer.context
@@ -0,0 +1,708 @@
+\enableregime[utf] % use UTF-8
+
+\setupcolors[state=start]
+\setupinteraction[state=start, color=middlered] % needed for hyperlinks
+
+\setuppapersize[letter][letter] % use letter paper
+\setuplayout[width=6in, height=9.5in] % page layout
+\setuppagenumbering[location={footer,center}, style=bold] % number pages
+\setupbodyfont[11pt] % 11pt font
+\setupwhitespace[medium] % inter-paragraph spacing
+
+\setuphead[section][style=\tfc]
+\setuphead[subsection][style=\tfb]
+\setuphead[subsubsection][style=\bf]
+
+% define title block commands
+\unprotect
+\def\doctitle#1{\gdef\@title{#1}}
+\def\author#1{\gdef\@author{#1}}
+\def\date#1{\gdef\@date{#1}}
+\date{\currentdate} % Default to today unless specified otherwise.
+\def\maketitle{%
+ \startalignment[center]
+ \blank[2*big]
+ {\tfd \@title}
+ \blank[3*medium]
+ {\tfa \@author}
+ \blank[2*medium]
+ {\tfa \@date}
+ \blank[3*medium]
+ \stopalignment}
+\protect
+
+% define descr (for definition lists)
+\definedescription[descr][
+ headstyle=bold,style=normal,align=left,location=hanging,
+ width=broad,margin=1cm]
+
+% define ltxitem (for bulleted lists)
+\defineitemgroup[ltxitem][levels=4]
+\setupitemgroup[ltxitem][1][1]
+\setupitemgroup[ltxitem][2][2]
+\setupitemgroup[ltxitem][3][3]
+\setupitemgroup[ltxitem][4][4,packed]
+
+% define ltxenum (for enumerated lists)
+\defineitemgroup[ltxenum][levels=4]
+\setupitemgroup[ltxenum][1][n]
+\setupitemgroup[ltxenum][2][a]
+\setupitemgroup[ltxenum][3][r]
+\setupitemgroup[ltxenum][4][A,packed]
+
+\setupthinrules[width=15em] % width of horizontal rules
+
+\setupheads[sectionnumber=no, style=\bf]
+\doctitle{Pandoc Test Suite}
+ \author{John MacFarlane \& Anonymous}
+ \date{July 17, 2006}
+
+\starttext
+\maketitle
+
+This is a set of tests for pandoc. Most of them are adapted from John Gruber's markdown test suite.
+
+\thinrule
+
+\section{Headers}
+
+\subsection{Level 2 with an \useurl[1][/url][][embedded link]\from[1]}
+
+\subsubsection{Level 3 with {\em emphasis}}
+
+Level 4
+
+Level 5
+
+\section{Level 1}
+
+\subsection{Level 2 with {\em emphasis}}
+
+\subsubsection{Level 3}
+
+with no blank line
+
+\subsection{Level 2}
+
+with no blank line
+
+\thinrule
+
+\section{Paragraphs}
+
+Here's a regular paragraph.
+
+In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.
+
+Here's one with a bullet. * criminey.
+
+There should be a hard line break\hfil\break
+here.
+
+\thinrule
+
+\section{Block Quotes}
+
+E-mail style:
+
+\startnarrower
+This is a block quote. It is pretty short.
+
+\stopnarrower
+
+\startnarrower
+Code in a block quote:
+
+\starttyping
+sub status {
+ print "working";
+}
+\stoptyping
+A list:
+
+\startltxenum
+\item item one
+\item item two
+\stopltxenum
+Nested block quotes:
+
+\startnarrower
+nested
+
+\stopnarrower
+
+\startnarrower
+nested
+
+\stopnarrower
+
+\stopnarrower
+
+This should not be a block quote: 2 \lettermore{} 1.
+
+Box-style:
+
+\startnarrower
+Example:
+
+\starttyping
+sub status {
+ print "working";
+}
+\stoptyping
+\stopnarrower
+
+\startnarrower
+\startltxenum
+\item do laundry
+\item take out the trash
+\stopltxenum
+\stopnarrower
+
+Here's a nested one:
+
+\startnarrower
+Joe said:
+
+\startnarrower
+Don't quote me.
+
+\stopnarrower
+
+\stopnarrower
+
+And a following paragraph.
+
+\thinrule
+
+\section{Code Blocks}
+
+Code:
+
+\starttyping
+---- (should be four hyphens)
+
+sub status {
+ print "working";
+}
+
+this code block is indented by one tab
+\stoptyping
+And:
+
+\starttyping
+ this code block is indented by two tabs
+
+These should not be escaped: \$ \\ \> \[ \{
+\stoptyping
+\thinrule
+
+\section{Lists}
+
+\subsection{Unordered}
+
+Asterisks tight:
+
+\startltxitem
+\item asterisk 1
+\item asterisk 2
+\item asterisk 3
+\stopltxitem
+Asterisks loose:
+
+\startltxitem
+\item asterisk 1
+
+\item asterisk 2
+
+\item asterisk 3
+
+\stopltxitem
+Pluses tight:
+
+\startltxitem
+\item Plus 1
+\item Plus 2
+\item Plus 3
+\stopltxitem
+Pluses loose:
+
+\startltxitem
+\item Plus 1
+
+\item Plus 2
+
+\item Plus 3
+
+\stopltxitem
+Minuses tight:
+
+\startltxitem
+\item Minus 1
+\item Minus 2
+\item Minus 3
+\stopltxitem
+Minuses loose:
+
+\startltxitem
+\item Minus 1
+
+\item Minus 2
+
+\item Minus 3
+
+\stopltxitem
+\subsection{Ordered}
+
+Tight:
+
+\startltxenum
+\item First
+\item Second
+\item Third
+\stopltxenum
+and:
+
+\startltxenum
+\item One
+\item Two
+\item Three
+\stopltxenum
+Loose using tabs:
+
+\startltxenum
+\item First
+
+\item Second
+
+\item Third
+
+\stopltxenum
+and using spaces:
+
+\startltxenum
+\item One
+
+\item Two
+
+\item Three
+
+\stopltxenum
+Multiple paragraphs:
+
+\startltxenum
+\item Item 1, graf one.
+
+Item 1. graf two. The quick brown fox jumped over the lazy dog's back.
+
+\item Item 2.
+
+\item Item 3.
+
+\stopltxenum
+\subsection{Nested}
+
+\startltxitem
+\item Tab
+\startltxitem
+\item Tab
+\startltxitem
+\item Tab
+\stopltxitem
+\stopltxitem
+\stopltxitem
+Here's another:
+
+\startltxenum
+\item First
+\item Second:
+\startltxitem
+\item Fee
+\item Fie
+\item Foe
+\stopltxitem
+\item Third
+\stopltxenum
+Same thing but with paragraphs:
+
+\startltxenum
+\item First
+
+\item Second:
+
+\startltxitem
+\item Fee
+\item Fie
+\item Foe
+\stopltxitem
+\item Third
+
+\stopltxenum
+\subsection{Tabs and spaces}
+
+\startltxitem
+\item this is a list item indented with tabs
+
+\item this is a list item indented with spaces
+
+\startltxitem
+\item this is an example list item indented with tabs
+
+\item this is an example list item indented with spaces
+
+\stopltxitem
+\stopltxitem
+\thinrule
+
+\section{Definition Lists}
+
+Tight using spaces:
+
+\startdescr{apple}
+red fruit
+
+\stopdescr
+\startdescr{orange}
+orange fruit
+
+\stopdescr
+\startdescr{banana}
+yellow fruit
+
+\stopdescr
+
+Tight using tabs:
+
+\startdescr{apple}
+red fruit
+
+\stopdescr
+\startdescr{orange}
+orange fruit
+
+\stopdescr
+\startdescr{banana}
+yellow fruit
+
+\stopdescr
+
+Loose:
+
+\startdescr{apple}
+red fruit
+
+
+\stopdescr
+\startdescr{orange}
+orange fruit
+
+
+\stopdescr
+\startdescr{banana}
+yellow fruit
+
+
+\stopdescr
+
+Multiple blocks with italics:
+
+\startdescr{{\em apple}}
+red fruit
+
+contains seeds, crisp, pleasant to taste
+
+
+\stopdescr
+\startdescr{{\em orange}}
+orange fruit
+
+\starttyping
+{ orange code block }
+\stoptyping
+\startnarrower
+orange block quote
+
+\stopnarrower
+
+
+\stopdescr
+
+\section{HTML Blocks}
+
+Simple block on one line:
+
+foo
+And nested without indentation:
+
+foo
+bar
+Interpreted markdown in a table:
+
+This is {\em emphasized}
+And this is {\bf strong}
+Here's a simple block:
+
+foo
+This should be a code block, though:
+
+\starttyping
+<div>
+ foo
+</div>
+\stoptyping
+As should this:
+
+\starttyping
+<div>foo</div>
+\stoptyping
+Now, nested:
+
+foo
+This should just be an HTML comment:
+
+Multiline:
+
+Code block:
+
+\starttyping
+<!-- Comment -->
+\stoptyping
+Just plain comment, with trailing spaces on the line:
+
+Code:
+
+\starttyping
+<hr />
+\stoptyping
+Hr's:
+
+\thinrule
+
+\section{Inline Markup}
+
+This is {\em emphasized}, and so {\em is this}.
+
+This is {\bf strong}, and so {\bf is this}.
+
+An {\em \useurl[2][/url][][emphasized link]\from[2]}.
+
+{\bf {\em This is strong and em.}}
+
+So is {\bf {\em this}} word.
+
+{\bf {\em This is strong and em.}}
+
+So is {\bf {\em this}} word.
+
+This is code: \type{>}, \type{$}, \type{\}, \type{\$}, \type{<html>}.
+
+\thinrule
+
+\section{Smart quotes, ellipses, dashes}
+
+\quotation{Hello,} said the spider. \quotation{\quote{Shelob} is my name.}
+
+\quote{A}, \quote{B}, and \quote{C} are letters.
+
+\quote{Oak,} \quote{elm,} and \quote{beech} are names of trees. So is \quote{pine.}
+
+\quote{He said, \quotation{I want to go.}} Were you alive in the 70's?
+
+Here is some quoted \quote{\type{code}} and a \quotation{\useurl[3][http://example.com/?foo=1&bar=2][][quoted link]\from[3]}.
+
+Some dashes: one---two---three---four---five.
+
+Dashes between numbers: 5--7, 255--66, 1987--1999.
+
+Ellipses\ldots{}and\ldots{}and\ldots{}.
+
+\thinrule
+
+\section{Special Characters}
+
+Here is some unicode:
+
+\startltxitem
+\item I hat: Î
+\item o umlaut: ö
+\item section: §
+\item set membership: ∈
+\item copyright: ©
+\stopltxitem
+AT\&T has an ampersand in their name.
+
+AT\&T is another way to write it.
+
+This \& that.
+
+4 \letterless{} 5.
+
+6 \lettermore{} 5.
+
+Backslash: \letterbackslash{}
+
+Backtick: `
+
+Asterisk: *
+
+Underscore: \letterunderscore{}
+
+Left brace: \letteropenbrace{}
+
+Right brace: \letterclosebrace{}
+
+Left bracket: [
+
+Right bracket: ]
+
+Left paren: (
+
+Right paren: )
+
+Greater-than: \lettermore{}
+
+Hash: \#
+
+Period: .
+
+Bang: !
+
+Plus: +
+
+Minus: -
+
+\thinrule
+
+\section{Links}
+
+\subsection{Explicit}
+
+Just a \useurl[4][/url/][][URL]\from[4].
+
+\useurl[5][/url/][][URL and title]\from[5].
+
+\useurl[6][/url/][][URL and title]\from[6].
+
+\useurl[7][/url/][][URL and title]\from[7].
+
+\useurl[8][/url/][][URL and title]\from[8]
+
+\useurl[9][/url/][][URL and title]\from[9]
+
+\useurl[10][/url/with_underscore][][with\letterunderscore{}underscore]\from[10]
+
+\useurl[11][mailto:nobody@nowhere.net][][Email link]\from[11]
+
+\useurl[12][][][Empty]\from[12].
+
+\subsection{Reference}
+
+Foo \useurl[13][/url/][][bar]\from[13].
+
+Foo \useurl[14][/url/][][bar]\from[14].
+
+Foo \useurl[15][/url/][][bar]\from[15].
+
+With \useurl[16][/url/][][embedded [brackets]]\from[16].
+
+\useurl[17][/url/][][b]\from[17] by itself should be a link.
+
+Indented \useurl[18][/url][][once]\from[18].
+
+Indented \useurl[19][/url][][twice]\from[19].
+
+Indented \useurl[20][/url][][thrice]\from[20].
+
+This should [not][] be a link.
+
+\starttyping
+[not]: /url
+\stoptyping
+Foo \useurl[21][/url/][][bar]\from[21].
+
+Foo \useurl[22][/url/][][biz]\from[22].
+
+\subsection{With ampersands}
+
+Here's a \useurl[23][http://example.com/?foo=1&bar=2][][link with an ampersand in the URL]\from[23].
+
+Here's a link with an amersand in the link text: \useurl[24][http://att.com/][][AT\&T]\from[24].
+
+Here's an \useurl[25][/script?foo=1&bar=2][][inline link]\from[25].
+
+Here's an \useurl[26][/script?foo=1&bar=2][][inline link in pointy braces]\from[26].
+
+\subsection{Autolinks}
+
+With an ampersand: \useurl[27][http://example.com/?foo=1&bar=2][][http://example.com/?foo=1\&bar=2]\from[27]
+
+\startltxitem
+\item In a list?
+\item \useurl[28][http://example.com/][][http://example.com/]\from[28]
+\item It should.
+\stopltxitem
+An e-mail address: \useurl[29][mailto:nobody@nowhere.net][][nobody@nowhere.net]\from[29]
+
+\startnarrower
+Blockquoted: \useurl[30][http://example.com/][][http://example.com/]\from[30]
+
+\stopnarrower
+
+Auto-links should not occur here: \type{<http://example.com/>}
+
+\starttyping
+or here: <http://example.com/>
+\stoptyping
+\thinrule
+
+\section{Images}
+
+From \quotation{Voyage dans la Lune} by Georges Melies (1902):
+
+\placefigure
+[]
+[fig:lalune]
+{Voyage dans la Lune}
+{\externalfigure[lalune.jpg]}
+
+Here is a movie \placefigure
+[]
+[fig:movie]
+{}
+{\externalfigure[movie.jpg]} icon.
+
+\thinrule
+
+\section{Footnotes}
+
+Here is a footnote reference,\footnote{Here is the footnote. It can go anywhere after the footnote reference. It need not be placed at the end of the document.
+
+} and another.\footnote{Here's the long note. This one contains multiple blocks.
+
+Subsequent blocks are indented to show that they belong to the footnote (as with list items).
+
+\starttyping
+ { <code> }
+\stoptyping
+If you want, you can indent every line, but you can also be lazy and just indent the first line of each block.
+
+} This should {\em not} be a footnote reference, because it contains a space.[\letterhat{}my note] Here is an inline note.\footnote{This is {\em easier} to type. Inline notes may contain \useurl[31][http://google.com][][links]\from[31] and \type{]} verbatim characters, as well as [bracketed text].
+
+}
+
+\startnarrower
+Notes can go in quotes.\footnote{In quote.
+
+}
+
+\stopnarrower
+
+\startltxenum
+\item And in list items.\footnote{In list.
+
+}
+\stopltxenum
+This paragraph should not be part of the note, as it is not indented.
+
+
+\stoptext