FitNesse. SuiteAcceptanceTests. SuiteWidgetTests.
TestVariables [add child]

 Scenario Libraries

Test that variables are properly defined and expressed on a page.



Test a variable defined and used on the same page.

script
start Page Builder
line !define x {1}
line x is ${x}
line PAGE_NAME is ${PAGE_NAME}
line PAGE_PATH is ${PAGE_PATH}
page VariablePage
Response Requester.
uri valid? contents?
VariablePage true  
Response Examiner.
type pattern matches?
contents x is 1 true
contents PAGE_NAME is <a href="VariablePage">VariablePage true
contents PAGE_PATH is . true



Test a variable defined and used on the same page using () syntax.

script
start Page Builder
line !define x (1)
line x is ${x}
page ParenVariablePage
Response Requester.
uri valid? contents?
ParenVariablePage true  
Response Examiner.
type pattern matches? wrapped html?
contents x is 1 true  



Test literals in variables with {} and () syntax.

The internal representation of a literal is changed from !lit(n) to !lit?n? so as to avoid conflict with the !define X () widget syntax.
script
start Page Builder
line !define xLitBRACE {!-xLitBRACE-!}
line !define xLitPAREN (!-xLitPAREN-!)
line xLitBRACE is ${xLitBRACE}
line xLitPAREN is ${xLitPAREN}
page ParenVariablePage
Response Requester.
uri valid? contents?
ParenVariablePage true  
Response Examiner.
type pattern matches? wrapped html?
contents xLitPAREN is xLitPAREN true  
contents xLitBRACE is xLitBRACE true  



Test a variables with periods

script
start Page Builder
line !define xy. (1)
line !define x.y (2)
line !define .xy (3)
line !define .x.y. (4)
line !define .xy. (5)
line !define .x.y (6)
line !define x.y. (7)
line !define x..y (8)
line ~xy. is ${xy.}~
line ~x.y is ${x.y}~
line ~.xy is ${.xy}~
line ~.x.y. is ${.x.y.}~
line ~.xy. is ${.xy.}~
line ~.x.y is ${.x.y}~
line ~x.y. is ${x.y.}~
line ~x..y is ${x..y}~
page ParenVariablePage
Response Requester.
uri valid? contents?
ParenVariablePage true  
Response Examiner.
type pattern matches? wrapped html?
contents ~xy. is 1~ true  
contents ~x.y is 2~ true  
contents ~.xy is 3~ true  
contents ~.x.y. is 4~ true  
contents ~.xy. is 5~ true  
contents ~.x.y is 6~ true  
contents ~x.y. is 7~ true  
contents ~x..y is 8~ true