package Ġcom . jj h . android . game Ċ Ċ import Ġandroid . view . Gravity Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . test . espress o . Esp ress o Ċ import Ġandroidx . test . espress o . assertion . View Assertions Ċ import Ġandroidx . test . espress o . contrib . Drawer Actions Ċ import Ġandroidx . test . espress o . contrib . Drawer Matchers Ċ import Ġandroidx . test . espress o . contrib . Navigation View Actions Ċ import Ġandroidx . test . espress o . matcher . View Matchers Ċ import Ġandroidx . test . ext . junit . rules . Activity Scenario Rule Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith ĊĊ Ċ /** Ċ Ġ* ĠInstrument ed Ġtest , Ġwhich Ġwill Ġexecute Ġon Ġan ĠAndroid Ġdevice . Ċ Ġ* Ċ Ġ* ĠSee Ġ[ testing Ġdocumentation ]( http :// d . android . com / tools / testing ). Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠMainActivity Test Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġactivity Rule : ĠActivity Scenario Rule < MainActivity > Ġ= ĊĠĠĠĠĠĠĠ ĠActivity Scenario Rule ( MainActivity :: class . java ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Activity State () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġactivity Rule . scenario . state ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" activity Ġstate Ġshould Ġbe ", ĠLifecycle . State . RE SU MED , Ġstate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Navigation Draw Is Closed () Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Activity . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġdrawer Ġis Ġclosed ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . drawer _ layout )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( View Assertions . matches ( Drawer Matchers . is Closed ( Gravity . START ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Navigation Draw Open s () Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Activity . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOpen Ġthe Ġnavigation Ġdrawer ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . drawer _ layout )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( Drawer Actions . open ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( View Assertions . matches ( Drawer Matchers . isOpen ())) Ġ// Ġcheck Ġit Ġis Ġopen ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġclick On Home Navigation Item _ Shows Home Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOpen ĠDraw er Ġto Ġclick Ġon Ġnavigation . ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . drawer _ layout )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( View Assertions . matches ( Drawer Matchers . is Closed ( Gravity . START ))) Ġ// ĠLeft ĠDraw er Ġshould Ġbe Ġclosed . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( Drawer Actions . open ()) Ġ// ĠOpen ĠDraw er ĊĊĠĠĠĠĠĠĠ Ġ// ĠStart Ġthe Ġscreen Ġof Ġyour Ġactivity . ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . nav _ view )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( Navigation View Actions . navigate To ( R . id . nav _ home )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġthe ĠActivity Ġwas Ġopened . ĊĠĠĠĠĠĠĠ ĠE sp ress o . on View ( View Matchers . with Id ( R . id . text _ home )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( View Assertions . matches ( View Matchers . with Text (" This Ġis Ġhome ĠFragment "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcurrent Activity : ĠMainActivity ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġactivity : ĠMainActivity ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Rule . scenario . on Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġactivity !! ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }