/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 2 0 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* Ġ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 . here . ms dk ui app . espress o . impl . views . route planner . user actions Ċ Ċ import Ġandroidx . test . espress o . action . View Actions .* Ċ import Ġandroidx . test . espress o . assertion . View Assertions . matches Ċ import Ġandroidx . test . espress o . contrib . RecyclerView Actions Ċ import Ġandroidx . test . espress o . matcher . View Matchers . is Displayed Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . here . ms dk ui app . espress o . impl . core . Core Actions Ċ import Ġcom . here . ms dk ui app . espress o . impl . core . Core Matchers Ċ import Ġcom . here . ms dk ui app . espress o . impl . core . Core Matchers . waitFor Condition Ċ import Ġcom . here . ms dk ui app . espress o . impl . core . Core View . on Root View Ċ import Ġcom . here . ms dk ui app . espress o . impl . testdata . Routing TestData . Transport Type Ċ import Ġcom . here . ms dk ui app . espress o . impl . testdata . Routing TestData . Waypoint Item Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . map . user actions . Map Actions Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route . matchers . Route Matchers Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route . utils . Route Data Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . matchers . Route Planner Bar Matchers Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . matchers . Route Planner Matchers Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . matchers . Route Planner Options Matchers Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner Bar View . on Planner Bar Choose Waypoint Title Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on DatePicker Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Ok Button Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Option Panel Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Planner Transport Panel Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Planner Transport Panel View Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Planner Waypoint List Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Planner Waypoint Location Label Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Time Picker Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . screens . Route Planner View . on Travel Time Panel Ċ import Ġcom . here . ms dk ui app . espress o . impl . views . route planner . utils . Waypoint Data Ċ Ċ /** Ċ Ġ* Ġ ĠRoute Ġpl anner Ġpanel Ġactions Ċ Ġ*/ Ċ object ĠRoute Planner Actions Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect Ġway point Ġby Ġgiven Ġgeo Ġcoordinates Ġitem Ġon Ġroute Ġpl anner Ġand Ġon Ġmap ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġselect Waypoint ( waypoint Data : ĠWay point Data ): ĠWay point Data Ġ{ ĊĠĠĠĠĠĠĠ Ġway point Data . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġcurrent Ġway point Ġlocation Ġinformation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġway point Ġ= ĠCore Matchers . getText ( on Planner Waypoint Location Label ( waypoint Item )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSelect Ġand Ġcheck Ġthat Ġway point Ġitem Ġon Ġroute Ġpl anner Ġselected Ġand Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Planner Actions . tap Waypoint On Planner ( waypoint Item ). check Waypoint Location Label ( waypoint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSelect Ġthe Ġfirst Ġway point Ġon Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMap Actions . waitFor MapView Enabled (). tap ( waypoint Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠT ap Ġon Ġtick Ġto Ġconfirm Ġthe Ġfirst Ġway point Ġselection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġway point Data . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġway point Ġ= ĠRoute Planner Bar Actions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Location Not Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Right Image Icon Check () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tap On Tick Button () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġway point Ġitem Ġ& Ġroute Ġinformation Ġlist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Route Information ( waypoint Data : ĠWay point Data , Ġroute Data : ĠRoute Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġway point Ġroute Ġpl anner Ġitem ĊĠĠĠĠĠĠĠ Ġval Ġway point Ġ= Ġselect Waypoint ( waypoint Data ) ĊĠĠĠĠĠĠĠ Ġ// ĠExpand Ġroute Ġpl anner Ġpanel Ġto Ġupdate Ġway points ĊĠĠĠĠĠĠĠ ĠRoute Planner Bar Actions . waitFor Right Image Icon Expand () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. tap On Right Arrow Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Route Planner Expanded () ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġroute Ġdata Ġupdated Ġin Ġroute Ġlist ĊĠĠĠĠĠĠĠ ĠRoute Matchers . with Updated Route Data ( route Data ) ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġlocation Ġof Ġthe Ġway point Ġitem Ġis Ġcorrespond Ġto Ġselected Ġon Ġmap Ġview ĊĠĠĠĠĠĠĠ ĠRoute Planner Matchers . check Waypoint Location Label ( waypoint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ap Ġon Ġway point Ġitem Ġon Ġroute Ġpl anner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtap Waypoint On Planner ( waypoint Item : ĠWay point Item ): ĠRoute Planner Bar Matchers Ġ{ ĊĠĠĠĠĠĠĠ Ġway point Item . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠT ap Ġon Ġway point Ġitem Ġon ĠRoute Ġpl anner Ġif Ġdisplayed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Planner Waypoint List . check ( matches ( is Displayed ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( RecyclerView Actions . action On Item At Position < RecyclerView . ViewHolder >( index , Ġclick ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġchoose Ġway point Ġtext Ġis Ġdisplayed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Planner Bar Choose Waypoint Title . check ( matches ( is Displayed ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠRoute Planner Bar Matchers ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ap Ġon Ġtravel Ġtime Ġpane Ġto Ġopen Ġdate Ġpicker ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtap On Travel Time Panel (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Travel Time Panel . check ( matches ( is Displayed ())). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ap Ġon Ġdate Ġpicker Ġ' OK ' Ġbutton ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtap OK Button (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Ok Button . check ( matches ( is Displayed ())). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSelect Ġtransport ation Ġmode Ġtype Ġon Ġroute Ġpl anner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġselect Transport Mode ( transport Type : ĠTransport Type ): ĠRoute Planner Bar Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġtap On Transport Mode ( transport Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wait Transport Mode Selected ( transport Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check Trans Mode Selected ( transport Type ) ĊĠĠĠĠĠĠĠ Ġreturn ĠRoute Planner Bar Actions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOpen ĠOptions Ġpanel Ġon Ġroute Ġpl anner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġopen Options Panel (): ĠRoute Planner Options Matchers Ġ{ ĊĠĠĠĠĠĠĠ Ġtap On Option Image Icon () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Options Displayed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. check Options Displayed () ĊĠĠĠĠĠĠĠ Ġreturn ĠRoute Planner Options Matchers ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġand ĠScroll ĠUp Ġ& ĠDown Ġway points Ġlist Ġon Ġroute Ġpl anner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġscroll Up And Down Way points List ( waypoint Data : ĠWay point Data ): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSw ipe Ġup Ġway point Ġlist Ġin Ġcase Ġway point Ġitem Ġis Ġnot Ġvisible ĊĠĠĠĠĠĠĠ Ġif Ġ(! Route Planner Matchers . isVisible Waypoint ( waypoint Data )) Ġswipe Up Way points List () ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġway point Ġitem Ġbecame Ġvisible Ġafter Ġsw ip ing ĊĠĠĠĠĠĠĠ ĠRoute Planner Matchers . check Waypoint Location Label ( waypoint Data ) ĊĠĠĠĠĠĠĠ Ġ// ĠSw ipe Ġdown Ġway point Ġlist Ġin Ġcase Ġway point Ġitem Ġis Ġnot Ġvisible ĊĠĠĠĠĠĠĠ Ġif Ġ(! Route Planner Matchers . isVisible Waypoint ( Waypoint Data ())) Ġswipe Down Way points List () ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġway point Ġitem Ġbecame Ġvisible Ġafter Ġsw ip ing ĊĠĠĠĠĠĠĠ ĠRoute Planner Matchers . check Waypoint Location Label ( Waypoint Data ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDrag Ġone Ġway point Ġto Ġanother Ġin Ġway points Ġlist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdrag Waypoint ( from : ĠWay point Item , Ġto : ĠWay point Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġn Ġ= Ġto . index Ġ- Ġfrom . index ĊĠĠĠĠĠĠĠ Ġif Ġ( n Ġ< Ġ 0 ) Ġn -- Ġelse Ġn ++ ĊĠĠĠĠĠĠĠ ĠRoute Planner View . on Planner Waypoint Re order ( from ). perform ( Core Actions (). swipe Views UpDown From Center ( n )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġtravel Ġdate Ġto Ġtomorrow ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Travel Date Tom orrow (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon DatePicker . perform ( Core Actions (). set Tom orrow Date ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġtravel Ġtime Ġto Ġone Ġhour Ġlater ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Travel Time 1 Hour Later (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Time Picker . perform ( Core Actions (). setTime 1 Hour Later ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ap Ġon Ġimage Ġoption Ġicon Ġto Ġopen Ġavailable Ġrouting Ġoptions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtap On Option Image Icon (): ĠRoute Planner Bar Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Option Panel . check ( matches ( is Displayed ())). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠRoute Planner Bar Actions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠT ap Ġon Ġtransport ation Ġtype Ġimage Ġicon Ġon Ġroute Ġpl anner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtap On Transport Mode ( transport Mode : ĠTransport Type ): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Planner Transport Panel ( transport Mode ). perform ( click ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSw ipe ĠUp Ġway points Ġlist Ġon Ġroute Ġpanel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġswipe Up Way points List (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Planner Waypoint List . perform ( swipe Up ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSw ipe ĠDown Ġway points Ġlist Ġon Ġroute Ġpanel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġswipe Down Way points List (): ĠRoute Planner Actions Ġ{ ĊĠĠĠĠĠĠĠ Ġon Planner Waypoint List . perform ( swipe Down ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠWait Ġfor Ġroute Ġdescription Ġlist Ġbecomes Ġenabled Ġon Ġroute Ġpanel ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġwait Transport Mode Selected ( transport Mode : ĠTransport Type ): ĠRoute Planner Matchers Ġ{ ĊĠĠĠĠĠĠĠ Ġon Root View . perform ( waitFor Condition ( on Planner Transport Panel View ( transport Mode ), Ġis Selected Ġ= Ġtrue )) ĊĠĠĠĠĠĠĠ Ġreturn ĠRoute Planner Matchers ĊĠĠĠ Ġ} Ċ }