/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . example . android x . view pager 2 Ċ Ċ 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 . isNot Checked Ċ import Ġandroidx . test . espress o . matcher . View Matchers . with Id Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 . OR IENTATION _ HORIZONTAL Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 . OR IENTATION _ VERTICAL Ċ import Ġcom . example . android x . view pager 2 . test . Animation Verifier Ċ import Ġorg . hamcrest . Core Matchers . all Of Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ /** Ċ Ġ* ĠGeneric Ġtest Ġclass Ġfor Ġtesting Ġ[ Base Card Activity ] s . ĠFor Ġeach Ġcombination Ġof Ġorientation , Ġrotation Ċ Ġ* Ġanimation , Ġtranslation Ġanimation Ġand Ġscale Ġanimation , Ġsw ip es Ġfrom Ġthe Ġfirst Ġto Ġthe Ġsecond Ġpage Ċ Ġ* Ġand Ġverifies Ġif Ġthe Ġexpected Ġpages Ġare Ġshown Ġand Ġif Ġthe Ġexpected Ġanimation Ġwas Ġperformed . Ċ Ġ* ĠImplement ations Ġsimply Ġdefine Ġthe ĠActivity Ġunder Ġtest , Ġsee Ġ[ ViewPager View Test ] Ġand Ċ Ġ* Ġ[ ViewPager Fragment Test ]. Ċ Ġ*/ Ċ abstract Ġclass ĠView Pager Base Test < T Ġ: ĠBase Card Activity >( ĊĠĠĠ Ġclazz : ĠClass < T >, ĊĠĠĠ Ġprivate Ġval Ġconfig : ĠTest Config Ċ ) Ġ: ĠBaseTest < T >( clazz ) Ġ{ ĊĠĠĠ Ġdata Ġclass ĠTest Config ( ĊĠĠĠĠĠĠĠ Ġ@ ViewPager 2 . Orientation Ġval Ġorientation : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġanimate Rotate : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġanimate Translate : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġanimate Scale : ĠBoolean ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ( name Ġ= Ġ"{ 0 }") ĊĠĠĠĠĠĠĠ Ġfun Ġspec (): ĠList < Test Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( OR IENTATION _ HORIZONTAL , ĠOR IENTATION _ VERTICAL ). flatMap Ġ{ Ġorientation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( false , Ġtrue ). flatMap Ġ{ Ġrotate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( false , Ġtrue ). flatMap Ġ{ Ġtranslate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( false , Ġtrue ). map Ġ{ Ġscale Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Config ( orientation , Ġrotate , Ġtranslate , Ġscale ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id Ġget () Ġ= ĠR . id . view _ pager ĊĊĠĠĠ Ġprivate Ġval Ġtwo Of Sp ades Ġ= Ġ" 2 \ n âĻ £ " ĊĠĠĠ Ġprivate Ġval Ġthree Of Sp ades Ġ= Ġ" 3 \ n âĻ £ " ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĠĠĠĠĠĠĠ Ġselect Orientation ( config . orientation ) ĊĠĠĠĠĠĠĠ Ġif Ġ( config . animate Rotate ) Ġcheck ( R . id . rotate _ checkbox ) ĊĠĠĠĠĠĠĠ Ġif Ġ( config . animate Translate ) Ġcheck ( R . id . translate _ checkbox ) ĊĠĠĠĠĠĠĠ Ġif Ġ( config . animate Scale ) Ġcheck ( R . id . scale _ checkbox ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Swipe () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanimation Verifier Ġ= ĠAnimation Verifier ( view Pager ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSw ipe Ġto Ġpage Ġ 2 ĊĠĠĠĠĠĠĠ Ġanimation Verifier . reset () ĊĠĠĠĠĠĠĠ Ġswipe To Next Page () ĊĠĠĠĠĠĠĠ Ġanimation Verifier . verify () ĊĠĠĠĠĠĠĠ Ġverify Current Page ( three Of Sp ades ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSw ipe Ġback Ġto Ġpage Ġ 1 ĊĠĠĠĠĠĠĠ Ġanimation Verifier . reset () ĊĠĠĠĠĠĠĠ Ġswipe To Previous Page () ĊĠĠĠĠĠĠĠ Ġanimation Verifier . verify () ĊĠĠĠĠĠĠĠ Ġverify Current Page ( two Of Sp ades ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon View ( all Of ( with Id ( id ), Ġis Not Checked ())). perform ( click ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAnimation Verifier . verify () Ġ{ ĊĠĠĠĠĠĠĠ Ġawait Animation () ĊĠĠĠĠĠĠĠ Ġverify ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Rotation Ġ= Ġconfig . animate Rotate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Translation Ġ= Ġconfig . animate Translate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Scale Ġ= Ġconfig . animate Scale ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