/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġg par ap Ċ Ġ* Ċ Ġ* Ġ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 Ġg par ap . apps . converter _ binary Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . test . core . app . Activity Scenario Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions Ċ import Ġandroidx . test . espress o . action . View Actions . click Ċ import Ġandroidx . test . espress o . action . View Actions . type Text Ċ import Ġandroidx . test . espress o . assertion . View Assertions . matches Ċ import Ġandroidx . test . espress o . matcher . Root Matchers . with Decor View Ċ import Ġandroidx . test . espress o . matcher . View Matchers .* Ċ import Ġandroidx . test . ext . junit . rules . Activity Scenario Rule Ċ import Ġorg . hamcrest . Core Matchers . not Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġg par ap Ġon Ġ 2 0 2 1 - 0 2 - 2 3 . Ċ Ġ*/ Ċ class ĠMainActivity Instrument ed Test Ġ{ ĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġrule : ĠActivity Scenario Rule < MainActivity > Ġ= ĠActivity Scenario Rule ( MainActivity :: class . java ) ĊĠĠĠ Ġprivate Ġvar Ġroot View : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// get Ġmain Ġactivity Ġdecor Ġview ĊĠĠĠĠĠĠĠ Ġrule . scenario . on Activity Ġ{ Ġactivity Ġ-> Ġroot View Ġ= Ġactivity . window . decor View Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// start Ġmain Ġactivity ĊĠĠĠĠĠĠĠ ĠActivity Scenario . launch ( MainActivity :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Widget Visible _ edit Text Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . edit Text Result )). check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Widget Visible _ button ConvertTo Binary () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button ConvertTo Binary )). check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Widget Visible _ button ConvertTo Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button ConvertTo Text )). check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Widget Visible _ button Clear () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button Clear )). check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Input Empty _ Click _ button ConvertTo Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button Clear )). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button ConvertTo Text )). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . toast _ Empty Input )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. in Root ( with Decor View ( not ( root View ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Input Empty _ Click _ button ConvertTo Binary () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button Clear )). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button ConvertTo Binary )). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . toast _ Empty Input )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. in Root ( with Decor View ( not ( root View ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinput IsNot Binary () Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . edit Text Result )). perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Text (" ! 1 1 0 0 1 1 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Actions . close Soft Keyboard () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġon View ( with Id ( R . id . button ConvertTo Text )). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġon View ( with Text ( R . string . toast _ Wrong Input )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. in Root ( with Decor View ( not ( root View ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. check ( matches ( is Displayed ())) ĊĠĠĠ Ġ} Ċ }