package Ġcom . example . android . data from internet Ċ Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . android . data from internet . utilities . Network Utils Ċ import Ġjunit . framework . Assert .* Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . Runtime Environment Ċ import Ġorg . ro bo lectric . Shadow s . shadow Of Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠMainActivity Tests Ġ{ ĊĠĠĠ Ġval Ġactivity Ġ= ĠRo bo lectric . setup Activity ( MainActivity :: class . java ) !! ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Box Has Hint Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch Box EditText Ġ= Ġactivity . findViewById ( R . id . et _ search _ box ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRuntime Environment . application ĊĠĠĠĠĠĠĠ ĠassertEquals ( search Box EditText . hint , Ġcontext . getString ( R . string . query _ hint )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġurl Display Has Default Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Display TextView Ġ= Ġactivity . findViewById ( R . id . tv _ url _ display ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRuntime Environment . application ĊĠĠĠĠĠĠĠ ĠassertEquals ( url Display TextView . text , Ġcontext . getString ( R . string . url _ display )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Result Has Default Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch Result TextView Ġ= Ġactivity . findViewById ( R . id . tv _ github _ search _ results _ json ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRuntime Environment . application ĊĠĠĠĠĠĠĠ ĠassertEquals ( search Result TextView . text , Ġcontext . getString ( R . string . query _ prompt )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠonCreate Menu Option Returns True () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġshadow Of ( activity ). options Menu ĊĠĠĠĠĠĠĠ ĠassertEquals ( menu . size (), Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġon Menu Option Item Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch MenuItem Ġ= Ġshadow Of ( activity ). options Menu . find Item ( R . id . action _ search ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( search MenuItem . isVisible , Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( activity . on Options ItemSelected ( search MenuItem ), Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( activity . on Options ItemSelected ( null ), Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġurl Display TextView IsSet When Search Is Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Search Box () ĊĊĠĠĠĠĠĠĠ Ġval Ġsearch MenuItem Ġ= Ġshadow Of ( activity ). options Menu . find Item ( R . id . action _ search ) ĊĠĠĠĠĠĠĠ Ġactivity . on Options ItemSelected ( search MenuItem ) ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Display TextView Ġ= Ġactivity . findViewById ( R . id . tv _ url _ display ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ ĠassertEquals ( url Display TextView . text , ĠNetwork Utils . build Url (" android "). toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsearch Results TextView IsSet When Search Button Is Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Search Box () ĊĊĠĠĠĠĠĠĠ Ġval Ġcondition Ġ= Ġ" this Ġis Ġthe Ġresponse Ġfrom Ġurl " ĊĠĠĠĠĠĠĠ Ġactivity . getResponse From Http Url Ġ= Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcondition ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsearch MenuItem Ġ= Ġshadow Of ( activity ). options Menu . find Item ( R . id . action _ search ) ĊĠĠĠĠĠĠĠ Ġactivity . on Options ItemSelected ( search MenuItem ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsearch Results TextView Ġ= Ġactivity . findViewById ( R . id . tv _ github _ search _ results _ json ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ ĠassertTrue ( search Results TextView . is Shown ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( search Results TextView . text , Ġcondition ) ĊĊĠĠĠĠĠĠĠ Ġval Ġerror TextView Ġ= Ġactivity . findViewById ( R . id . tv _ error _ message _ display ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ ĠassertFalse ( error TextView . is Shown ) ĊĊĠĠĠĠĠĠĠ Ġactivity . getResponse From Http Url Ġ= Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactivity . on Options ItemSelected ( search MenuItem ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( search Results TextView . is Shown ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠRuntime Environment . application ĊĠĠĠĠĠĠĠ ĠassertTrue ( error TextView . is Shown ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( error TextView . text , Ġcontext . getString ( R . string . error _ message )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġloading Indicator Toggle s () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Search Box () ĊĊĠĠĠĠĠĠĠ Ġval ĠprogressBar Ġ= Ġactivity . findViewById ( R . id . pb _ loading _ indicator ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( progress Bar . is Shown ) ĊĊĠĠĠĠĠĠĠ Ġactivity . getResponse From Http Url Ġ= Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( progress Bar . is Shown ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsearch MenuItem Ġ= Ġshadow Of ( activity ). options Menu . find Item ( R . id . action _ search ) ĊĠĠĠĠĠĠĠ Ġactivity . on Options ItemSelected ( search MenuItem ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( progress Bar . is Shown ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Search Box () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" android " ĊĠĠĠĠĠĠĠ Ġval Ġsearch Box EditText Ġ= Ġactivity . findViewById ( R . id . et _ search _ box ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġsearch Box EditText . setText ( query ) ĊĠĠĠ Ġ} Ċ } Ċ