/* Ċ Ġ* Ġ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 Ġandroidx . fragment . testing . lint Ċ Ċ import Ġcom . android . tools . lint . detector . api . Category Ċ import Ġcom . android . tools . lint . detector . api . Detector Ċ import Ġcom . android . tools . lint . detector . api . Gradle Context Ċ import Ġcom . android . tools . lint . detector . api . Gradle Scanner Ċ import Ġcom . android . tools . lint . detector . api . Implementation Ċ import Ġcom . android . tools . lint . detector . api . Issue Ċ import Ġcom . android . tools . lint . detector . api . Scope Ċ import Ġcom . android . tools . lint . detector . api . Severity Ċ Ċ /** Ċ Ġ* ĠL int Ġcheck Ġfor Ġensuring Ġthat Ġthe ĠFragment ĠTesting Ġlibrary Ġis Ġincluded Ġusing Ġthe Ġcorrect Ċ Ġ* Ġdebug Implementation Ġconfiguration . Ċ Ġ*/ Ċ class ĠGradle Configuration Detector Ġ: ĠDetector (), ĠGradle Scanner Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠISS UE Ġ= ĠIssue . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" Fragment Gradle Configuration ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrief Description Ġ= Ġ" Include Ġthe Ġfragment - testing Ġlibrary Ġusing Ġthe Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" debug Implementation Ġconfiguration .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexplanation Ġ= Ġ""" The Ġfragment - testing Ġlibrary Ġcontains Ġa ĠFragment Scenario Ġclass Ġthat Ġ\ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreates Ġan ĠActivity Ġthat Ġmust Ġexist Ġin Ġthe Ġruntime ĠA PK . ĠTo Ġinclude Ġthe Ġ\ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment - testing Ġlibrary Ġin Ġthe Ġruntime ĠA PK Ġit Ġmust Ġbe Ġadded Ġusing Ġthe Ġ\ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebug Implementation Ġconfiguration . """, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= ĠCategory . CORRECT NESS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseverity Ġ= ĠSeverity . ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Ġ= ĠImplementation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGradle Configuration Detector :: class . java , ĠScope . GRAD LE _ SCOPE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Specific Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ). add More Info (" https :// d . android . com / training / basics / fragments / testing # configure ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcheck Dsl Property Assignment ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠGradle Context , ĊĠĠĠĠĠĠĠ Ġproperty : ĠString , ĊĠĠĠĠĠĠĠ Ġvalue : ĠString , ĊĠĠĠĠĠĠĠ Ġparent : ĠString , ĊĠĠĠĠĠĠĠ Ġparent Parent : ĠString ?, ĊĠĠĠĠĠĠĠ Ġvalue Cookie : ĠAny , ĊĠĠĠĠĠĠĠ Ġstatement Cookie : ĠAny ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġen closing Ġquotes Ġand Ġcheck Ġstarting Ġstring Ġto Ġensure Ġonly Ġinstances Ġthat ĊĠĠĠĠĠĠĠ Ġ// Ġresult Ġin Ġthe Ġfragment - testing Ġlibrary Ġbeing Ġimported Ġare Ġchecked . ĊĠĠĠĠĠĠĠ Ġ// ĠNon - string Ġvalues Ġcannot Ġbe Ġresolved Ġso Ġinvalid Ġimports Ġvia Ġfunctions , Ġvariables , Ġetc . ĊĠĠĠĠĠĠĠ Ġ// Ġwill Ġnot Ġbe Ġdetected . ĊĠĠĠĠĠĠĠ Ġval Ġlibrary Ġ= ĠgetString Literal Value ( value ) ĊĠĠĠĠĠĠĠ Ġif Ġ( library . startsWith (" android x . fragment : fragment - testing ") Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Ġ!= Ġ" debug Implementation ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . report ( ISSUE , Ġstatement Cookie , Ġcontext . getLocation ( statement Cookie ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replace Ġwith Ġdebug Implementation .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfix (). replace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text ( property ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with (" debug Implementation ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExtract s Ġthe Ġstring Ġvalue Ġfrom Ġthe ĠDSL Ġvalue Ġby Ġremoving Ġsurrounding Ġquotes . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠReturns Ġan Ġempty Ġstring Ġif Ġ[ value ] Ġis Ġnot Ġa Ġstring Ġliteral . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠgetString Literal Value ( value : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value . length Ġ> Ġ 2 Ġ&& Ġ( value . startsWith ("' ") Ġ&& Ġvalue . endsWith ("' ") Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . startsWith ("\" ") Ġ&& Ġvalue . endsWith ("\ "" ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue . substring ( 1 , Ġvalue . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} Ċ } Ċ