/* ĠNext cloud ĠAndroid ĠLibrary Ġis Ġavailable Ġunder ĠMIT Ġlicense Ċ Ġ* Ċ Ġ* ĠĠ Ġ@ author ĠT ob ias ĠK amin sky Ċ Ġ* ĠĠ ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠT ob ias ĠK amin sky Ċ Ġ* ĠĠ ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠNext cloud ĠGmbH Ċ Ġ* Ċ Ġ* ĠĠ ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* ĠĠ Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* ĠĠ Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* ĠĠ Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* ĠĠ Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* ĠĠ Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠĠ ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* ĠĠ Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠĠ ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , Ċ Ġ* ĠĠ ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF Ċ Ġ* ĠĠ ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND Ċ Ġ* ĠĠ ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS Ċ Ġ* ĠĠ ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN Ċ Ġ* ĠĠ ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN Ċ Ġ* ĠĠ ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠĠ ĠTHE ĠSOFTWARE . Ċ Ġ* Ċ Ġ*/ Ċ package Ġcom . own cloud . android . lib . resources . users Ċ Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġcom . own cloud . android . Abstract IT Ċ import Ġjunit . framework . Assert . assertFalse Ċ import Ġjunit . framework . Assert . assertTrue Ċ import Ġokhttp 3 . Credentials . basic Ċ import Ġorg . junit . Test Ċ Ċ class ĠApp Token Remote Operation IT Ġ: ĠAbstract IT () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate App Password () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠConvert App Token Remote Operation () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsut . execute ( next cloud Client ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result . is Success ) ĊĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠInstrument ation Registry . get Arguments () ĊĊĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString ? Ġ= Ġarguments . getString (" TEST _ SERVER _ PASSWORD ") ĊĠĠĠĠĠĠĠ Ġval Ġnew Password Ġ= Ġresult . result Data ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( new Password . isNotBlank ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( password Ġ!= Ġnew Password ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck App Password () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġfirst Ġcreate Ġnew Ġapp Ġtoken ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠConvert App Token Remote Operation () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsut . execute ( next cloud Client ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result . is Success ) ĊĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠInstrument ation Registry . get Arguments () ĊĠĠĠĠĠĠĠ Ġval Ġusername : ĠString Ġ= Ġarguments . getString (" TEST _ SERVER _ USERNAME ", Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString Ġ= Ġarguments . getString (" TEST _ SERVER _ PASSWORD ", Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġnew Password Ġ= Ġresult . result Data ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( new Password . isNotBlank ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( password Ġ!= Ġnew Password ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsecond Ġuse Ġthis Ġapp Ġtoken Ġto Ġcheck ĊĠĠĠĠĠĠĠ Ġnext cloud Client . credentials Ġ= Ġbasic ( username , Ġnew Password ) ĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= Ġsut . execute ( next cloud Client ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result 2 . is Success ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result 2 . result Data . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete App Password () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠInstrument ation Registry . get Arguments () ĊĠĠĠĠĠĠĠ Ġval Ġusername : ĠString Ġ= Ġarguments . getString (" TEST _ SERVER _ USERNAME ", Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString Ġ= Ġarguments . getString (" TEST _ SERVER _ PASSWORD ", Ġ"") ĊĠĠĠĠĠĠĠ Ġnext cloud Client . credentials Ġ= Ġbasic ( username , Ġpassword ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfirst : Ġcreate Ġa Ġnew Ġapp Ġpassword ĊĠĠĠĠĠĠĠ Ġval Ġcreate Password Ġ= ĠConvert App Token Remote Operation () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcreate Password . execute ( next cloud Client ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result . is Success ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Password Ġ= Ġresult . result Data ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( new Password . isNotBlank ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( password Ġ!= Ġnew Password ) ĊĊĠĠĠĠĠĠĠ Ġnext cloud Client . credentials Ġ= Ġbasic ( username , Ġnew Password ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġthat Ġnew Ġpassword Ġworks ĊĠĠĠĠĠĠĠ ĠassertTrue ( create Password . execute ( next cloud Client ). is Success ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsecond : Ġdelete Ġthis Ġnew Ġapp Ġpassword ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠDelete App Password Remote Operation () ĊĠĠĠĠĠĠĠ Ġval Ġresult 2 Ġ= Ġsut . execute ( next cloud Client ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result 2 . is Success ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcheck Ġif Ġold Ġpassword Ġcan Ġstill Ġbe Ġused ĊĠĠĠĠĠĠĠ ĠassertFalse ( create Password . execute ( next cloud Client ). is Success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠ Ġ} Ċ } Ċ