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 | 
 
 
 
 
Evaluator of expressions: ${= =}
Syntax
       ${= [format:] expression =} Expression
An expression may be a combination of constants, variables, and opertors.  All internal calculations use the Java 
double numeric type.
Format
A format is a specifier that describes the rendering of the numeric result.  The format specifier is described by the Java 5 String class's .format() method:
       %[flags][width][.precision]conversion
	- N.B., The [argument_index$] specifier is not permitted.
 
Links
Examples
    ${= 12 + 23 =} renders (sand brackets) as [35]
    ${=%5.4f:1.414=} : [1.4140]
    ${=%05X:14+14=}  : [0001C]
    ${= %-10s : 123 =}   : [123       ]Operators supported
| Comment | 
Spaces between items are optional | 
| Operator | 
Argument | 
Description | 
arg  | 
constant or variable | 
Examples: 3, 12.4, 4E+8, ${VALUE}, ${some.var} | 
expr  | 
expression  | 
Any valid combination of arguments and optional operations and parentheses | 
+  | 
expr + expr  | 
Addition | 
-  | 
-expr  | 
Unary negation | 
-  | 
expr - expr  | 
Subtraction | 
*  | 
expr * expr  | 
Multiplication | 
/  | 
expr / expr  | 
Division | 
^  | 
expr ^ expr  | 
Exponentiation | 
sin  | 
sin expr  | 
Radian Sine of expr | 
cos  | 
cos expr  | 
Radian Cosine of expr | 
tan   | 
cos expr  | 
Radian Tangent of expr | 
( )  | 
( expr )  | 
Parenthetical grouping of an expression | 
Test Blank Expressions
 Build blank expression page 
| script | 
| start | 
Page Builder | 
| line | 
~1a:${==}~ | 
| line | 
~1b:${= =}~ | 
| line | 
~1c:${=  =}~ | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~1a:~ | 
true | 
| contents | 
~1b:~ | 
true | 
| contents | 
~1c:~ | 
true | 
Test Single Argument Expressions
 Build expression page 
| script | 
| start | 
Page Builder | 
| line | 
 ~2a:${=3=}~    | 
| line | 
 ~2b:${= 4.2 =}~   | 
| line | 
 ~2c:${= 2E+1 =}~  | 
| line | 
 ~2d:${=  2.3E+42  =}~  | 
| line | 
 ~2e:${=  4.2E + 24  =}~  | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~2a:3~ | 
true | 
| contents | 
~2b:4.2~ | 
true | 
| contents | 
~2c:20~ | 
true | 
| contents | 
~2d:2.3E+42~ | 
true | 
| contents | 
~2e:4.2E+24~ | 
true | 
Test spaces around experssions
 Build expression page 
| script | 
| start | 
Page Builder | 
| line | 
 ~3a:${=1+1=}~  | 
| line | 
 ~3b:${=2 + 2=}~  | 
| line | 
 ~3c:${= 3 + 3=}~  | 
| line | 
 ~3d:${=4 + 4 =}~  | 
| line | 
 ~3e:${=5 +5 =}~  | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~3a:2~ | 
true | 
| contents | 
~3b:4~ | 
true | 
| contents | 
~3c:6~ | 
true | 
| contents | 
~3d:8~ | 
true | 
| contents | 
~3e:10~ | 
true | 
Test each operator
 Build expression page 
| script | 
| start | 
Page Builder | 
| line | 
 ~4plus:${= 1 + 2 =}~      | 
| line | 
 ~4minus:${= 2 - 3 =}~     | 
| line | 
 ~4unary:${= -12 =}~       | 
| line | 
 ~4mult:${= 3 * 4 =}~      | 
| line | 
 ~4div:${= 4 / 5 =}~       | 
| line | 
 ~4exp:${=%2d: 5 ^ 6 =}~   | 
| line | 
 ~4sin1:${=%5.4f: sin0.39269875   =}~  | 
| line | 
 ~4sin2:${=%5.4f: sin 0.39269875  =}~  | 
| line | 
 ~4sin3:${=%5.4f: sin(0.39269875) =}~  | 
| line | 
 ~4sin4:${=%5.4f: sin(3.14159/8)  =}~  | 
