/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 Ġ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 . android . ide . common . util Ċ Ċ import Ġcom . android . dd m lib . I Device Ċ import Ġcom . android . dd m lib . IS hell Output Receiver Ċ import Ġcom . android . sdk lib . Android Version Ċ import Ġcom . google . common . truth . Truth Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġjava . time . Duration Ċ Ċ class ĠDevice UtilsTest Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdevice : ĠI Device ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( device . version ). thenReturn ( Android Version ( 2 7 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ ĠsetUp Device Output ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" config : Ġm cc 3 1 0 - m nc 4 1 0 - en - r GB , fr - r FR - ld ltr - sw 4 1 1 dp - w 4 1 1 dp - h 7 4 6 dp - normal - long - not round - low dr - now ide cg - port - not night - 5 6 0 dpi - f inger - key sex posed - no keys - nav hidden - non av - v 2 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" abi : Ġarm 6 4 - v 8 a , ar me abi - v 7 a , ar me abi ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" recent Configs :", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġconfig : Ġm cc 3 1 0 - m nc 4 1 0 - es - r US , fr - r FR - ld ltr - sw 4 1 1 dp - w 4 1 1 dp - h 7 4 6 dp - normal - long - not round - low dr - now ide cg - port - not night - 5 6 0 dpi - f inger - key sex posed - no keys - nav hidden - non av - v 2 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġconfig : Ġm cc 3 1 0 - m nc 4 1 0 - it - r IT , fr - r BE - ld ltr - sw 4 1 1 dp - w 7 7 4 dp - h 3 8 3 dp - normal - long - not round - low dr - now ide cg - land - not night - 5 6 0 dpi - f inger - key sex posed - no keys - nav hidden - non av - v 2 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfixed Ġorder Ġfor Ġwide Ġgam ut Ġand ĠH DR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġconfig : Ġen - r US , de - r DE - ld ltr - sw 4 1 1 dp - w 4 1 1 dp - h 7 4 6 dp - normal - long - not round - now ide cg - low dr - port - not night - 5 6 0 dpi - f inger - key sex posed - no keys - nav hidden - non av - v 2 7 " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠTr uth . assertThat ( device . get Languages ( Duration . ZERO )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" en ", Ġ" fr ", Ġ" es ", Ġ" it ", Ġ" de ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Device Output ( var arg Ġconfigs : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice . execute Shell Command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . any String (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . any (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . any Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . any () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). then Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġthe Ġ 2 nd Ġarg Ġ( the Ġreceiver Ġto Ġfeed Ġit Ġthe Ġlines ). ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreceiver Ġ= Ġit . arguments [ 1 ] Ġas ĠIS hell Output Receiver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= Ġ"$ it \ n ". toByteArray ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreceiver . add Output ( byteArray , Ġ 0 , ĠbyteArray . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }