package Ġreactive circ us . flow binding . android . view Ċ Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . test . filters . Large Test Ċ import Ġandroidx . test . internal . runner . junit 4 . statement . Ui Thread Statement . run On Ui Thread Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . junit . Test Ċ import Ġreactive circ us . blueprint . testing . action . click View Ċ import Ġreactive circ us . flow binding . android . fixtures . view . Android View Fragment Ċ import Ġreactive circ us . flow binding . android . test . R Ċ import Ġreactive circ us . flow binding . testing . Flow Recorder Ċ import Ġreactive circ us . flow binding . testing . launch Test Ċ import Ġreactive circ us . flow binding . testing . record With Ċ Ċ @ Large Test Ċ class ĠView Focus Changed Flow Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġview Focus Changes () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Test < Android View Fragment > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecorder Ġ= ĠFlow Recorder < Boolean >( test Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= Ġget ViewById < EditText >( R . id . edit Text 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . focus Changes (). record With ( recorder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick View ( R . id . edit Text 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick View ( R . id . edit Text 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Test Scope () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick View ( R . id . edit Text 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġview Focus Changes _ program matic () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Test < Android View Fragment > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecorder Ġ= ĠFlow Recorder < Boolean >( test Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text 1 Ġ= Ġget ViewById < EditText >( R . id . edit Text 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text 2 Ġ= Ġget ViewById < EditText >( R . id . edit Text 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text 1 . focus Changes (). record With ( recorder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġedit Text 1 . request Focus () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġedit Text 2 . request Focus () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Test Scope () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġedit Text 1 . request Focus () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġview Focus Changes _ emit Immediate ly () Ġ{ ĊĠĠĠĠĠĠĠ Ġlaunch Test < Android View Fragment > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecorder Ġ= ĠFlow Recorder < Boolean >( test Scope ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= Ġget ViewById < EditText >( R . id . edit Text 1 ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġrequest Focus () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . focus Changes ( emit Immediate ly Ġ= Ġtrue ). record With ( recorder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick View ( R . id . edit Text 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . take Value () Ġshould Equal Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Test Scope () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick View ( R . id . edit Text 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecorder . assert No More Values () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