FitNesse. SuiteAcceptanceTests. SuiteWidgetTests.
TestLinkAlias [add child]

 Scenario Libraries

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

Page creator.
Page name. Page contents. Page attributes. valid?
SomePage.TargetPage target page   true
SomePage.LinkPage [[tag][TargetPage]]   true
Response Requester.
uri valid?
SomePage.LinkPage true
Response Examiner.
type pattern matches? value
contents <a href="SomePage.TargetPage">tag</a> true  


Test global link alias

Page creator.
Page name. Page contents. Page attributes. valid?
SomePage.GlobalLinkPage [[tag][.SomePage.TargetPage]]   true
Response Requester.
uri valid?
SomePage.GlobalLinkPage true
Response Examiner.
type pattern matches? value
contents <a href="SomePage.TargetPage">tag</a> true  


Test variables get rendered in http link alias

script
start Page Builder
line !define HOST {localhost:8080}
line [[tag][http://${HOST}/page]] works fine.
page HttpLinkPage

Response Requester.
uri valid?
HttpLinkPage true
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

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

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

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  

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

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  

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