summaryrefslogtreecommitdiff
path: root/test/functional/input
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/input')
-rw-r--r--test/functional/input/compact_lists.txt39
-rw-r--r--test/functional/input/dangerous.txt16
-rw-r--r--test/functional/input/data/custom_roles.txt6
-rw-r--r--test/functional/input/data/errors.txt9
-rw-r--r--test/functional/input/data/header_footer.txt2
-rw-r--r--test/functional/input/data/latex.txt201
-rw-r--r--test/functional/input/data/list_table.txt24
-rw-r--r--test/functional/input/data/nonalphanumeric.txt13
-rw-r--r--test/functional/input/data/standard.txt753
-rw-r--r--test/functional/input/data/table_colspan.txt15
-rw-r--r--test/functional/input/data/table_complex.txt21
-rw-r--r--test/functional/input/data/table_rowspan.txt15
-rw-r--r--test/functional/input/data/unicode.txt27
-rw-r--r--test/functional/input/field_list.txt5
-rw-r--r--test/functional/input/latex_docinfo.txt10
-rw-r--r--test/functional/input/pep_html.txt32
-rw-r--r--test/functional/input/simple.txt1
-rw-r--r--test/functional/input/standalone_rst_html4css1.txt8
-rw-r--r--test/functional/input/standalone_rst_latex.txt12
-rw-r--r--test/functional/input/standalone_rst_newlatex.txt12
-rw-r--r--test/functional/input/standalone_rst_pseudoxml.txt7
-rw-r--r--test/functional/input/standalone_rst_s5_html.txt126
22 files changed, 1354 insertions, 0 deletions
diff --git a/test/functional/input/compact_lists.txt b/test/functional/input/compact_lists.txt
new file mode 100644
index 000000000..ec13a97be
--- /dev/null
+++ b/test/functional/input/compact_lists.txt
@@ -0,0 +1,39 @@
+* This is an ordinary simple bullet list.
+* It should be made compact (<p> & </p> tags omitted).
+
+**********
+
+* This is a bullet list that is not simple.
+
+ There are multiple paragraphs in some items.
+
+* It should not be made compact.
+
+* Even though some items may have only one paragraph.
+
+**********
+
+.. class:: open
+
+* This is a simple bullet list, but class="open" is set.
+* It should not be made compact.
+
+**********
+
+.. class:: compact
+
+* This is a bullet list that is not simple.
+
+ There are multiple paragraphs in some items.
+
+* However, the class="compact" setting will cause
+ all first paragraph's <p> & </p> tags to be omitted.
+
+* Items with multiple paragraphs will not appear changed.
+
+* Items may have one paragraph, or multiple.
+
+ Items with multiple paragraphs will still be followed
+ by vertical whitespace because of the later paragraphs.
+
+* The effect is interesting.
diff --git a/test/functional/input/dangerous.txt b/test/functional/input/dangerous.txt
new file mode 100644
index 000000000..8f75386c8
--- /dev/null
+++ b/test/functional/input/dangerous.txt
@@ -0,0 +1,16 @@
+Potentially dangerous features (security holes):
+
+.. include:: /etc/passwd
+.. raw:: html
+ :file: /etc/passwd
+.. raw:: html
+ :url: file:///etc/passwd
+.. raw:: html
+
+ <script>
+ that does something really nasty
+ </script>
+.. csv-table:: :file: /etc/passwd
+.. csv-table:: :url: file:///etc/passwd
+.. figure:: picture.png
+ :figwidth: image
diff --git a/test/functional/input/data/custom_roles.txt b/test/functional/input/data/custom_roles.txt
new file mode 100644
index 000000000..0f209d61e
--- /dev/null
+++ b/test/functional/input/data/custom_roles.txt
@@ -0,0 +1,6 @@
+Custom Roles
+------------
+
+.. role:: custom(literal)
+
+:custom:`one` :custom:`two` :custom:`three`
diff --git a/test/functional/input/data/errors.txt b/test/functional/input/data/errors.txt
new file mode 100644
index 000000000..557f479d3
--- /dev/null
+++ b/test/functional/input/data/errors.txt
@@ -0,0 +1,9 @@
+Error Handling
+==============
+
+Any errors caught during processing will generate system messages.
+
+There should be five messages in the following, auto-generated
+section, "Docutils System Messages":
+
+.. section should be added by Docutils automatically
diff --git a/test/functional/input/data/header_footer.txt b/test/functional/input/data/header_footer.txt
new file mode 100644
index 000000000..875c9fac0
--- /dev/null
+++ b/test/functional/input/data/header_footer.txt
@@ -0,0 +1,2 @@
+.. header:: Document header
+.. footer:: Document footer
diff --git a/test/functional/input/data/latex.txt b/test/functional/input/data/latex.txt
new file mode 100644
index 000000000..20d59db1e
--- /dev/null
+++ b/test/functional/input/data/latex.txt
@@ -0,0 +1,201 @@
+Some Tests for the LaTeX Writer
+===============================
+
+These tests have been written to exercise some unusual combinations of
+syntax elements which may cause trouble for the LaTeX writer but do
+not need to be tested with other writers (e.g. the HTML writer).
+
+This file is not yet used by any automated test. It is currently only
+used to control the visual appearance of the output.
+
+
+Block Quotes
+------------
+
+ This block quote comes directly after the section heading and is
+ followed by a paragraph.
+
+ This is the second paragraph of the block quote and it contains
+ some more text filling up some space which would otherwise be
+ empty.
+
+ -- Attribution
+
+This is a paragraph.
+
+ This block quote does not have an attribution.
+
+This is another paragraph.
+
+ Another block quote at the end of the section.
+
+
+More Block Quotes
+-----------------
+
+ Block quote followed by a transition.
+
+----------
+
+ Another block quote.
+
+
+Sidebars
+--------
+
+This paragraph precedes the sidebar. This is some text. This is some
+text. This is some text. This is some text. This is some text.
+This is some text. This is some text. This is some text.
+
+.. sidebar:: Sidebar Title
+
+ These are the sidebar contents. These are the sidebar contents.
+
+ These are the sidebar contents. These are the sidebar contents.
+
+ These are the sidebar contents. These are the sidebar contents.
+ These are the sidebar contents. These are the sidebar contents.
+
+This paragraph follows the sidebar. This is some text. This is some
+text. This is some text.
+
+This is some text. This is some text. This is some text. This is
+some text. This is some text. This is some text. This is some text.
+
+
+Next Section
+------------
+
+This section comes after the sidebar, and this text should float
+around the sidebar as well. This is some text. This is some text.
+This is some text. This is some text. This is some text. This is
+some text. This is some text. This is some text. This is some text.
+This is some text. This is some text. This is some text. This is
+some text. This is some text.
+
+This is some text. This is some text. This is some text. This is
+some text. This is some text. This is some text. This is some text.
+This is some text. This is some text. This is some text.
+
+
+Nested Elements
+---------------
+
+:Field list: | Line
+ | Block
+:Field 2: * Bullet
+ * list
+:Another (longer) field: * Bullet
+ * list
+:Yet another long field:
+ * .. comment
+
+ Bullet
+
+ .. comment
+
+ * .. comment
+
+ list
+
+ .. comment
+
+:Field: * This
+
+ is
+
+ a
+
+ * bullet
+
+ list
+
+:Field: * | This is
+ | a bullet
+ * | list with
+ | line blocks
+:Last field: Last field.
+
+* * * * * * * * Deeply nested list.
+
+1. 2. 3. 4. 5. 6. 7. 8. Deeply nested list.
+
++-----------------+
+| | Line block |
+| |
+| * Bullet list |
+| |
+| :: |
+| |
+| Literal |
+| block |
++-----------------+
+| :Field 1: |
+| Text. |
+| :Field 2: |
+| More text. |
++-----------------+
+| +-------+-----+ |
+| | A |* foo| |
+| | nested| | |
+| | table.|* bar| |
+| +-------+-----+ |
++-----------------+
+| This is a |
+| paragraph. |
+| |
+| +-------+-----+ |
+| | A |* foo| |
+| | nested| | |
+| | table.|* bar| |
+| +-------+-----+ |
+| |
+| Another longer |
+| paragraph. |
++-----------------+
+| * A list. |
+| * A list. |
+| |
+| +-------+-----+ |
+| | A |* foo| |
+| | nested| | |
+| | table.|* bar| |
+| +-------+-----+ |
+| |
+| * Another list. |
+| * Another list. |
++-----------------+
+| Foo |
+| |
+| Bar |
++-----------------+
+| * Foo |
+| |
+| * Bar |
++-----------------+
+| * This is a |
+| paragraph. |
+| |
+| This is a |
+| paragraph. |
+| |
+| * This is a |
+| paragraph. |
+| |
+| This is a |
+| paragraph. |
++-----------------+
+
+
+Images
+======
+
+Image with 20% width:
+
+.. image:: ../../../docs/user/rst/images/title.png
+ :width: 20%
+
+Image with 100% width:
+
+.. image:: ../../../docs/user/rst/images/title.png
+ :width: 100%
diff --git a/test/functional/input/data/list_table.txt b/test/functional/input/data/list_table.txt
new file mode 100644
index 000000000..632285e36
--- /dev/null
+++ b/test/functional/input/data/list_table.txt
@@ -0,0 +1,24 @@
+List Tables
+-----------
+
+Here's a list table exercising all features:
+
+.. list-table:: list table with integral header
+ :class: test
+ :widths: 10 20 30
+ :header-rows: 1
+ :stub-columns: 1
+
+ * - Treat
+ - Quantity
+ - Description
+ * - Albatross
+ - 2.99
+ - On a stick!
+ * - Crunchy Frog
+ - 1.49
+ - If we took the bones out, it wouldn't be
+ crunchy, now would it?
+ * - Gannet Ripple
+ - 1.99
+ - On a stick!
diff --git a/test/functional/input/data/nonalphanumeric.txt b/test/functional/input/data/nonalphanumeric.txt
new file mode 100644
index 000000000..4c4ee7343
--- /dev/null
+++ b/test/functional/input/data/nonalphanumeric.txt
@@ -0,0 +1,13 @@
+Monospaced non-alphanumeric characters
+--------------------------------------
+
+These are all ASCII characters except a-zA-Z0-9 and space:
+
+``!!!"""###$$$%%%&&&'''((()))***+++,,,---...///:::``
+
+``;;;<<<===>>>???@@@[[[\\\]]]^^^___```{{{|||}}}~~~``
+
+``xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx``
+
+The two lines of non-alphanumeric characters should both have the same
+width as the third line.
diff --git a/test/functional/input/data/standard.txt b/test/functional/input/data/standard.txt
new file mode 100644
index 000000000..a0d1570ed
--- /dev/null
+++ b/test/functional/input/data/standard.txt
@@ -0,0 +1,753 @@
+.. This is a comment. Note how any initial comments are moved by
+ transforms to after the document title, subtitle, and docinfo.
+
+.. _doctitle:
+
+================================
+ reStructuredText Test Document
+================================
+
+.. Above is the document title, and below is the subtitle.
+ They are transformed from section titles after parsing.
+
+.. _subtitle:
+
+--------------------------------
+ Examples of Syntax Constructs
+--------------------------------
+
+.. bibliographic fields (which also require a transform):
+
+:Author: David Goodger
+:Address: 123 Example Street
+ Example, EX Canada
+ A1B 2C3
+:Contact: goodger@users.sourceforge.net
+:Authors: Me; Myself; I
+:organization: humankind
+:date: Now, or yesterday. Or maybe even *before* yesterday.
+:status: This is a "work in progress"
+:revision: is managed by a version control system.
+:version: 1
+:copyright: This document has been placed in the public domain. You
+ may do with it as you wish. You may copy, modify,
+ redistribute, reattribute, sell, buy, rent, lease,
+ destroy, or improve it, quote it at length, excerpt,
+ incorporate, collate, fold, staple, or mutilate it, or do
+ anything else to it that your or anyone else's heart
+ desires.
+:field name: This is a "generic bibliographic field".
+:field name "2":
+ Generic bibliographic fields may contain multiple body elements.
+
+ Like this.
+
+:Dedication:
+
+ For Docutils users & co-developers.
+
+:abstract:
+
+ This is a test document, containing at least one example of each
+ reStructuredText construct.
+
+.. meta::
+ :keywords: reStructuredText, test, parser
+ :description lang=en: A test document, containing at least one
+ example of each reStructuredText construct.
+
+.. contents:: Table of Contents
+.. section-numbering::
+
+
+Structural Elements
+===================
+
+Section Title
+-------------
+Section Subtitle
+````````````````
+
+That's it, the text just above this line.
+
+Empty Section
+-------------
+
+Transitions
+-----------
+
+Here's a transition:
+
+---------
+
+It divides the section. Transitions may also occur between sections:
+
+---------
+
+Body Elements
+=============
+
+Paragraphs
+----------
+
+A paragraph.
+
+Inline Markup
+`````````````
+
+Paragraphs contain text and may contain inline markup: *emphasis*,
+**strong emphasis**, ``inline literals``, standalone hyperlinks
+(http://www.python.org), external hyperlinks (Python_), internal
+cross-references (example_), external hyperlinks with embedded URIs
+(`Python web site <http://www.python.org>`__), `anonymous hyperlink
+references`__ (`a second reference`__), footnote references (manually
+numbered [1]_, anonymous auto-numbered [#]_, labeled auto-numbered
+[#label]_, or symbolic [*]_), citation references ([CIT2002]_),
+substitution references (|example|), and _`inline hyperlink targets`
+(see Targets_ below for a reference back to here). Character-level
+inline markup is also possible (although exceedingly ugly!) in *re*\
+``Structured``\ *Text*. Problems are indicated by |problematic| text
+(generated by processing errors; this one is intentional). Here is a
+reference to the doctitle_ and the subtitle_.
+
+__ http://www.python.org/
+__ http://docutils.sourceforge.net/
+
+The default role for interpreted text is `Title Reference`. Here are
+some explicit interpreted text roles: a PEP reference (:PEP:`287`); an
+RFC reference (:RFC:`2822`); a :sub:`subscript`; a :sup:`superscript`;
+and explicit roles for :emphasis:`standard` :strong:`inline`
+:literal:`markup`.
+
+.. DO NOT RE-WRAP THE FOLLOWING PARAGRAPH!
+
+Let's test wrapping and whitespace significance in inline literals:
+``This is an example of --inline-literal --text, --including some--
+strangely--hyphenated-words. Adjust-the-width-of-your-browser-window
+to see how the text is wrapped. -- ---- -------- Now note the
+spacing between the words of this sentence (words
+should be grouped in pairs).``
+
+If the ``--pep-references`` option was supplied, there should be a
+live link to PEP 258 here.
+
+Bullet Lists
+------------
+
+- A bullet list
+
+ + Nested bullet list.
+ + Nested item 2.
+
+- Item 2.
+
+ Paragraph 2 of item 2.
+
+ * Nested bullet list.
+ * Nested item 2.
+
+ - Third level.
+ - Item 2.
+
+ * Nested item 3.
+
+ * This nested list should be compacted by the HTML writer.
+
+ .. _target:
+
+ .. Even if this item contains a target and a comment.
+
+Enumerated Lists
+----------------
+
+1. Arabic numerals.
+
+ a) lower alpha)
+
+ (i) (lower roman)
+
+ A. upper alpha.
+
+ I) upper roman)
+
+2. Lists that don't start at 1:
+
+ 3. Three
+
+ 4. Four
+
+ C. C
+
+ D. D
+
+ iii. iii
+
+ iv. iv
+
+Definition Lists
+----------------
+
+Term
+ Definition
+Term : classifier
+ Definition paragraph 1.
+
+ Definition paragraph 2.
+Term
+ Definition
+Term : classifier one : classifier two
+ Definition
+
+Field Lists
+-----------
+
+:what: Field lists map field names to field bodies, like database
+ records. They are often part of an extension syntax. They are
+ an unambiguous variant of RFC 2822 fields.
+
+:how arg1 arg2:
+
+ The field marker is a colon, the field name, and a colon.
+
+ The field body may contain one or more body elements, indented
+ relative to the field marker.
+
+:credits:
+
+ .. class:: credits
+
+ This paragraph has the `credits` class set. (This is actually not
+ about credits but just for ensuring that the class attribute
+ doesn't get stripped away.)
+
+Option Lists
+------------
+
+For listing command-line options:
+
+-a command-line option "a"
+-b file options can have arguments
+ and long descriptions
+--long options can be long also
+--input=file long options can also have
+ arguments
+
+--very-long-option
+ The description can also start on the next line.
+
+ The description may contain multiple body elements,
+ regardless of where it starts.
+
+-x, -y, -z Multiple options are an "option group".
+-v, --verbose Commonly-seen: short & long options.
+-1 file, --one=file, --two file
+ Multiple options with arguments.
+/V DOS/VMS-style options too
+
+There must be at least two spaces between the option and the
+description.
+
+Literal Blocks
+--------------
+
+Literal blocks are indicated with a double-colon ("::") at the end of
+the preceding paragraph (over there ``-->``). They can be indented::
+
+ if literal_block:
+ text = 'is left as-is'
+ spaces_and_linebreaks = 'are preserved'
+ markup_processing = None
+
+Or they can be quoted without indentation::
+
+>> Great idea!
+>
+> Why didn't I think of that?
+
+Line Blocks
+-----------
+
+This section tests line blocks. Line blocks are body elements which
+consist of lines and other line blocks. Nested line blocks cause
+indentation.
+
+| This is a line block. It ends with a blank line.
+| New lines begin with a vertical bar ("|").
+| Line breaks and initial indent are significant, and preserved.
+| Continuation lines are also possible. A long line that is intended
+ to wrap should begin with a space in place of the vertical bar.
+| The left edge of a continuation line need not be aligned with
+ the left edge of the text above it.
+
+| This is a second line block.
+|
+| Blank lines are permitted internally, but they must begin with a "|".
+
+Another line block, surrounded by paragraphs:
+
+| And it's no good waiting by the window
+| It's no good waiting for the sun
+| Please believe me, the things you dream of
+| They don't fall in the lap of no-one
+
+Take it away, Eric the Orchestra Leader!
+
+ | A one, two, a one two three four
+ |
+ | Half a bee, philosophically,
+ | must, *ipso facto*, half not be.
+ | But half the bee has got to be,
+ | *vis a vis* its entity. D'you see?
+ |
+ | But can a bee be said to be
+ | or not to be an entire bee,
+ | when half the bee is not a bee,
+ | due to some ancient injury?
+ |
+ | Singing...
+
+Block Quotes
+------------
+
+Block quotes consist of indented body elements:
+
+ My theory by A. Elk. Brackets Miss, brackets. This theory goes
+ as follows and begins now. All brontosauruses are thin at one
+ end, much much thicker in the middle and then thin again at the
+ far end. That is my theory, it is mine, and belongs to me and I
+ own it, and what it is too.
+
+ -- Anne Elk (Miss)
+
+Doctest Blocks
+--------------
+
+>>> print 'Python-specific usage examples; begun with ">>>"'
+Python-specific usage examples; begun with ">>>"
+>>> print '(cut and pasted from interactive Python sessions)'
+(cut and pasted from interactive Python sessions)
+
+Footnotes
+---------
+
+.. [1] A footnote contains body elements, consistently indented by at
+ least 3 spaces.
+
+ This is the footnote's second paragraph.
+
+.. [#label] Footnotes may be numbered, either manually (as in [1]_) or
+ automatically using a "#"-prefixed label. This footnote has a
+ label so it can be referred to from multiple places, both as a
+ footnote reference ([#label]_) and as a hyperlink reference
+ (label_).
+
+.. [#] This footnote is numbered automatically and anonymously using a
+ label of "#" only.
+
+ This is the second paragraph.
+
+ And this is the third paragraph.
+
+.. [*] Footnotes may also use symbols, specified with a "*" label.
+ Here's a reference to the next footnote: [*]_.
+
+.. [*] This footnote shows the next symbol in the sequence.
+
+.. [4] Here's an unreferenced footnote, with a reference to a
+ nonexistent footnote: [5]_.
+
+Citations
+---------
+
+.. [CIT2002] Citations are text-labeled footnotes. They may be
+ rendered separately and differently from footnotes.
+
+Here's a reference to the above, [CIT2002]_, and a [nonexistent]_
+citation.
+
+.. _Another Target:
+
+Targets
+-------
+
+.. _example:
+
+This paragraph is pointed to by the explicit "example" target. A
+reference can be found under `Inline Markup`_, above. `Inline
+hyperlink targets`_ are also possible.
+
+Section headers are implicit targets, referred to by name. See
+Targets_, which is a subsection of `Body Elements`_.
+
+Explicit external targets are interpolated into references such as
+"Python_".
+
+.. _Python: http://www.python.org/
+
+Targets may be indirect and anonymous. Thus `this phrase`__ may also
+refer to the Targets_ section.
+
+__ Targets_
+
+Here's a `hyperlink reference without a target`_, which generates an
+error.
+
+Duplicate Target Names
+``````````````````````
+
+Duplicate names in section headers or other implicit targets will
+generate "info" (level-1) system messages. Duplicate names in
+explicit targets will generate "warning" (level-2) system messages.
+
+Duplicate Target Names
+``````````````````````
+
+Since there are two "Duplicate Target Names" section headers, we
+cannot uniquely refer to either of them by name. If we try to (like
+this: `Duplicate Target Names`_), an error is generated.
+
+Directives
+----------
+
+.. contents:: :local:
+
+These are just a sample of the many reStructuredText Directives. For
+others, please see
+http://docutils.sourceforge.net/docs/ref/rst/directives.html.
+
+Document Parts
+``````````````
+
+An example of the "contents" directive can be seen above this section
+(a local, untitled table of contents_) and at the beginning of the
+document (a document-wide `table of contents`_).
+
+Images
+``````
+
+An image directive (also clickable -- a hyperlink reference):
+
+.. image:: ../../../docs/user/rst/images/title.png
+ :class: class1 class2
+ :target: directives_
+
+Image with multiple IDs:
+
+.. _image target 1:
+.. _image target 2:
+.. _image target 3:
+.. image:: ../../../docs/user/rst/images/title.png
+
+A centered image:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :align: center
+
+A left-aligned image:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :align: left
+
+A right-aligned image:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :align: right
+
+A figure directive:
+
+.. figure:: ../../../docs/user/rst/images/biohazard.png
+ :figclass: figclass1 figclass2
+ :class: class1 class2
+ :alt: reStructuredText, the markup syntax
+ :align: right
+ :width: 50
+
+ A figure is an image with a caption and/or a legend:
+
+ +------------+-----------------------------------------------+
+ | re | Revised, revisited, based on 're' module. |
+ +------------+-----------------------------------------------+
+ | Structured | Structure-enhanced text, structuredtext. |
+ +------------+-----------------------------------------------+
+ | Text | Well it is, isn't it? |
+ +------------+-----------------------------------------------+
+
+ This paragraph is also part of the legend.
+
+.. figure:: ../../../docs/user/rst/images/biohazard.png
+ :figclass: figclass1 figclass2
+ :class: class1 class2
+ :alt: reStructuredText, the markup syntax
+ :align: left
+ :width: 50
+
+ A left-aligned figure.
+
+ This is the legend.
+
+This paragraph might flow around the figure...
+
+A centered figure:
+
+.. figure:: ../../../docs/user/rst/images/biohazard.png
+ :align: center
+ :width: 50
+
+ This is the caption.
+
+ This is the legend.
+
+ The legend may consist of several paragraphs.
+
+This paragraph might flow around the figure...
+
+A left-aligned figure:
+
+.. figure:: ../../../docs/user/rst/images/biohazard.png
+ :align: left
+ :width: 50
+
+ This is the caption.
+
+ This is the legend.
+
+ The legend may consist of several paragraphs.
+
+This paragraph might flow around the figure...
+
+Now widths:
+
+An image 2 em wide:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :width: 2 em
+
+An image 2 em wide and 30 pixel high:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :width: 2em
+ :height: 30 px
+
+An image occupying 70% of the line width:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :width: 70%
+
+An image 3 cm high:
+
+.. image:: ../../../docs/user/rst/images/biohazard.png
+ :height: 3 cm
+
+
+Admonitions
+```````````
+
+.. Attention:: Directives at large.
+
+.. Caution::
+
+ Don't take any wooden nickels.
+
+.. DANGER:: Mad scientist at work!
+
+.. Error:: Does not compute.
+
+.. Hint:: It's bigger than a bread box.
+
+.. Important::
+ - Wash behind your ears.
+ - Clean up your room.
+ - Call your mother.
+ - Back up your data.
+
+.. Note:: This is a note.
+
+.. Tip:: 15% if the service is good.
+
+.. WARNING:: Strong prose may provoke extreme mental exertion.
+ Reader discretion is strongly advised.
+
+.. admonition:: And, by the way...
+
+ You can make up your own admonition too.
+
+ .. _Docutils: http://docutils.sourceforge.net/
+
+Topics, Sidebars, and Rubrics
+`````````````````````````````
+
+.. sidebar:: Sidebar Title
+ :subtitle: Optional Subtitle
+
+ This is a sidebar. It is for text outside the flow of the main
+ text.
+
+ .. rubric:: This is a rubric inside a sidebar
+
+ Sidebars often appears beside the main text with a border and
+ background color.
+
+.. topic:: Topic Title
+
+ This is a topic.
+
+.. rubric:: This is a rubric
+
+Target Footnotes
+````````````````
+
+.. target-notes::
+
+
+Replacement Text
+````````````````
+
+I recommend you try |Python|_.
+
+.. |Python| replace:: Python, *the* best language around
+
+Compound Paragraph
+``````````````````
+
+.. compound::
+ :class: some-class
+
+ Compound 1, paragraph 1.
+
+ Compound 1, paragraph 2.
+
+ * Compound 1, list item one.
+ * Compound 1, list item two.
+
+Another compound statement:
+
+.. compound::
+
+ Compound 2, a literal block::
+
+ Compound 2, literal.
+
+ Compound 2, this is a test.
+
+.. compound::
+
+ Compound 3, only consisting of one paragraph.
+
+.. compound::
+
+ ::
+
+ Compound 4.
+ This one starts with a literal block.
+
+ Compound 4, a paragraph.
+
+Now something *really* perverted -- a nested compound block. This is
+just to test that it works at all; the results don't have to be
+meaningful.
+
+.. compound::
+
+ Compound 5, block 1 (a paragraph).
+
+ .. compound::
+
+ Compound 6, block 2 in compound 5.
+
+ Compound 6, another paragraph.
+
+ Compound 5, block 3 (a paragraph).
+
+.. compound::
+
+ Compound 7, with a table inside:
+
+ +--------------------+--------------------+--------------------+
+ | Left cell, first | Middle cell, | Right cell. |
+ | paragraph. | consisting of | |
+ | | exactly one | Paragraph 2. |
+ | Left cell, second | paragraph. | |
+ | paragraph. | | Paragraph 3. |
+ +--------------------+--------------------+--------------------+
+
+ Compound 7, a paragraph after the table.
+
+ Compound 7, another paragraph.
+
+Parsed Literal Blocks
+`````````````````````
+
+.. parsed-literal::
+
+ This is a parsed literal block.
+ This line is indented. The next line is blank.
+
+ Inline markup is supported, e.g. *emphasis*, **strong**, ``literal
+ text``, footnotes [1]_, _`targets`, and `references
+ <http://www.python.org/>`_.
+
+Substitution Definitions
+------------------------
+
+An inline image (|example|) example:
+
+.. |EXAMPLE| image:: ../../../docs/user/rst/images/biohazard.png
+
+(Substitution definitions are not visible in the HTML source.)
+
+Comments
+--------
+
+Here's one:
+
+.. Comments begin with two dots and a space. Anything may
+ follow, except for the syntax of footnotes, hyperlink
+ targets, directives, or substitution definitions.
+
+ Double-dashes -- "--" -- must be escaped somehow in HTML output.
+
+(View the HTML source to see the comment.)
+
+Raw text
+--------
+
+This does not necessarily look nice, because there may be missing white space.
+
+It's just there to freeze the behavior.
+
+.. raw:: html latex
+
+ A test.
+
+.. raw:: html latex
+
+ Second test.
+
+.. class:: myclass
+
+.. raw:: html latex
+
+ Another test with myclass set.
+
+.. role:: raw-role(raw)
+ :format: html latex
+ :class: myrawroleclass
+
+This is the :raw-role:`fourth test` with myrawroleclass set.
+
+.. raw:: html
+
+ Fifth test in HTML.<br />Line two.
+
+.. raw:: latex
+
+ Fifth test in LaTeX.\\Line two.
+
+Container
+---------
+
+.. container:: custom
+
+ paragraph 1
+
+ paragraph 2
diff --git a/test/functional/input/data/table_colspan.txt b/test/functional/input/data/table_colspan.txt
new file mode 100644
index 000000000..54294fdd2
--- /dev/null
+++ b/test/functional/input/data/table_colspan.txt
@@ -0,0 +1,15 @@
+Colspanning tables
+------------------
+
+This table has a cell spanning two columns:
+
+===== ===== ======
+ Inputs Output
+------------ ------
+ A B A or B
+===== ===== ======
+False False False
+True False True
+False True True
+True True True
+===== ===== ======
diff --git a/test/functional/input/data/table_complex.txt b/test/functional/input/data/table_complex.txt
new file mode 100644
index 000000000..8ff37180e
--- /dev/null
+++ b/test/functional/input/data/table_complex.txt
@@ -0,0 +1,21 @@
+Complex tables
+--------------
+
+Here's a complex table, which should test all features.
+
++------------------------+------------+----------+----------+
+| Header row, column 1 | Header 2 | Header 3 | Header 4 |
+| (header rows optional) | | | |
++========================+============+==========+==========+
+| body row 1, column 1 | column 2 | column 3 | column 4 |
++------------------------+------------+----------+----------+
+| body row 2 | Cells may span columns. |
++------------------------+------------+---------------------+
+| body row 3 | Cells may | - Table cells |
++------------------------+ span rows. | - contain |
+| body row 4 | | - body elements. |
+| | Paragraph. | |
++------------------------+------------+----------+----------+
+| body row 5 | Cells may also be | |
+| | empty: ``-->`` | |
++------------------------+-----------------------+----------+
diff --git a/test/functional/input/data/table_rowspan.txt b/test/functional/input/data/table_rowspan.txt
new file mode 100644
index 000000000..5df3109c4
--- /dev/null
+++ b/test/functional/input/data/table_rowspan.txt
@@ -0,0 +1,15 @@
+Rowspanning tables
+------------------
+
+Here's a table with cells spanning several rows:
+
++------------------------+------------+------------------+
+| Header row, column 1 | Header 2 | Header 3 |
+| (header rows optional) | | |
++========================+============+==================+
+| body row 1, column 1 | column 2 | column 3 |
++------------------------+------------+------------------+
+| body row 2 | Cells may | Another |
++------------------------+ span rows. | rowspanning |
+| body row 3 | | cell. |
++------------------------+------------+------------------+
diff --git a/test/functional/input/data/unicode.txt b/test/functional/input/data/unicode.txt
new file mode 100644
index 000000000..4bdd57653
--- /dev/null
+++ b/test/functional/input/data/unicode.txt
@@ -0,0 +1,27 @@
+Various non-ASCII characters
+----------------------------
+
+= ===================================
+© copyright sign
+® registered sign
+« left pointing guillemet
+» right pointing guillemet
+– en-dash
+— em-dash
+‘ single turned comma quotation mark
+’ single comma quotation mark
+‚ low single comma quotation mark
+“ double turned comma quotation mark
+” double comma quotation mark
+„ low double comma quotation mark
+† dagger
+‡ double dagger
+… ellipsis
+™ trade mark sign
+⇔ left-right double arrow
+= ===================================
+
+The following line should not be wrapped, because it uses
+non-breakable spaces:
+
+X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
diff --git a/test/functional/input/field_list.txt b/test/functional/input/field_list.txt
new file mode 100644
index 000000000..fa04ba6ca
--- /dev/null
+++ b/test/functional/input/field_list.txt
@@ -0,0 +1,5 @@
+:short: This field's name is short.
+:medium-length: This field's name is medium-length.
+:long field name: This field's name is long.
+:very very long field name:
+ This field's name is quite long.
diff --git a/test/functional/input/latex_docinfo.txt b/test/functional/input/latex_docinfo.txt
new file mode 100644
index 000000000..f6c9ba2e4
--- /dev/null
+++ b/test/functional/input/latex_docinfo.txt
@@ -0,0 +1,10 @@
+:Author: Foo Fred
+:Organization: Food Foomatics & Friends
+:Contact: foo@food.example.info
+:Address: Fox St 13
+ Foowood
+:Author: Bar Barney
+:Organization: Bar-BQ Bar
+:Contact: 1-800-BARBQBAR
+:Address: Barbara St 16
+ South Barwell
diff --git a/test/functional/input/pep_html.txt b/test/functional/input/pep_html.txt
new file mode 100644
index 000000000..483077131
--- /dev/null
+++ b/test/functional/input/pep_html.txt
@@ -0,0 +1,32 @@
+PEP: 100
+Title: Test PEP
+Version: 42
+Last-Modified: A long time ago.
+Author: John Doe <john@example.org>
+Discussions-To: <devnull@example.org>
+Status: Draft
+Type: Standards Track
+Content-Type: text/x-rst
+Created: 01-Jun-2001
+Post-History: 13-Jun-2001
+
+
+Abstract
+========
+
+This is just a test [#]_. See the `PEP repository`_ for the real
+thing.
+
+.. _PEP repository: http://www.python.org/peps/
+
+
+Copyright
+=========
+
+This document has been placed in the public domain.
+
+
+References and Footnotes
+========================
+
+.. [#] PEP editors: peps@python.org
diff --git a/test/functional/input/simple.txt b/test/functional/input/simple.txt
new file mode 100644
index 000000000..492e4233b
--- /dev/null
+++ b/test/functional/input/simple.txt
@@ -0,0 +1 @@
+simple input
diff --git a/test/functional/input/standalone_rst_html4css1.txt b/test/functional/input/standalone_rst_html4css1.txt
new file mode 100644
index 000000000..3c2cf80c6
--- /dev/null
+++ b/test/functional/input/standalone_rst_html4css1.txt
@@ -0,0 +1,8 @@
+.. include:: data/standard.txt
+.. include:: data/header_footer.txt
+.. include:: data/table_colspan.txt
+.. include:: data/table_rowspan.txt
+.. include:: data/table_complex.txt
+.. include:: data/list_table.txt
+.. include:: data/custom_roles.txt
+.. include:: data/errors.txt
diff --git a/test/functional/input/standalone_rst_latex.txt b/test/functional/input/standalone_rst_latex.txt
new file mode 100644
index 000000000..09a4f8890
--- /dev/null
+++ b/test/functional/input/standalone_rst_latex.txt
@@ -0,0 +1,12 @@
+.. include:: data/standard.txt
+.. include:: data/table_colspan.txt
+.. include:: data/table_rowspan.txt
+
+
+Tests for the LaTeX writer
+==========================
+
+.. include:: data/nonalphanumeric.txt
+.. include:: data/unicode.txt
+
+.. include:: data/errors.txt
diff --git a/test/functional/input/standalone_rst_newlatex.txt b/test/functional/input/standalone_rst_newlatex.txt
new file mode 100644
index 000000000..81b4e5ea6
--- /dev/null
+++ b/test/functional/input/standalone_rst_newlatex.txt
@@ -0,0 +1,12 @@
+.. include:: data/standard.txt
+.. include:: data/table_colspan.txt
+.. include:: data/latex.txt
+
+
+Tests for the LaTeX writer
+==========================
+
+.. include:: data/nonalphanumeric.txt
+.. include:: data/unicode.txt
+
+.. include:: data/errors.txt
diff --git a/test/functional/input/standalone_rst_pseudoxml.txt b/test/functional/input/standalone_rst_pseudoxml.txt
new file mode 100644
index 000000000..05f0287d0
--- /dev/null
+++ b/test/functional/input/standalone_rst_pseudoxml.txt
@@ -0,0 +1,7 @@
+.. include:: data/standard.txt
+.. include:: data/header_footer.txt
+.. include:: data/table_colspan.txt
+.. include:: data/table_rowspan.txt
+.. include:: data/table_complex.txt
+.. include:: data/list_table.txt
+.. include:: data/errors.txt
diff --git a/test/functional/input/standalone_rst_s5_html.txt b/test/functional/input/standalone_rst_s5_html.txt
new file mode 100644
index 000000000..863cc77b6
--- /dev/null
+++ b/test/functional/input/standalone_rst_s5_html.txt
@@ -0,0 +1,126 @@
+.. include:: <s5defs.txt>
+
+=============
+ Slide Shows
+=============
+
+:Author: David Goodger
+:Date: 2005-11-28
+
+.. contents::
+ :class: handout
+
+.. class:: handout
+
+ This is a test. This is only a test. If this were a real slide
+ show, there would be a projector handy.
+
+Let's test the S5/HTML writer!
+
+.. class:: small
+
+* Use the arrow keys to navigate.
+
+* Click the "|mode|" button to switch between presentation &
+ handout/outline modes.
+
+.. container:: handout
+
+ In presentation mode, mouse over to the lower right-hand corner to
+ display the controls.
+
+.. |bullet| unicode:: U+02022
+.. |mode| unicode:: U+00D8 .. capital o with stroke
+.. footer:: Location |bullet| Date
+
+
+Introduction
+============
+
+.. class:: compact
+
+* reStructuredText
+
+ .. class:: handout
+
+ Uses normal reStructuredText as input.
+
+* One section per slide
+
+ .. class:: handout
+
+ Each first-level section is converted into a single slide.
+
+* (X)HTML output
+
+ .. class:: handout
+
+ Presentations can be viewed using any modern graphical web browser.
+ The browser must support CSS, JavaScript, and XHTML. S5 even works
+ with IE!
+
+* Themes
+
+ .. class:: handout
+
+ A variety of themes are available.
+
+* ``rst2s5.py``
+
+ .. class:: handout
+
+ The front-end tool to generate S5 slide shows.
+
+
+Features (1)
+============
+
+.. class:: left
+
+A flush-left paragraph
+
+.. class:: center
+
+A centered paragraph
+
+.. class:: right
+
+A flush-right paragraph
+
+Some colours: :black:`black` [black], :gray:`gray`, :silver:`silver`,
+:white:`white` [white], :maroon:`maroon`, :red:`red`,
+:magenta:`magenta`, :fuchsia:`fuchsia`, :pink:`pink`,
+:orange:`orange`, :yellow:`yellow`, :lime:`lime`, :green:`green`,
+:olive:`olive`, :teal:`teal`, :cyan:`cyan`, :aqua:`aqua`,
+:blue:`blue`, :navy:`navy`, :purple:`purple`
+
+Features (2)
+============
+
+`Some` `incremental` `text.`
+
+.. class:: incremental open
+
+ * :tiny:`tiny` (class & role name: "tiny", e.g. "``:tiny:`text```")
+ * :small:`small` ("small")
+ * normal (unstyled)
+ * :big:`big` ("big")
+ * :huge:`huge` ("huge")
+
+
+Checklist
+=========
+
+* The document title should be duplicated on each slide in the footer
+ (except for the first slide, ``slide0``, where the entire footer is
+ disabled).
+
+* The footer also contains a second line, "Location |bullet| Date"
+
+* There's no table of contents on the first slide, although it does
+ appear in the handout/outline.
+
+* Handout material is not displayed in presentation mode.
+
+* The theme directories should be created, and the theme files copied
+ over.