package Ġdev . m ich all ask owski . ku iks Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġandroidx . test . espress o . Esp ress o Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions Ċ import Ġandroidx . test . espress o . assertion . View Assertions Ċ import Ġandroidx . test . espress o . contrib . RecyclerView Actions Ċ import Ġandroidx . test . espress o . matcher . View Matchers Ċ import Ġorg . hamcrest . Matcher Ċ import Ġorg . hamcrest . Matchers Ċ import Ġorg . hamcrest . core . String Contains . contains String ĊĊ Ċ actual Ġval Ġplatform : ĠPlatform Ġ= ĠPlatform . Android Ċ Ċ class ĠElement Wrapper ( val Ġmatcher : ĠMatcher < View >): ĠApp Element Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtap () Ġ{ ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( matcher ). perform ( View Actions . click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġelement With TestId ( test Id : ĠString ): ĠApp Element Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinteraction Ġ= ĠMatch ers . all Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Matchers . with Content Description ( test Id ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Matchers . is Desc endant Of A ( matcher ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠElement Wrapper ( interaction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtable ( with Id : ĠString ): ĠApp Element Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcell ( with Id : ĠString ): ĠApp Element Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcell Matcher Ġ= ĠView Matchers . with Content Description ( with Id ) ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( matcher ). perform ( RecyclerView Actions . scrollTo < RecyclerView . ViewHolder >( cell Matcher )) ĊĠĠĠĠĠĠĠ Ġreturn ĠElement Wrapper ( cell Matcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠwaitFor Ex istence ( timeout : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( matcher ). check ( View Assertions . matches ( View Matchers . is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Text ( text : ĠString , Ġtimeout : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView Assertion Id ler . waitFor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatcher , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Assertions . matches ( View Matchers . with Text ( contains String ( text ))), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimeout ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetText ( timeout : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġon View ( matcher ). check Ġ{ Ġhas TextView , Ġno TextView Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no TextView Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠClass CastException (" Non ĠTextView Ġor ĠEditText Ġmatch ers Ġdo Ġnot Ġhave Ġtext ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has TextView Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" View Ġis Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġif Ġ( has TextView Ġis ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas TextView . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( has TextView Ġas ĠEditText ). text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdebug Description : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġinitializer Ġof Ġcreated Ġproperties Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . Ċ Ċ } Ċ Ċ actual Ġclass ĠApplication Wrapper Ġactual Ġconstructor ( private Ġval Ġidentifier : ĠString ): ĠApplication Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġlaunch ( arguments : ĠMap < String , ĠString >) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġbased Ġon Ġhttps :// github . com / app ium / app ium - espress o - driver / blob / 0 5 ccf 5 a 7 fa 4 4 0 b fee 9 6 4 0 0 b 5 2 6 7 2 2 8 7 4 5 8 6 7 6 dfa / espress o - server / app / src / android Test / java / io / app ium / espress oser ver / lib / helpers / Activity Helper . kt ĊĠĠĠĠĠĠĠ Ġval Ġinstrument ation Ġ= ĠInstrument ation Registry . get Instrumentation () ĊĠĠĠĠĠĠĠ Ġval Ġapp Package Ġ= Ġinstrument ation . target Context . packageName ĊĠĠĠĠĠĠĠ Ġval Ġactivity Name Ġ= Ġ"$ app Package .$ identifier " ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ MAIN ) ĊĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠ Ġintent . set ClassName ( instrumentation . target Context , Ġactivity Name ) ĊĊĠĠĠĠĠĠĠ Ġarguments . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( it . key , Ġit . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinstrument ation . startActivity Sync ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtap () Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġelement With TestId ( test Id : ĠString ): ĠApp Element Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠElement Wrapper ( View Matchers . with Content Description ( test Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtable ( with Id : ĠString ): ĠApp Element Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement With TestId ( with Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcell ( with Id : ĠString ): ĠApp Element Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠwaitFor Ex istence ( timeout : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Text ( text : ĠString , Ġtimeout : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetText ( timeout : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdebug Description : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġidentifier Ċ } Ċ