/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ- Ġpresent ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ package Ġcom . in structure . student . ui . pages Ċ Ċ import Ġandroidx . test . espress o . web . s ugar . Web Ċ import Ġandroidx . test . espress o . web . s ugar . Web . on WebView Ċ import Ġandroidx . test . espress o . web . webdriver . Driver Atoms .* Ċ import Ġandroidx . test . espress o . web . webdriver . Locator Ċ import Ġcom . in structure . data seed ing . model . Canvas User ApiModel Ċ import Ġcom . in structure . student . R Ċ import Ġcom . in structure . espress o . On View With Id Ċ import Ġcom . in structure . espress o . assert Displayed Ċ import Ġcom . in structure . espress o . page . Base Page Ċ Ċ @ Suppress (" unused ") Ċ class ĠLogin SignIn Page : ĠBase Page () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠE MAIL _ FIELD _ CSS Ġ= Ġ" input [ name =\" p seud onym _ session [ unique _ id ]\ "] " ĊĠĠĠ Ġprivate Ġval ĠPASSWORD _ FIELD _ CSS Ġ= Ġ" input [ name =\" p seud onym _ session [ password ]\ "] " ĊĠĠĠ Ġprivate Ġval ĠLOGIN _ BUTTON _ CSS Ġ= Ġ" button [ type =\" submit \"] " ĊĠĠĠ Ġprivate Ġval ĠFOR G OT _ PASSWORD _ BUTTON _ CSS Ġ= Ġ" a [ class =\" forgot - password Ġflip - to - back \"] " ĊĠĠĠ Ġprivate Ġval ĠAUTHOR IZE _ BUTTON _ CSS Ġ= Ġ" button [ type =\" submit \"] " ĊĊĠĠĠ Ġprivate Ġval Ġsign In Root Ġby ĠOn View With Id ( R . id . signIn Root , Ġauto Assert Ġ= Ġfalse ) ĊĠĠĠ Ġprivate Ġval Ġtoolbar Ġby ĠOn View With Id ( R . id . toolbar , Ġauto Assert Ġ= Ġfalse ) ĊĊĠĠĠ Ġ// region ĠUI ĠElement ĠLoc ator ĠMethods ĊĊĠĠĠ Ġprivate Ġfun Ġemail Field (): ĠWeb . Web Interaction < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon WebView (). with Element ( findElement ( Locator . CSS _ SELECT OR , ĠE MAIL _ FIELD _ CSS )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpassword Field (): ĠWeb . Web Interaction < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon WebView (). with Element ( findElement ( Locator . CSS _ SELECT OR , ĠPASSWORD _ FIELD _ CSS )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin Button (): ĠWeb . Web Interaction < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon WebView (). with Element ( findElement ( Locator . CSS _ SELECT OR , ĠLOGIN _ BUTTON _ CSS )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġforgot Password Button (): ĠWeb . Web Interaction < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon WebView (). with Element ( findElement ( Locator . CSS _ SELECT OR , ĠFOR G OT _ PASSWORD _ BUTTON _ CSS )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġauthorize Button (): ĠWeb . Web Interaction < *> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġon WebView (). with Element ( findElement ( Locator . CSS _ SELECT OR , ĠAUTHOR IZE _ BUTTON _ CSS )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠAssertion ĠHelpers ĊĊĠĠĠ Ġoverride Ġfun Ġassert Page Objects () Ġ{ ĊĠĠĠĠĠĠĠ Ġsign In Root . assert Displayed () ĊĠĠĠĠĠĠĠ Ġtoolbar . assert Displayed () ĊĊĠĠĠĠĠĠĠ Ġemail Field () ĊĠĠĠĠĠĠĠ Ġpassword Field () ĊĠĠĠĠĠĠĠ Ġlogin Button () ĊĠĠĠĠĠĠĠ Ġforgot Password Button () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region ĠUI ĠAction ĠHelpers ĊĊĠĠĠ Ġfun Ġenter Email ( email : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġemail Field (). perform ( web Keys ( email )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġenter Password ( password : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpassword Field (). perform ( web Keys ( password )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Login Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin Button (). perform ( web Click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclick Forgot Password Button () Ġ{ ĊĠĠĠĠĠĠĠ Ġforgot Password Button (). perform ( web Click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogin As ( user : ĠCanvas User ApiModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin As ( user . login Id , Ġuser . password ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogin As ( login Id : ĠString , Ġpassword : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġenter Email ( login Id ) ĊĠĠĠĠĠĠĠ Ġenter Password ( password ) ĊĠĠĠĠĠĠĠ Ġclick Login Button () ĊĠĠĠĠĠĠĠ Ġ// Ġauthorize Button (). perform ( web Click ()) Ġ// ĠNot Ġneeded Ġon Ġmobile qa . beta . in structure . com Ġ( ?? ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion Ċ } Ċ