package Ġcom . example . android . architecture . blueprint s . todo app . test . chapter 8 Ċ Ċ import Ġandroid . support . test . Instrumentation Registry Ċ import Ġandroid . support . test . rule . Activity Test Rule Ċ import Ġandroid . support . test . runner . Android JUnit 4 Ċ import Ġandroid . support . test . uia utom ator . Ui Device Ċ import Ġandroid . support . test . uia utom ator . Ui Selector Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . example . android . architecture . blueprint s . todo app . tasks . Tasks Activity Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ /** Ċ Ġ* ĠContains Ġtests Ġthat Ġuse Ġ[ Ui Selector ] Ġselectors Ġfor Ġelements Ġlocation . Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠUi Autom ator Ui Selector Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġinstrument ation Ġ= ĠInstrument ation Registry . get Instrumentation () ĊĠĠĠ Ġprivate Ġval Ġui Device : ĠUi Device Ġ= ĠUi Device . getInstance ( instrumentation ) ĊĠĠĠ Ġprivate Ġval Ġfour Seconds Timeout Ġ= Ġ 4 0 0 0 L ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġactivity Test Rule Ġ= ĠActivity Test Rule ( Tasks Activity :: class . java ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġtwo ĠTo - Do Ġitems , Ġmarks Ġfirst Ġas Ġdone Ġand Ġverifies Ġits Ġtext . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġui Selector Sample () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġfirst ĠTo - Do Ġitem . ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ add _ task ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / add _ task _ title ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text Ġ= Ġ" item Ġ 1 " ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ edit _ task _ done ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). text (" TO - DO Ġsaved ")). wait Until G one ( four Seconds Timeout ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġsecond ĠTo - Do Ġitem . ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ add _ task ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / add _ task _ title ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text Ġ= Ġ" item Ġ 2 " ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ edit _ task _ done ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). text (" TO - DO Ġsaved ")). wait Until G one ( four Seconds Timeout ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMark Ġfirst ĠTo - Do Ġitem Ġas Ġdone , Ġclick Ġon Ġit Ġand Ġvalidate Ġtext . ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). className ( RecyclerView :: class . java . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child Selector ( Ui Selector (). check able ( true ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġui Device . find Object ( Ui Selector (). className ( RecyclerView :: class . java . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child Selector ( Ui Selector (). className ( LinearLayout :: class . java )). instance ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click () ĊĠĠĠĠĠĠĠ Ġval Ġdetail View Title Ġ= Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / task _ detail _ title ")) ĊĠĠĠĠĠĠĠ ĠassertTrue (" To - Do Ġ\" item Ġ 1 \" Ġis Ġnot Ġshown .", Ġdetail View Title . exists ()) ĊĠĠĠĠĠĠĠ ĠassertTrue (" To - Do Ġ\" item Ġ 1 \" Ġis Ġnot Ġshown .", Ġdetail View Title . text . equals (" item Ġ 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShows Ġhow Ġui Selector Sample () Ġtest Ġcan Ġbe Ġsimplified ĊĠĠĠĠ Ġ* Ġby Ġdeclaring ĠUi Object Ġelements Ġin Ġadvance . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġui Selector Sample Simpl ified () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠDeclare ĠUi Object Ġinstances Ġthat Ġwill Ġbe Ġused Ġlater Ġin Ġtest . ĊĠĠĠĠĠĠĠ Ġval Ġfab Add Task Ġ= Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ add _ task ")) ĊĠĠĠĠĠĠĠ Ġval Ġtask Title Ġ= Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / add _ task _ title ")) ĊĠĠĠĠĠĠĠ Ġval Ġfab Done Ġ= Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / fab _ edit _ task _ done ")) ĊĠĠĠĠĠĠĠ Ġval Ġtodo Saved Text Ġ= Ġui Device . find Object ( Ui Selector (). text (" TO - DO Ġsaved ")) ĊĠĠĠĠĠĠĠ Ġval Ġtask Details Title Ġ= Ġui Device . find Object ( Ui Selector (). resourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . example . android . architecture . blueprint s . todo app . mock : id / task _ detail _ title ")) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Todo Checkbox Ġ= Ġui Device . find Object ( Ui Selector () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. className ( RecyclerView :: class . java . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child Selector ( Ui Selector (). check able ( true )). instance ( 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Todo Item Ġ= Ġui Device . find Object ( Ui Selector (). className ( RecyclerView :: class . java . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child Selector ( Ui Selector (). className ( LinearLayout :: class . java )). instance ( 0 )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġfirst ĠTo - Do Ġitem . ĊĠĠĠĠĠĠĠ Ġfab Add Task . click () ĊĠĠĠĠĠĠĠ Ġtask Title . text Ġ= Ġ" item Ġ 1 " ĊĠĠĠĠĠĠĠ Ġfab Done . click () ĊĠĠĠĠĠĠĠ Ġtodo Saved Text . wait Until G one ( four Seconds Timeout ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġsecond ĠTo - Do Ġitem . ĊĠĠĠĠĠĠĠ Ġfab Add Task . click () ĊĠĠĠĠĠĠĠ Ġtask Title . text Ġ= Ġ" item Ġ 2 " ĊĠĠĠĠĠĠĠ Ġfab Done . click () ĊĠĠĠĠĠĠĠ Ġtodo Saved Text . wait Until G one ( four Seconds Timeout ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMark Ġfirst ĠTo - Do Ġitem Ġas Ġdone , Ġclick Ġon Ġit Ġand Ġvalidate Ġtext . ĊĠĠĠĠĠĠĠ Ġfirst Todo Checkbox . click () ĊĠĠĠĠĠĠĠ Ġfirst Todo Item . click () ĊĠĠĠĠĠĠĠ ĠassertTrue (" To - Do Ġ\" item Ġ 1 \" Ġis Ġnot Ġshown .", Ġtask Details Title . exists ()) ĊĠĠĠĠĠĠĠ ĠassertTrue (" To - Do Ġ\" item Ġ 1 \" Ġtitle Ġwas Ġwrong .", Ġtask Details Title . text . equals (" item Ġ 1 ")) ĊĠĠĠ Ġ} Ċ } Ċ