!2 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. ---- !3 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|tag|true|| ---- !3 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| * Then fetch that page. |Response Requester.| |uri|valid?| |!-SomePage.GlobalLinkPage-!|true| * Make sure the link is properly formed. |Response Examiner.| |type|pattern|matches?|value| |contents|tag|true|| ---- !3 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|&bang;define HOST {localhost:8080}| |line|!-[[tag][http://${HOST}/page]]-! works fine.| |page|!-HttpLinkPage-!| * Fetch the page. |Response Requester.| |uri|valid?| |!-HttpLinkPage-!|true| * Make sure the link is properly constructed. |Response Examiner.| |type|pattern|matches?|value| |contents|tag works fine.|true|| ---- !3 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| * Fetch the page. |Response Requester.| |uri|valid?| |!-SomePage.ParentPage.ChildPage-!|true| * Make sure the link is properly constructed. |Response Examiner.| |type|pattern|matches?|value| |contents|tag works fine.|true|| ----- !3 Test expressions without variables in link alias * Create pages to refer to |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-!| * Fetch the page. |Response Requester.| |uri|valid?|contents?| |!-HttpExprPage-!|true|| * Make sure the link is properly constructed. |Response Examiner.| |type|pattern|matches?| |contents|tag works fine.|true| |contents|tag works too.|true| |contents|tag works as well.|true| !3 Test that links with query strings and fragments are handled properly. * Create a page hierarchy |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 ][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| * Fetch the page. |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|tag1 has query.|true| |contents|tag2 has query and frag.|true| |contents|tag3 has fragment.|true| |contents|tag4 back has query.|true| |contents|tag5 root has query.|true| |contents|tag6 back has query and frag.|true| |contents|tag7 back has fragment.|true| |contents|tag8 child has query.|true| |contents|tag9 child has query and frag.|true| |contents|tag10 child has fragment.|true|