Create test suites for applications built using Tiki

# Plugin Fitnesse

The Fitnesse wiki plugin, introduced in Tiki 12.1, is inspired by the Acceptance Testing Framework of the same name.

Tiki applications are meant to be built through the content management system. Historically, the only way to test the behavior of the system was to add more content for edge cases. The Fitnesse plugin allows to create test suites to validate small portions of the system, define behavior (following ATDD) and communicate with developers about issues needed to be resolved.

## General Structure

The Fitnesse plugin defines an execution context. Each contained plugin is known as a fixture. These fixtures contain test cases to be validated. While each fixture can define its own format, they will typically contain a table-like structure.

While executing the tests, the plugin will re-write the internal table to display results. Validated entries will show as green, failures as red. As usual in Wiki Tables, %%% can be used as the newline separator.

## Tracker Math

trackerId is a required argument. It is the tracker the calculation will be matched against.

The first row contains the list of permanent names within the tracker. The question mark at the end of a field name indicates that the field is a calculation field and must be validated.

The following rows are individual test cases. Each column contains an input value or the expected output in the case of a calculation field.

Examples
{FITNESSE()}

We want to prioritize important issues that are easy to solve.
{TRACKERMATH(trackerId="42")}
severity|simplicity|priority?
1|1|1
2|3|6
10|10|100
11|10|100
{TRACKERMATH}
{FITNESSE}

Given a calculation of (mul severity simplicity), we would have the following result:

We want to prioritize important issues that are easy to solve.

 Tracker Math for Bugs severity simplicity priority? 1 1 1 2 3 6 10 10 100 11 10 110 (expect: 100)

Failure indicates the formula should include a cap on the priority level that has not been implemented.

## Tracker Data

Tracker Data is a companion fixture to Tracker Math for formulas containing the (tracker-field) function to access data in a different tracker.

Data is defined for the current execution context and must be defined prior to usage.

The first row contains the permanent names and the itemId key (required). Other rows contains the matching values.

Examples
{FITNESSE()}
{TRACKERDATA(trackerId=11)}
itemId|name|ranking
1|Wiki|10
2|Quiz|3
{TRACKERDATA}

Some features matter more than others
{TRACKERMATH(trackerId=42)}
feature|severity|priority?
1|1|10
2|3|9
44|10|50
{TRACKERMATH}
{FITNESSE}

Sample Calculation
(mul
severity
(tracker-field
(object (str trackeritem) feature)
(field ranking)
)
)

Expected results:

 Tracker Data for Features itemId name ranking 1 Wiki 10 2 Quiz 3

Some features matter more than others

 Tracker Math for Bugs feature severity priority? 1 1 10 2 3 9 44 10 0 (expect: 50)

Failure indicates the features should have a default priority of 5.

### Keywords

Keywords serve as "hubs" for navigation within the Tiki documentation. They correspond to development keywords (bug reports and feature requests):

Accessibility (WAI and 508)
Accounting
Articles and Submissions
Banners
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Clean URLs
Communication Center
Compression (gzip)
Content Templates
Contribution
Credit
Date and Time
Debugger Console
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
Draw
Dynamic Content
Dynamic Variable
External Authentication
FAQ
File Gallery
Forum
Friendship Network (Community)
Groups
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
Kaltura video management
Karma
Live Support
Logs (system & action)
Look and Feel
Lost edit protection
Mail-in
Map with Mapserver
Meta Tags
Mobile Tiki and Voice Tiki
Mods
Module
MultiTiki
MyTiki
Payment
Permissions
Platform independence (Linux-Apache, Windows/IIS, Mac, BSD)
Polls
Profiles
Profile Manager
Report
Toolbar
Quiz
Rating
Feeds
Score
Search engine optimization
Search
Search and Replace
Security
Share
Shopping cart
Shoutbox
Slideshow
Smiley
Social Networks
Spam protection (Anti-bot CATPCHA)
Spellcheck
Stats
Surveys
Tags
Tell a Friend, alert + Social Bookmarking
TikiTests
Theme CSS & Smarty
Trackers
Transitions
TRIM
User Administration including registration and banning
User Files
Watch
WebDAV
Webmail
Web Services
Wiki History, page rename, etc
Wiki Plugin extends basic syntax
Wiki Syntax
Wiki structure (book and table of content)
Workspace
WSOD
WYSIWYCA
WYSIWYG
XMLRPC