| line | 
 ~4sin5:${=%5.4f: sin (3.14159/8) =}~  | 
| line | 
 ~4cos:${=%5.4f: cos(3.14159 / 8) =}~  | 
| line | 
 ~4tan:${=%5.4f: tan(3.14159 / 8) =}~  | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~4plus:3~ | 
true | 
| contents | 
~4minus:-1~ | 
true | 
| contents | 
~4unary:-12~ | 
true | 
| contents | 
~4mult:12~ | 
true | 
| contents | 
~4div:0.8~ | 
true | 
| contents | 
~4exp:15625~ | 
true | 
| contents | 
~4sin1:0.3827~ | 
true | 
| contents | 
~4sin2:0.3827~ | 
true | 
| contents | 
~4sin3:0.3827~ | 
true | 
| contents | 
~4sin4:0.3827~ | 
true | 
| contents | 
~4sin5:0.3827~ | 
true | 
| contents | 
~4cos:0.9239~ | 
true | 
| contents | 
~4tan:0.4142~ | 
true | 
Test parentheses
 Build expression page 
| script | 
| start | 
Page Builder | 
| line | 
 ~5a:${= 2 * 3 + 4 / 2 - 3             =}~  | 
| line | 
 ~5b:${= 2 * ( 3 + 4 ) / 2 - 3         =}~  | 
| line | 
 ~5c:${= 2 * ( 3 + 4 ) / ( 2 - 3 )     =}~  | 
| line | 
 ~5d:${= 2 * ( 3 + ( 4 / ( 2 - 3 ) ) ) =}~  | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~5a:5~ | 
true | 
| contents | 
~5b:4~ | 
true | 
| contents | 
~5c:-14~ | 
true | 
| contents | 
~5d:-2~ | 
true | 
Test formatting
 Build expression page 
| script | 
| start | 
Page Builder | 
| line | 
 ~6a:${=%d:2                =}~  | 
| line | 
 ~6b:${= %d : 3.2           =}~  | 
| line | 
 ~6c:${=%02d: 2 + 1        =}~   | 
| line | 
 ~6d:${= %4.4f: 2.2 / 3.4 =}~    | 
| line | 
 ~6e:${=%03o: 16 =}~             | 
| line | 
 ~6f:${= %03o : 18 =}~           | 
| line | 
 ~6g:${=%03x: 26 =}~             | 
| line | 
 ~6h:${=%03X: 27 =}~             | 
| line | 
 ~6i:${= %-12s : 123 =}~         | 
| line | 
 ~6j:${=%TY: 73422123127 =}~     | 
| line | 
 ~6k:${=%b: 27 =}~               | 
| line | 
 ~6l:${=%b: 0 =}~                | 
| line | 
 ~6m:${=%B: 27 =}~               | 
| line | 
 ~6n:${=%B: 0 =}~                | 
| line | 
 ~6o:${= % d : 3.2          =}~  | 
| page | 
ExpressionPage | 
 Render it 
| Response Requester | 
| uri | 
valid? | 
| ExpressionPage | 
true | 
	
	
		
	
 Contents 
	
| Response Examiner | 
| type | 
string? | 
| contents | 
  | 
| Response Examiner | 
| type | 
wrapped html? | 
| contents | 
  | 
 
 
 Verify results 
| Response Examiner | 
| type | 
pattern | 
matches? | 
| contents | 
~6a:2~ | 
true | 
| contents | 
~6b:3~ | 
true | 
| contents | 
~6c:03~ | 
true | 
| contents | 
~6d:0.6471~ | 
true | 
| contents | 
~6e:020~ | 
true | 
| contents | 
~6f:022~ | 
true | 
| contents | 
~6g:01a~ | 
true | 
| contents | 
~6h:01B~ | 
true | 
| contents | 
~6i:123         ~ | 
true | 
| contents | 
~6j:1972~ | 
true | 
| contents | 
~6k:true~ | 
true | 
| contents | 
~6l:false~ | 
true | 
| contents | 
~6m:true~ | 
true | 
| contents | 
~6n:false~ | 
true | 
| contents | 
~6o: 3~ | 
true |