Scenario Libraries
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 |
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 |
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 |
!contents with Recursive option
Use !contents to list all or some of the child pages of the current page along with additional information such as help text, suite filters, some property settings, and graceful names.
Example: !contents -R2 -g -p -f -h
Options
-R ...include all of the descendent pages;
-Rn ...include n levels of descendent pages;
-f ...show suite filters--define FILTER_TOC {true} for global;
-g ...show graceful names in the list--define REGRACE_TOC {true} for global;
-h ...show help property text--define HELP_TOC {true} for global;
-p ...show property suffixes--define PROPERTY_TOC {true} for global;
defaults: Suite(*), Test(+), Imported(@), Symbolic(>), Pruned(-)
define PROPERTY_CHARACTERS {*+@>-} to change.
First create the parent page.
script |
start |
Page Builder |
line |
I'm the parent |
line |
!contents -R |
page |
ParentPage |
Next create a child
script |
start |
Page Builder |
line |
I came first! |
attributes |
Suite=true,Test=true,Suites=FC1 |
page |
ParentPage.FirstChild |
Next create a sibling
script |
start |
Page Builder |
line |
I'm younger, but wiser |
attributes |
WikiImport=true,Prune=true,Suites=FC2 |
page |
ParentPage.SecondChild |
Next create a grandchild
script |
start |
Page Builder |
line |
You're too young to be grandparents |
page |
ParentPage.FirstChild.GrandChild |
Then request the parent page.
Response Requester. |
uri |
valid? |
contents? |
ParentPage |
true |
|
...and examine the requested page to be sure that the descendent pages are included
Response Examiner. |
type |
pattern |
matches? |
contents |
a href="ParentPage.FirstChild">FirstChild</a |
true |
contents |
a href="ParentPage.FirstChild.GrandChild">GrandChild</a |
true |
contents |
a href="ParentPage.SecondChild">SecondChild</a |
true |
Also note that the html assigns css classes named toc1, toc2, etc depending on how far down you go. This allows you to define different characteristics for each level in the hierarchy by editing /files/css/fitnesse.css.
Response Examiner. |
type |
pattern |
matches? |
contents |
div class="toc1" |
true |
contents |
div class="toc2" |
true |