Included page: .FitNesse.SuiteAcceptanceTests.ScenarioLibrary (edit)

scenario given page page with content content
create page @page with content @content
$IT= echo @page

scenario given page page
given page @page with content nothing
$CONTENT= echo

scenario given test page page
given page @page
make @page a test page

scenario given slim test page page
given page @page with content !define TEST_SYSTEM {slim}
make @page a test page

scenario page source should have link to target
check request page @source 200
ensure content contains <a href="@target"
$IT= echo @source

scenario it should have link to target
page $IT should have link to @target

scenario and it should have link to target
page $IT should have link to @target

scenario page source should have creating link to target
check request page @source 200
ensure content contains @target<a title="create page" href="@target?edit&nonExistent=true">[?]</a>

scenario it should have creating link to target
page $IT should have creating link to @target

scenario page source should contain text
check request page @source 200
ensure content contains @text
show content

scenario page source should not contain text
check request page @source 200
reject content contains @text
show content

scenario page source should match text
check request page @source 200
ensure content matches @text
show content

scenario it should contain text
page $IT should contain @text

scenario it should not contain text
page $IT should not contain @text

scenario it should contain text in line symbol
check request page $IT 200
$@symbol= line number containing @text

scenario it should match text
page $IT should match @text

scenario test results for page source should contain text
check request page @source?test 200
ensure content contains @text
show content

scenario test results for page in debug mode source should contain text
check request page @source?test&debug 200
ensure content contains @text
show content

scenario test results for suite source should contain text
check request page @source?suite 200
ensure content contains @text
show content

scenario its test results should contain text
test results for page $IT should contain @text

scenario test ressults for page source should not contain text
check request page @source?test 200
reject content contains @text
show content

scenario and should contain text
ensure content contains @text
show content

scenario and should match text
ensure content matches @text
show content

scenario and should not contain text
reject content contains @text
show content

scenario widget wikiText should render htmlText
create page WidgetPage with content @wikiText
check request page WidgetPage 200
ensure content matches @htmlText
show content

scenario the line after should come after before
check echo int $@before < $@after

scenario pass
check echo pass pass

scenario show collapsed content
show @content

scenario show Symbol result

scenario then pass assertions pass, fail fail, ignore are ignored exception exceptions thrown
ensure content matches Assertions:<[^<]*@pass right, @fail wrong, @ignore ignored, @exception exceptions
show extract match; Assertions:<[^<]*exceptions contents 0

scenario and cell text has result result
ensure content matches class="@result">@text<
show extract match; class="[^"]+">@text< contents 0

variable defined: TestSTART=@@@START: Test specific content
variable defined: TestEND=@@@END: Test specific content

scenario and TestSystem setup is content
$CONTENT= echo $CONTENT @content

scenario and setup content is content
$CONTENT= echo $CONTENT @content

scenario and test content is content
given page $IT with content $CONTENT @@@START: Test specific content@content@@@END: Test specific content
make $IT a test page

scenario get HTML result
start Response Examiner.
setType contents
setPattern @@@START: Test specific content[^<]*(.*>)\s*@@@END: Test specific content
setGroup 1
$HTML_Result= found

scenario get HTML input
start Response Examiner.
setType pageHtml
setPattern @@@START: Test specific content[^<]*(.*>)\s*@@@END: Test specific content
setGroup 1
$HTML_Input= found
show collapsed get value


scenario get collapsed executon log for page source
check request page @source?executionLog 200
show content

scenario when page source is tested
check request page @source?test 200
show collapsed content

scenario when page source is tested and HTML is extracted
when page @source is tested
get HTML result
get HTML input

Included page: .FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SetUp (edit)

Import
fitnesse.fixtures

SetUp Plugins=fitnesse.testsystems.slim.CustomTableAliasPlugin CustomComparators=glob:fitnesse.testsystems.slim.GlobComparator

Library
page driver
echo fixture

Contents:


variable defined: TestPageName=Testpage
variable defined: minus=-
variable defined: exclamation=!

script
given test page Testpage
and Test System setup is !define TEST_SYSTEM {slim} !path lib/*.jar
and Setup content is |import | |fitnesse.slim.test |
and Test content is !-

import
fitnesse.slim.test


if you expect an exception you can test for it and pass the test

use the keyword EXCEPTION:

Test Slim
# Scenario throw Normal? throw Exception With Message?
Testing for an expected Exception EXCEPTION:=~/This is my exception/ EXCEPTION:=~/Test message/
otherwise error is indicated. Watch how an exception with message is displayed shorter compared to a normal exception This is my exception Test message

if you expect an exception but there is non then the cell will fail

Test Slim
string getStringArg? getStringArg?
Hello Hello EXCEPTION: Hello



An exception occurring in a not cell specific function call is added to the current row.

This applies to: execute, reset, table, beginTable, endTable

DT:fitnesse.slim.test.DecisionTableExecuteThrows
x x?
5 5

and also to constructor failures

DT:ConstructorThrows test goes on
x x?
5 5


Multiple exceptions can happen in one row and in a in cell in the same row
DT:fitnesse.slim.test.DecisionTableExecuteThrows
Which Methods Fail x x?
NONE 5 5
execute setX getX 5 5
reset 2 2
reset 5 5

Everything goes wrong - Fitnesse catches all 7 exceptions

The exceptions are added at the right level:
  • cell - for getter and setter
  • row - for reset and execute
  • table - for table, beginTable and endTable

DT:fitnesse.slim.test.DecisionTableExecuteThrows Total Disaster
x x?
5 5



Scripts behave like decision tables


script:fitnesse.slim.test.DecisionTableExecuteThrows
check execute EXCEPTION: =~/EXECUTE_THROWS/

A stop test is counted as fail and not as error
script:ConstructorThrows stop test
check execute Not reached as test is stopped

-!
when page Testpage is tested and HTML is extracted
then 8 assertions pass, 1 fail, 0 are ignored 18 exceptions thrown
and cell .This is my exception. found in:[^<]* has result pass
and cell .Test message. found in:[^<]* has result pass
and cell This is my exception./span>./td>./tr>.tr class="exception-detail closed-detail">.td>__EXCEPTION__:java.lang.Excep[^<]* has result error
and cell Test message has result error
and cell java.lang.RuntimeException: test goes on has result error
and cell The instance decisionTable_\d.setX. does not exist has result error
and cell 5..span...td...tr..tr class="exception-detail closed-detail"..td.__EXCEPTION__:fitnesse.slim.SlimError: SETX_THROWS[^<]* has result error
and cell .table>.tr class="exception closed">.td> .span class="error">5 has result error
and cell 5..span...td...tr..tr class="exception-detail closed-detail"..td.__EXCEPTION__:fitnesse.slim.SlimError: GETX_THROWS[^<]* has result error
and cell .td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: ENDTABLE_THROWS[^<]* has result exception-detail closed-detail
and cell .td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: BEGINTABLE_THROWS[^<]* has result exception-detail closed-detail
and cell .td colspan="2">.pre>__EXCEPTION__:fitnesse.slim.SlimError: DOTABLE_THROWS[^<]* has result exception-detail closed-detail
and cell expected ...span..span class="diff".EXCEPTION: ..span..span class="fail".Hello. has result fail
and cell EXCEPTION:../span>.span class="fail">Hello] has result diff
and cell fitnesse.slim.test.StopTestException: stop test has result fail
and cell Test not run has result ignore
# show Symbol $HTML_Input
show Symbol $HTML_Result
get collapsed executon log for page Testpage

Included page: .FitNesse.SuiteAcceptanceTests.TearDown (edit)



tear down