package Ġcom . react nat iven avigation . views Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . spy Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġcom . react nat iven avigation . Base Test Ċ import Ġcom . react nat iven avigation . options . Alignment Ċ import Ġcom . react nat iven avigation . options . params . Colour Ċ import Ġcom . react nat iven avigation . options . params . Theme Colour Ċ import Ġcom . react nat iven avigation . options . params . Null Theme Colour Ċ import Ġcom . react nat iven avigation . views . stack . top bar . title bar . Button Bar Ċ import Ġcom . react nat iven avigation . views . stack . top bar . title bar . DEFAULT _ LEFT _ M ARGIN _ PX Ċ import Ġcom . react nat iven avigation . views . stack . top bar . title bar . Title And Buttons Container Ċ import Ġcom . react nat iven avigation . views . stack . top bar . title bar . Title Sub Title Layout Ċ import Ġorg . assertj . core . api . Assertions Ċ import Ġorg . assertj . core . api . Assertions For Interface Types . assertThat Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito . times Ċ import Ġkotlin . math . round ToInt Ċ import Ġkotlin . test . assertFalse Ċ Ċ private Ġconst Ġval ĠU UT _ WIDTH Ġ= Ġ 1 0 0 0 Ċ private Ġconst Ġval ĠU UT _ HEIGHT Ġ= Ġ 1 0 0 Ċ Ċ class ĠTitle And Buttons Container Test Ġ: ĠBaseTest () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġu ut : ĠTitle And Buttons Container ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠActivity ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Left Bar : ĠButton Bar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Right Bar : ĠButton Bar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Component : ĠView ĊĠĠĠ Ġoverride Ġfun ĠbeforeEach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . before Each () ĊĠĠĠĠĠĠĠ Ġsetup () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock U UT : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirection : ĠInt Ġ= ĠView . LAYOUT _ DIRECTION _ LTR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Height : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Width : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Height : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalignment : ĠAlignment Ġ= ĠAlignment . Default ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġnew Activity () ĊĠĠĠĠĠĠĠ Ġval Ġoriginal U UT Ġ= ĠTitle And Buttons Container ( activity ) ĊĠĠĠĠĠĠĠ Ġu ut Ġ= Ġif Ġ( mock U UT ) Ġspy ( original U UT ) Ġelse Ġoriginal U UT ĊĠĠĠĠĠĠĠ Ġmock Left Bar Ġ= Ġspy ( Button Bar ( activity )) ĊĠĠĠĠĠĠĠ Ġmock Right Bar Ġ= Ġspy ( Button Bar ( activity )) ĊĠĠĠĠĠĠĠ Ġmock Component Ġ= Ġspy ( View ( activity )) ĊĠĠĠĠĠĠĠ Ġval Ġmock Title Subtitle Layout Ġ= Ġspy ( Title Sub Title Layout ( activity )) ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( right Bar Width ). ` when `( mock Right Bar ). meas ured Width ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( left Bar Width ). ` when `( mock Left Bar ). meas ured Width ĊĠĠĠĠĠĠĠ Ġif Ġ( mock U UT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . do Return ( direction ). ` when `( u ut ). layout Direction ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( title Bar Width ). ` when `( mock Title Subtitle Layout ). meas ured Width ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( title Bar Height ). ` when `( mock Title Subtitle Layout ). meas ured Height ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( component Width ). ` when `( mock Component ). meas ured Width ĊĠĠĠĠĠĠĠ ĠMockito . do Return ( component Height ). ` when `( mock Component ). meas ured Height ĊĠĠĠĠĠĠĠ Ġu ut . setTitle Bar Alignment ( alignment ) ĊĠĠĠĠĠĠĠ Ġif Ġ( right Bar Width Ġ> Ġ 0 Ġ|| Ġleft Bar Width Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġu ut . set Button Bars ( mock Left Bar , Ġmock Right Bar ) ĊĠĠĠĠĠĠĠ Ġif Ġ( component Width Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġu ut . set Component ( mock Component , Ġalignment ) ĊĠĠĠĠĠĠĠ Ġu ut . setTitle Subtitle Layout ( mock Title Subtitle Layout ) ĊĊĠĠĠĠĠĠĠ Ġactivity . window . decor View . layout Direction Ġ= Ġdirection ĊĠĠĠĠĠĠĠ Ġactivity . set ContentView ( Frame Layout ( activity ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Direction Ġ= Ġdirection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( u ut , ĠViewGroup . LayoutParams ( U UT _ WIDTH , ĠU UT _ HEIGHT )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animate Left Right Buttons Ġ- Ġshould Ġbe Ġfalse Ġas Ġdefault ` (){ ĊĠĠĠĠĠĠĠ ĠassertFalse ( mock Left Bar . should Animate ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( mock Right Bar . should Animate ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` animate Left Right Buttons Ġ- Ġshould Ġchange Ġcorresponding Ġbutton Ġbar ` (){ ĊĠĠĠĠĠĠĠ Ġsetup ( right Bar Width Ġ= Ġ 1 0 , left Bar Width Ġ= Ġ 2 0 ) ĊĊĠĠĠĠĠĠĠ Ġu ut . animate Left Buttons ( true ) ĊĠĠĠĠĠĠĠ Ġverify ( mock Left Bar ). should Animate = true ĊĊĠĠĠĠĠĠĠ Ġu ut . animate Left Buttons ( false ) ĊĠĠĠĠĠĠĠ Ġverify ( mock Left Bar ). should Animate = false ĊĊĠĠĠĠĠĠĠ Ġu ut . animate Right Buttons ( true ) ĊĠĠĠĠĠĠĠ Ġverify ( mock Right Bar ). should Animate = true ĊĊĠĠĠĠĠĠĠ Ġu ut . animate Right Buttons ( false ) ĊĠĠĠĠĠĠĠ Ġverify ( mock Right Bar ). should Animate = false ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Component Ġ- Ġshould Ġnot Ġchange Ġcomponent Ġid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ). apply Ġ{ Ġid Ġ= Ġ 1 9 Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcomponent 2 Ġ= ĠView ( activity ). apply Ġ{ Ġid Ġ= Ġ 2 9 Ġ} ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . id ). isEqualTo ( 1 9 ) ĊĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . id ). isEqualTo ( 1 9 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component 2 . id ). isEqualTo ( 2 9 ) ĊĊĠĠĠĠĠĠĠ Ġu ut . clear Title () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . id ). isEqualTo ( 1 9 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component 2 . id ). isEqualTo ( 2 9 ) ĊĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . id ). isEqualTo ( 1 9 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component 2 . id ). isEqualTo ( 2 9 ) ĊĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" title ") ĊĠĠĠĠĠĠĠ ĠassertThat ( component . id ). isEqualTo ( 1 9 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component 2 . id ). isEqualTo ( 2 9 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġshould Ġset Ġtitle Ġcomponent Ġcenter Ġvert ically `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Height Ġ= Ġ( U UT _ HEIGHT Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġsetup ( component Width Ġ= Ġ 1 0 0 , Ġcomponent Height Ġ= Ġcomponent Height ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . top ). isEqualTo (( U UT _ HEIGHT Ġ/ Ġ 2 f Ġ- Ġcomponent Height Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . bottom ). isEqualTo (( U UT _ HEIGHT Ġ/ Ġ 2 f Ġ+ Ġcomponent Height Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġset Ġtitle Ġtext Ġshould Ġtake Ġall Ġparent Ġheight `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ( title Bar Width Ġ= Ġ 1 0 0 , Ġtitle Bar Height Ġ= ĠU UT _ HEIGHT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( component . layout Params . height ). isEqualTo ( ViewGroup . LayoutParams . MATCH _ PARENT ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . top ). isEqualTo ( 0 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . bottom ). isEqualTo ( U UT _ HEIGHT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġtitle Ġshould Ġnot Ġoverlap Ġwith Ġtoolbar Ġand Ġhave Ġto Ġre - layout `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 3 Ġ* Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġsetup ( title Bar Width Ġ= Ġtitle Bar Width , Ġtitle Bar Height Ġ= ĠU UT _ HEIGHT , Ġleft Bar Width Ġ= Ġleft Bar Width , Ġright Bar Width Ġ= Ġright Bar Width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo ( U UT _ WIDTH Ġ- Ġright Bar Width Ġ- ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġtitle Ġcomponent Ġshould Ġnot Ġoverlap Ġwith Ġtoolbar Ġand Ġhave Ġto Ġre - layout `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 3 Ġ* Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġsetup ( component Width Ġ= Ġtitle Bar Width , Ġcomponent Height Ġ= ĠU UT _ HEIGHT , Ġleft Bar Width Ġ= Ġleft Bar Width , Ġright Bar Width Ġ= ĊĠĠĠĠĠĠĠ Ġright Bar Width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo ( U UT _ WIDTH Ġ- Ġright Bar Width Ġ- ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġtitle Ġshould Ġbe Ġaligned Ġleft Ġand Ġtake Ġneeded Ġthe Ġwidth Ġ+ Ġmargins Ġwhen Ġno Ġbuttons `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( title Bar Width Ġ= Ġtitle Bar Width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo ( DEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo ( title Bar Width Ġ+ Ġ 2 Ġ* ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` setTitle Ġ- ĠRTL Ġ- Ġshould Ġbe Ġaligned Ġright Ġand Ġtake Ġavailable Ġwidth Ġwhen Ġno Ġbuttons `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( direction Ġ= ĠView . LAYOUT _ DIRECTION _ RTL , Ġtitle Bar Width Ġ= Ġtitle Bar Width ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Component Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( title Component . right ). isEqualTo ( U UT _ WIDTH Ġ- ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( title Component . left ). isEqualTo ( U UT _ WIDTH - ĠDEFAULT _ LEFT _ M ARGIN _ PX - title Bar Width - DEFAULT _ LEFT _ M ARGIN _ PX Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Title Ġ- Ġshould Ġplace Ġtitle Ġbetween Ġthe Ġtool bars `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( left Bar Width Ġ= Ġleft Bar Width , Ġright Bar Width Ġ= Ġright Bar Width , Ġtitle Bar Width Ġ= Ġtitle Bar Width ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Sub Title Layout Ġ= Ġu ut . getTitle Component () Ġas ĠTitle Sub Title Layout ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( title Sub Title Layout . left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( title Sub Title Layout . right ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX Ġ+ Ġtitle Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Title Ġ- Ġshould Ġplace Ġtitle Ġbetween Ġthe Ġtool bars Ġat Ġcenter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width Ġ= Ġleft Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width Ġ= Ġright Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width Ġ= Ġtitle Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). left ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ- Ġtitle Bar Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). right ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ+ Ġtitle Bar Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Title Ġ- Ġcenter Ġshould Ġnot Ġoverlap Ġwith Ġtool bars Ġand Ġbe Ġresized Ġto Ġfit Ġbetween `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ( 0 . 7 5 Ġ* ĠU UT _ WIDTH ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġspace Between Ġ= ĠU UT _ WIDTH Ġ- Ġleft Bar Width Ġ- Ġright Bar Width ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width Ġ= Ġleft Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width Ġ= Ġright Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width Ġ= Ġtitle Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). left ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ- Ġspace Between Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). right ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ+ Ġspace Between Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Title Ġ- Ġleft Ġshould Ġnot Ġoverlap Ġwith Ġtool bars Ġand Ġbe Ġresized Ġto Ġfit Ġbetween `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ( 0 . 7 5 Ġ* ĠU UT _ WIDTH ). round ToInt () ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width Ġ= Ġleft Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width Ġ= Ġright Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width Ġ= Ġtitle Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Default ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). right ). isEqualTo ( U UT _ WIDTH Ġ- Ġright Bar Width Ġ- ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Component Ġ- Ġcenter Ġshould Ġnot Ġoverlap Ġwith Ġtool bars Ġand Ġbe Ġresized Ġto Ġfit Ġbetween `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Width Ġ= Ġ( 0 . 7 5 Ġ* ĠU UT _ WIDTH ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġspace Between Ġ= ĠU UT _ WIDTH Ġ- Ġleft Bar Width Ġ- Ġright Bar Width ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width Ġ= Ġleft Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width Ġ= Ġright Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Width Ġ= Ġcomponent Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). left ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ- Ġspace Between Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). right ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ+ Ġspace Between Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Component Ġ- Ġleft Ġshould Ġnot Ġoverlap Ġwith Ġtool bars Ġand Ġbe Ġresized Ġto Ġfit Ġbetween `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ( U UT _ WIDTH Ġ/ Ġ 4 f ). round ToInt () ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Width Ġ= Ġ( 0 . 7 5 Ġ* ĠU UT _ WIDTH ). round ToInt () ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Bar Width Ġ= Ġleft Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Bar Width Ġ= Ġright Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Width Ġ= Ġcomponent Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Default ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component (). right ). isEqualTo ( U UT _ WIDTH Ġ- Ġright Bar Width Ġ- ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Component Ġ- Ġshould Ġplace Ġtitle Ġbetween Ġthe Ġtool bars `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġleft Bar Width Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġval Ġright Bar Width Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( left Bar Width Ġ= Ġleft Bar Width , Ġright Bar Width Ġ= Ġright Bar Width , Ġtitle Bar Width Ġ= Ġ 0 , Ġcomponent Width Ġ= Ġcomponent Width ) ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo ( left Bar Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX Ġ+ Ġcomponent Width Ġ+ ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġshould Ġplace Ġtitle Ġcomponent Ġbetween Ġthe Ġtool bars Ġat Ġcenter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( left Bar Width Ġ= Ġ 5 0 , Ġright Bar Width Ġ= Ġ 1 0 0 , Ġcomponent Width Ġ= Ġcomponent Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center ) ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ- Ġcomponent Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ+ Ġcomponent Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Layout Ġ- Ġshould Ġmeasure Ġand Ġlayout Ġchildren Ġwhen Ġalignment Ġchanges `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Bar Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width Ġ= Ġtitle Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Center ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ- Ġtitle Bar Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo (( U UT _ WIDTH Ġ/ Ġ 2 f Ġ+ Ġtitle Bar Width Ġ/ Ġ 2 f ). round ToInt ()) ĊĊĠĠĠĠĠĠĠ Ġsetup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Bar Width Ġ= Ġtitle Bar Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalignment Ġ= ĠAlignment . Fill ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcomponent Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . left ). isEqualTo ( DEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . right ). isEqualTo ( title Bar Width Ġ+ Ġ 2 Ġ* ĠDEFAULT _ LEFT _ M ARGIN _ PX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` set Component Ġ- Ġshould Ġset Ġdynamic Ġwidth - height `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ). apply Ġ{ Ġid Ġ= Ġ 1 9 Ġ} ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( component . layout Params . width ). isEqualTo ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ ĠassertThat ( component . layout Params . height ). isEqualTo ( ViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Component _ should Change Different Components () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ( mock U UT Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ). apply Ġ{ Ġid Ġ= Ġ 1 9 Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcomponent 2 Ġ= ĠView ( activity ). apply Ġ{ Ġid Ġ= Ġ 2 9 Ġ} ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Component Ġ= Ġu ut . getTitle Component () ĊĠĠĠĠĠĠĠ ĠassertThat ( title Component ). isEqualTo ( component ) ĊĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component 2 , ĠAlignment . Fill ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . findViewById < View ? >( component . id )). isNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . findViewById < View ? >( component 2 . id )). isEqualTo ( component 2 ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Component _ should Re setText Title When Setting Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ( mock U UT Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" Title ") ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEqualTo (" Title ") ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ) ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isNull OrEmpty () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Component _ does Nothing If Component Is Already Added () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ( component Width Ġ= Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getComponent ()). isNotNull () ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( mock Component ) ĊĠĠĠĠĠĠĠ Ġidle Main Looper () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getComponent ()?. id ). isEqualTo ( mock Component . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠsetTitle _ should Change The Title () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" Title ") ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEqualTo (" Title ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠsetTitle _ should Reset Title Component When Setting Text Title () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup ( mock U UT Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ) ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isNull OrEmpty () ĊĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" Title ") ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEqualTo (" Title ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Sub Title _ text ShouldBe Aligned At Start Center Vertical () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . set Subtitle (" Subtitle ") ĊĠĠĠĠĠĠĠ Ġval Ġpassed View Ġ= Ġu ut . getTitle Subtitle Bar () ĊĠĠĠĠĠĠĠ ĠassertThat ( passed View . visibility ). isEqualTo ( View . VISIBLE ) ĊĠĠĠĠĠĠĠ ĠassertThat ( passed View . getSub Title Txt View (). text ). isEqualTo (" Subtitle ") ĊĠĠĠĠĠĠĠ ĠassertThat (( passed View . getSub Title Txt View (). layout Params Ġas ĠLinearLayout . LayoutParams ). gravity ). isEqualTo ( Gravity . START Ġor ĠGr avity . CENTER _ VERTICAL ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset BackgroundColor _ changes Title Bar Bg Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut Ġ= ĠMockito . spy ( u ut ) ĊĠĠĠĠĠĠĠ Ġu ut . set BackgroundColor ( Null Theme Colour ()) ĊĠĠĠĠĠĠĠ Ġverify ( u ut , Ġtimes ( 0 )). set BackgroundColor ( Color . GRAY ) ĊĠĠĠĠĠĠĠ Ġu ut . set BackgroundColor ( Theme Colour ( Colour ( Color . GRAY ))) ĊĠĠĠĠĠĠĠ Ġverify ( u ut , Ġtimes ( 1 )). set BackgroundColor ( Color . GRAY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠsetTitle FontSize _ changes Title FontSize () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . setTitle FontSize ( 1 f ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( getTitle Subtitle View (). getTitle Txt View (). text Size ). isEqualTo ( 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Sub Title FontSize _ changes Title FontSize () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . set Subtitle FontSize ( 1 f ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertThat ( getTitle Subtitle View (). getSub Title Txt View (). text Size ). isEqualTo ( 1 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠsetTitle Color _ changes Title Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . setTitle Color ( Color . YELLOW ) ĊĠĠĠĠĠĠĠ ĠassertThat ( getTitle Subtitle View (). getTitle Txt View (). current TextColor ). isEqualTo ( Color . YELLOW ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Sub Title Color _ changes Title Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . set Subtitle Color ( Color . YELLOW ) ĊĠĠĠĠĠĠĠ ĠassertThat ( getTitle Subtitle View (). getSub Title Txt View (). current TextColor ). isEqualTo ( Color . YELLOW ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Title _ return Current Text In Title TextView () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEmpty () ĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" Ti T le ") ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEqualTo (" Ti T le ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġclear Current Title _ should Cle at Text And Remove Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġu ut . setTitle (" Title ") ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isEqualTo (" Title ") ĊĠĠĠĠĠĠĠ Ġu ut . clear Title () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle ()). isNull OrEmpty () ĊĊĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠView ( activity ) ĊĠĠĠĠĠĠĠ Ġu ut . set Component ( component ) ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component ()). isEqualTo ( component ) ĊĊĠĠĠĠĠĠĠ Ġu ut . clear Title () ĊĠĠĠĠĠĠĠ ĠassertThat ( u ut . getTitle Component ()). isNot EqualTo ( component ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Title Subtitle View () Ġ= Ġ( u ut . getTitle Component () Ġas ĠTitle Sub Title Layout ) Ċ }