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 | 
 
 
 
 
Test the Link Alias syntax.
Aliases to links can be created using the [[tag][link]] syntax.
The tag is interpreted for markup syntax, so it can be italic, or bold, or an image, etc.  The link can be a relative or global wiki word, or it can be an http link.
Test relative link alias
	- First create two sub pages.  One has a relative link to the other.
 
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| SomePage.TargetPage | 
target page | 
  | 
true | 
| SomePage.LinkPage | 
[[tag][TargetPage]] | 
  | 
true | 
	- Then get the page with the relative link on it.
 
| Response Requester. | 
| uri | 
valid? | 
| SomePage.LinkPage | 
true | 
	- Then make sure the relative link is properly constructed.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
value | 
| contents | 
<a href="SomePage.TargetPage">tag</a> | 
true | 
  | 
Test global link alias
	- First create a sub page that has a global reference to another sub page.
 
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| SomePage.GlobalLinkPage | 
[[tag][.SomePage.TargetPage]] | 
  | 
true | 
| Response Requester. | 
| uri | 
valid? | 
| SomePage.GlobalLinkPage | 
true | 
	- Make sure the link is properly formed.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
value | 
| contents | 
<a href="SomePage.TargetPage">tag</a> | 
true | 
  | 
Test variables get rendered in http link alias
	- First create a page with a variable and http link on it.
 
| script | 
| start | 
Page Builder | 
| line | 
!define HOST {localhost:8080} | 
| line | 
[[tag][http://${HOST}/page]] works fine. | 
| page | 
HttpLinkPage | 
| Response Requester. | 
| uri | 
valid? | 
| HttpLinkPage | 
true | 
	- Make sure the link is properly constructed.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
value | 
| contents | 
<a href="http://localhost:8080/page">tag</a> works fine. | 
true | 
  | 
Test variables defined in parent page get rendered in http link alias on child pages
	- First define parent page with variable definition and child page with a http link which uses the variable.
 
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| SomePage.ParentPage | 
!define HOST {localhost:8080} | 
  | 
true | 
| SomePage.ParentPage.ChildPage | 
[[tag][http://${HOST}/page]] works fine. | 
  | 
true | 
| Response Requester. | 
| uri | 
valid? | 
| SomePage.ParentPage.ChildPage | 
true | 
	- Make sure the link is properly constructed.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
value | 
| contents | 
<a href="http://localhost:8080/page">tag</a> works fine. | 
true | 
  | 
Test expressions without variables in link alias
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| PageLink2 | 
contents | 
  | 
true | 
| PageLink4 | 
contents | 
  | 
true | 
| PageLink10 | 
contents | 
  | 
true | 
	- First create a page with a variables and http link on it.
 
| script | 
| start | 
Page Builder | 
| line | 
!define X {5} | 
| line | 
!define Y (4) | 
| line | 
!define EXPR (${=3+2-1=}) | 
| line | 
[[tag][PageLink${= 3 - 2 + 1 =}]] works fine. | 
| line | 
[[tag][PageLink${EXPR}]] works too. | 
| line | 
[[tag][PageLink${=${X}+${Y}+1=}]] works as well. | 
| page | 
HttpExprPage | 
| Response Requester. | 
| uri | 
valid? | 
contents? | 
| HttpExprPage | 
true | 
  | 
	- Make sure the link is properly constructed.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
| contents | 
<a href="PageLink2">tag</a> works fine. | 
true | 
| contents | 
<a href="PageLink4">tag</a> works too. | 
true | 
| contents | 
<a href="PageLink10">tag</a> works as well. | 
true | 
Test that links with query strings and fragments are handled properly.
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| QueryPageRoot | 
!anchor QPLabel    | 
  | 
true | 
| QueryPageRoot.TopPage | 
!anchor QPTopLabel | 
  | 
true | 
	- Create a page of query and fragment links...and a child
 
| script | 
| start | 
Page Builder | 
| line | 
[[tag1 ][TopPage?edit]] has query. | 
| line | 
[[tag2 ][TopPage?edit#QPTopLabel]] has query and frag. | 
| line | 
[[tag3 ][TopPage#QPTopLabel]] has fragment. | 
| line | 
[[tag4 ][
 | 
| line | 
[[tag5 ][.QueryPageRoot.TopPage?edit]] root has query. | 
| line | 
[[tag6 ][
 | 
| line | 
[[tag7 ][
 | 
| line | 
[[tag8 ][>ChildFrag?edit]] child has query. | 
| line | 
[[tag9 ][>ChildFrag?edit#QPTopLabel]] child has query and frag. | 
| line | 
[[tag10][>ChildFrag#QPTopLabel]] child has fragment. | 
| page | 
QueryPageRoot.QueryFragmentLinks | 
| Page creator. | 
| Page name. | 
Page contents. | 
Page attributes. | 
valid? | 
| QueryPageRoot.QueryFragmentLinks.ChildFrag | 
!anchor QPChild | 
  | 
true | 
| Response Requester. | 
| uri | 
valid? | 
contents? | 
| QueryPageRoot.QueryFragmentLinks | 
true | 
  | 
	- Make sure the query and fragments don't interfere with page paths.
 
| Response Examiner. | 
| type | 
pattern | 
matches? | 
| contents | 
<a href="QueryPageRoot\.TopPage\?edit">tag1 </a> has query. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage\?edit#QPTopLabel">tag2 </a> has query and frag. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage#QPTopLabel">tag3 </a> has fragment. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage\?edit">tag4 </a> back has query. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage\?edit">tag5 </a> root has query. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage\?edit#QPTopLabel">tag6 </a> back has query and frag. | 
true | 
| contents | 
<a href="QueryPageRoot\.TopPage#QPTopLabel">tag7 </a> back has fragment. | 
true | 
| contents | 
<a href="QueryPageRoot\.QueryFragmentLinks\.ChildFrag\?edit">tag8 </a> child has query. | 
true | 
| contents | 
<a href="QueryPageRoot\.QueryFragmentLinks\.ChildFrag\?edit#QPTopLabel">tag9 </a> child has query and frag. | 
true | 
| contents | 
<a href="QueryPageRoot\.QueryFragmentLinks\.ChildFrag#QPTopLabel">tag10</a> child has fragment. | 
true |