package Ġcom . github . sat osh un . coroutine binding . widget Ċ Ċ import Ġandroid . widget . Toolbar Ċ import Ġandroidx . test . annotation . Ui Thread Test Ċ import Ġandroidx . test . espress o . Esp ress o . on View Ċ import Ġandroidx . test . espress o . action . View Actions . click Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Content Description Ċ import Ġcom . github . sat osh un . coroutine binding . Android Test Ċ import Ġcom . github . sat osh un . coroutine binding . View Activity Ċ import Ġcom . github . sat osh un . coroutine binding . isEqualTo Ċ import Ġcom . github . sat osh un . coroutine binding . isNotNull Ċ import Ġcom . github . sat osh un . coroutine binding . isNull Ċ import Ġcom . github . sat osh un . coroutine binding . isTrue Ċ import Ġcom . github . sat osh un . coroutine binding . join And Is Completed Ċ import Ġcom . github . sat osh un . coroutine binding . test Run Blocking Ċ import Ġcom . github . sat osh un . coroutine binding . toBe Cancel Launch Ċ import Ġcom . github . sat osh un . coroutine binding . ui Launch Ċ import Ġcom . github . sat osh un . coroutine binding . ui Run Blocking Ċ import Ġorg . junit . Ass ume . assume True Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ private Ġconst Ġval ĠNAV IG ATION _ CONTENT _ DESCRIPTION Ġ= Ġ" test " Ċ Ċ class ĠCor outine Toolbar Test Ġ: ĠAndroid Test < View Activity >( View Activity :: class . java ) Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĊĠ Ġ@ Before Ġ@ Ui Thread Test ĊĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠ Ġassume True ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) ĊĠĠĠ Ġtoolbar Ġ= ĠToolbar ( rule . activity ) ĊĠĠĠ Ġtoolbar . navigation Content Description Ġ= ĠNAV IG ATION _ CONTENT _ DESCRIPTION ĊĠĠĠ Ġtoolbar . set Navigation Icon ( android . R . drawable . sym _ def _ app _ icon ) ĊĠĠĠ Ġrule . activity . view . addView ( toolbar ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġitem Click s () Ġ= Ġtest Run Blocking Ġ{ ĊĠĠĠ Ġval Ġ( menu , Ġitem 1 , Ġitem 2 ) Ġ= Ġui Run Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġmenu Ġ= Ġtoolbar . menu ĊĠĠĠĠĠ Ġval Ġitem 1 Ġ= Ġmenu . add ( 0 , Ġ 1 , Ġ 0 , Ġ" Hi ") ĊĠĠĠĠĠ Ġval Ġitem 2 Ġ= Ġmenu . add ( 0 , Ġ 2 , Ġ 0 , Ġ" H ey ") ĊĠĠĠĠĠ ĠTrip le ( menu , Ġitem 1 , Ġitem 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġitem Click s Ġ= Ġtoolbar . item Click s ( 1 ) ĊĊĠĠĠ Ġmenu . perform Identifier Action ( 2 , Ġ 0 ) ĊĠĠĠ Ġitem Click s . receive (). isEqualTo ( item 2 ) ĊĊĠĠĠ Ġmenu . perform Identifier Action ( 1 , Ġ 0 ) ĊĠĠĠ Ġitem Click s . receive (). isEqualTo ( item 1 ) ĊĊĠĠĠ Ġitem Click s . cancel () ĊĠĠĠ Ġmenu . perform Identifier Action ( 2 , Ġ 0 ) ĊĠĠĠ Ġitem Click s . receive OrNull (). isNull () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġawait Item Click () Ġ= Ġtest Run Blocking Ġ{ ĊĠĠĠ Ġval Ġ( menu , Ġitem 1 , Ġitem 2 ) Ġ= Ġui Run Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġmenu Ġ= Ġtoolbar . menu ĊĠĠĠĠĠ Ġval Ġitem 1 Ġ= Ġmenu . add ( 0 , Ġ 1 , Ġ 0 , Ġ" Hi ") ĊĠĠĠĠĠ Ġval Ġitem 2 Ġ= Ġmenu . add ( 0 , Ġ 2 , Ġ 0 , Ġ" H ey ") ĊĠĠĠĠĠ ĠTrip le ( menu , Ġitem 1 , Ġitem 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġjob Ġ= Ġui Launch Ġ{ Ġtoolbar . await Item Click (). isEqualTo ( item 2 ) Ġ} ĊĠĠĠ Ġui Launch Ġ{ Ġmenu . perform Identifier Action ( 2 , Ġ 0 ) Ġ} ĊĠĠĠ Ġjob . join And Is Completed () ĊĊĠĠĠ Ġval Ġcancel Job Ġ= Ġto Be Cancel Launch Ġ{ Ġtoolbar . await Item Click () Ġ} ĊĠĠĠ Ġmenu . perform Identifier Action ( 2 , Ġ 0 ) ĊĠĠĠ Ġcancel Job . is Cancelled . isTrue () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġnavigation Click s () Ġ= Ġtest Run Blocking Ġ{ ĊĠĠĠ Ġval Ġnavigation Click s Ġ= Ġui Run Blocking Ġ{ Ġtoolbar . navigation Click s ( 1 ) Ġ} ĊĊĠĠĠ Ġon View ( with Content Description ( NAV IG ATION _ CONTENT _ DESCRIPTION )) ĊĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġnavigation Click s . receive OrNull (). isNotNull () ĊĊĠĠĠ Ġnavigation Click s . cancel () ĊĠĠĠ Ġon View ( with Content Description ( NAV IG ATION _ CONTENT _ DESCRIPTION )) ĊĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġnavigation Click s . receive OrNull (). isNull () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġawait Navigation Click () Ġ= Ġtest Run Blocking Ġ{ ĊĠĠĠ Ġval Ġnavigation Click s Ġ= Ġui Launch Ġ{ ĊĠĠĠĠĠ Ġtoolbar . await Navigation Click () ĊĠĠĠ Ġ} ĊĠĠĠ Ġon View ( with Content Description ( NAV IG ATION _ CONTENT _ DESCRIPTION )) ĊĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġnavigation Click s . join And Is Completed () ĊĊĠĠĠ Ġval Ġcancel Job Ġ= Ġto Be Cancel Launch Ġ{ ĊĠĠĠĠĠ Ġtoolbar . await Navigation Click () ĊĠĠĠ Ġ} ĊĠĠĠ Ġcancel Job . cancel () ĊĠĠĠ Ġon View ( with Content Description ( NAV IG ATION _ CONTENT _ DESCRIPTION )) ĊĠĠĠĠĠĠĠ Ġ. perform ( click ()) ĊĠĠĠ Ġcancel Job . is Cancelled . isTrue () ĊĠ Ġ} Ċ } Ċ