# Test Suite: FOP

## Test Cases: layout

### Test #basic1: Simple page layout, with region-before and region-after (page sequence refers to page-master)

- Formatting Object: multiple
- XML file: basic1.xml
- Expected result: basic1.pdf

### Test #basic2: Simple page layout, with region-before and region-after (uses page-sequence-master)

- Formatting Object: multiple
- XML file: basic2.xml
- Expected result: basic2.pdf

### Test #allregions: Test of fo:region-{start,end,before,after} and precedence attribute.

- Formatting Object: multiple
- XML file: allregions.fo
- Expected result: allregions.pdf

### Test #columnlevel1: Test of column-count and column-gap

- Formatting Object: region-body
- Property: column-*
- XML file: columnlevel1.fo
- Expected result: columnlevel1.pdf

### Test #columns: Footnotes in Columns

- Formatting Object: multiple
- XML file: columns.fo
- Expected result: columns.pdf

### Test #simplecol: Two column test with one block spanning the page width

- Formatting Object: block
- XML file: simplecol.fo
- Expected result: simplecol.pdf

### Test #simplecol2: Two column test with some blocks spanning the page width and flowing across page breaks.

- Formatting Object: block
- XML file: simplecol2.fo
- Expected result: simplecol2.pdf

### Test #simplecol3: Two column test with some blocks spanning the page width and flowing across page breaks.

- Formatting Object: block
- XML file: simplecol3.fo
- Expected result: simplecol3.pdf

### Test #simplecol4: Three column test with some blocks spanning the page width and flowing across page breaks.

- Formatting Object: block
- XML file: simplecol4.fo
- Expected result: simplecol4.pdf

### Test #franklin_2pageseqs: Test of two page sequences

- Formatting Object: multiple
- XML file: franklin_2pageseqs.fo
- Expected result: franklin_2pageseqs.pdf

### Test #franklin_alt: Page sequence with alternating left and right masters

- Formatting Object: multiple
- XML file: franklin_alt.fo
- Expected result: franklin_alt.pdf

### Test #franklin_rep: Page sequence with one page master

- Formatting Object: multiple
- XML file: franklin_rep.fo
- Expected result: franklin_rep.pdf

### Test #franklin_rep_max_repeats: Alternate test of page sequence using maximum-repeats.

- Formatting Object: multiple
- XML file: franklin_rep_max_repeats.fo
- Expected result: franklin_rep_max_repeats.pdf

### Test #franklin_rep_max_repeats_nl: Alternate test of complex page sequences using unlimited maximum-repeats.

- Formatting Object: multiple
- XML file: franklin_rep_max_repeats_nl.fo
- Expected result: franklin_rep_max_repeats_nl.pdf

## Test Cases: area model

### Test #background: Test of background colors in table-cell, table-row, table-column, table-body, table.

- Formatting Object: multiple
- Property: background-color
- XML file: background.fo
- Expected result: background.pdf

### Test #border: Test of border-{color, width, style} in block-container and table-column

- Formatting Object: multiple
- Property: border-*
- XML file: border.fo
- Expected result: border.pdf

### Test #borders: Test of border-{left|top|right|bottom}-{color, width, style} and border-{color,style,width} on table-cell, table-row, table-column, table-body, table.

- Formatting Object: multiple
- Property: border-*
- XML file: borders.fo
- Expected result: borders.pdf

### Test #bordershorthand: Test of border-{left|top|right|bottom}-{color, width, style} and border-{color,style,width} on table-cell, table-row, table-column, table-body, table.

- Formatting Object: block
- Property: border-*, padding-*
- XML file: bordershorthand.fo
- Expected result: bordershorthand.pdf

### Test #corresprop: Interaction of absolute and relative properties.

- Formatting Object: block
- Property: space-*, border-*, padding-*
- XML file: corresprop.fo
- Expected result: corresprop.pdf

### Test #space: Space in tables (cells and rows)

- Formatting Object: multiple
- Property: space-*
- XML file: space.fo
- Expected result: space.pdf

## Test Cases: Keeps and Breaks

### Test #break: break-before and break-after (pages) and keep-with-* (no components) in table-rows.

