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 pagescript | |
start | Page Builder |
line | ~1a:${==}~ |
line | ~1b:${= =}~ |
line | ~1c:${= =}~ |
page | ExpressionPage |
Render it
Response Requester | |
uri | valid? |
ExpressionPage | true |
Verify results
Response Examiner | ||
type | pattern | matches? |
contents | ~1a:~ | true |
contents | ~1b:~ | true |
contents | ~1c:~ | true |
Test Single Argument Expressions
Build expression pagescript | |
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 |
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 pagescript | |
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 |
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 pagescript | |
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 |
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 pagescript | |
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 |
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 pagescript | |
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 |
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 |
Add Child Page to TestEvaluator