annotate tests/utest.ur @ 19:5e03668972ea

Utest example
author Adam Chlipala <adam@chlipala.net>
date Thu, 06 Jan 2011 15:25:11 -0500
parents
children 354dae3008de
rev   line source
adam@19 1 style inputs
adam@19 2
adam@19 3 structure U = OpenidUser.Make(struct
adam@19 4 con cols = [Nam = string]
adam@19 5
adam@19 6 val sessionLifetime = 3600
adam@19 7 val afterLogout = bless "/main"
adam@19 8 val secureCookies = False
adam@19 9 val association = Openid.Stateful {AssociationType = Openid.HMAC_SHA256,
adam@19 10 AssociationSessionType = Openid.NoEncryption}
adam@19 11 val realm = None
adam@19 12
adam@19 13 val creationState =
adam@19 14 n <- source "";
adam@19 15 return {Nam = n}
adam@19 16
adam@19 17 fun render r = <xml>
adam@19 18 <tr> <th class={inputs}>Name:</th> <td><ctextbox source={r.Nam}/></td> </tr>
adam@19 19 </xml>
adam@19 20
adam@19 21 fun tabulate r =
adam@19 22 n <- signal r.Nam;
adam@19 23 return {Nam = n}
adam@19 24
adam@19 25 fun choose _ r = return r
adam@19 26
adam@19 27 val formClass = inputs
adam@19 28 end)
adam@19 29
adam@19 30 fun wrap title body =
adam@19 31 userStuff <- U.main wrap;
adam@19 32 return <xml><head>
adam@19 33 <title>{[title]}</title>
adam@19 34 </head><body>
adam@19 35 {userStuff}
adam@19 36
adam@19 37 <h1>{[title]}</h1>
adam@19 38
adam@19 39 {body}
adam@19 40 </body></xml>
adam@19 41
adam@19 42 fun main () =
adam@19 43 whoami <- U.current;
adam@19 44 wrap "Main page" (case whoami of
adam@19 45 None => <xml>I don't think you're logged in.</xml>
adam@19 46 | Some whoami => <xml>Apparently you are <b>{[whoami]}</b>!</xml>)