- Formatting Object: block
- Property: break-*, keep-with-*
- XML file: break.fo
- Expected result: break.pdf

### Test #keep: keeps in table rows.

- Formatting Object: table-row
- Property: keep-with-*
- XML file: keep.fo
- Expected result: keep.pdf

### Test #pagelevel1: breaks in page context

- Formatting Object: block
- Property: break-{before|after}
- XML file: pagelevel1.fo
- Expected result: pagelevel1.pdf

### Test #pagelevel2: break-after in page context

- Formatting Object: block
- Property: break-after
- XML file: pagelevel2.fo
- Expected result: pagelevel2.pdf

### Test #pagelevel3: break-before in page context

- Formatting Object: block
- Property: break-before
- XML file: pagelevel3.fo
- Expected result: pagelevel3.pdf

### Test #pagelevel4: breaks in page context, with a 2-column layout.

- Formatting Object: block
- Property: break-{before|after}
- XML file: pagelevel4.fo
- Expected result: pagelevel4.pdf

### Test #widowsorohans: Interaction of widows/orphans with tables.

- Formatting Object: block
- Property: widows, orphans
- XML file: widowsorohans.xml
- Expected result: widowsorohans.pdf

### Test #hyphen: Line breaking: hyphenation test (US English, German, Finnish, Italian).

- Formatting Object: multiple
- XML file: hyphen.fo
- Expected result: hyphen.pdf

## Test Cases: Line Breaking

## Test Cases: Formatting Objects

### Test #character: character FOs with font-size and color attributes

- Formatting Object: character
- XML file: character.fo
- Expected result: character.pdf

### Test #footnotes-simple: Use of fo:footnote and footnote-body

- Formatting Object: multiple
- XML file: footnotes-simple
- Expected result: footnotes-simple.pdf

### Test #headfoot: Table headers and footers.

- Formatting Object: multiple
- XML file: headfoot.fo
- Expected result: headfoot.pdf

### Test #images: Test for Images

- Formatting Object: external-graphic
- XML file: images.fo
- Expected result: images.pdf

### Test #instream: block and inline instream-foreign-object (includes SVG).

- Formatting Object: instream-foreign-object
- XML file: instream.fo
- Expected result: instream.pdf

### Test #leader: fo:leader and associated properties.

- Formatting Object: leader
- XML file: leader.fo
- Expected result: leader.pdf

### Test #textdeko: test of text-decoration on inlines.

- Formatting Object: inline
- Property: text-decoration
- XML file: textdeko.fo
- Expected result: textdeko.pdf

### Test #link: links to an external pdf file

- Formatting Object: basic-link
- Property: external-destination
- XML file: link.fo
- Expected result: link.pdf

### Test #list: Many tests for lists.

- Formatting Object: list-block
- XML file: list.fo
- Expected result: list.pdf

### Test #newlinktest: links to an internal destinations or external URLs

- Formatting Object: basic-link
- XML file: newlinktest.fo
- Expected result: newlinktest.pdf

### Test #normal: Simple document.

- Formatting Object: multiple
- XML file: normal.fo
- Expected result: normal.pdf

### Test #normalex: Simple document with expressions in attribute values.

- Formatting Object: multiple
- XML file: normalex.fo
- Expected result: normalex.pdf

### Test #omit: test of attributes "table-omit-{header|footer}-at-break".

- Formatting Object: table
- XML file: omit.xml
- Expected result: omit.pdf

## Test Cases: Fonts

### Test #fonts: Character lists in various fonts.

- Formatting Object: character
- XML file: fonts.fo
- Expected result: fonts.pdf

## Test Cases: Inheritance

### Test #inhprop: Test of inherited properties, and complex expressions in attributes.

- Formatting Object: multiple
- XML file: inhprop.fo
- Expected result: inhprop.pdf

## Test Cases: multiple

### Test #extensive: Extensive test (spacing, alignment, list-items, inclusion of SVG)

- Formatting Object: multiple
- XML file: extensive.fo

### Test #giro: Tables, SVG in fo:instream-foreign-object

- Formatting Object: multiple
- XML file: giro.fo

### Test #simple: A very simple document

- Formatting Object: multiple
- XML file: simple.fo