/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . idea . platform Ċ Ċ import Ġorg . jetbrains . kotlin . descriptors . Class Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . Class Descriptor With Resolution Scopes Ċ import Ġorg . jetbrains . kotlin . descriptors . Declaration Descriptor Ċ import Ġorg . jetbrains . kotlin . idea . highlighter . Kotlin Test Run Line Marker Contributor . Companion . getTest State Icon Ċ import Ġorg . jetbrains . kotlin . idea . util . string . join With Escape Ċ import Ġorg . jetbrains . kotlin . name . Fq Name Ċ import Ġorg . jetbrains . kotlin . psi . Kt Class Or Object Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Declaration Ċ import Ġorg . jetbrains . kotlin . psi . Kt Named Function Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . containing Class Or Object Ċ import Ġorg . jetbrains . kotlin . psi . psi Util . parent sWith Self Ċ import Ġjavax . swing . Icon Ċ Ċ private Ġval ĠTEST _ FQ _ NAME Ġ= ĠF q Name (" kotlin . test . Test ") Ċ private Ġval ĠIG NORE _ FQ _ NAME Ġ= ĠF q Name (" kotlin . test . Ignore ") Ċ Ċ fun Ġget Generic Test Icon ( declaration : ĠK t Named Declaration , Ġdescriptor : ĠDeclaration Descriptor , Ġinitial Locations : Ġ() Ġ-> ĠList < String >? ): ĠIcon ? Ġ{ ĊĠĠĠ Ġif Ġ(! descriptor . is Kotlin Test Declaration ()) Ġreturn Ġnull ĊĊĠĠĠ Ġval Ġlocations Ġ= Ġinitial Locations ()?. to Mutable List () Ġ?: Ġreturn Ġnull ĊĊĠĠĠ Ġval Ġclazz Ġ= Ġwhen Ġ( declaration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠK t Class Or Object Ġ-> Ġdeclaration ĊĠĠĠĠĠĠĠ Ġis ĠK t Named Function Ġ-> Ġdeclaration . containing Class Or Object Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlocations Ġ+= Ġclazz . parent sWith Self . filter Is Instance < Kt Named Declaration >() ĊĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠ Ġ. toList (). as Re versed () ĊĊĠĠĠ Ġval Ġtest Name Ġ= Ġ( declaration Ġas ? ĠK t Named Function )?. name ĊĠĠĠ Ġif Ġ( test Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlocations Ġ+= Ġ"$ test Name " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġprefix Ġ= Ġif Ġ( test Name Ġ!= Ġnull ) Ġ" test ://" Ġelse Ġ" suite ://" ĊĠĠĠ Ġval Ġurl Ġ= Ġprefix Ġ+ Ġlocations . join With Escape ('.') ĊĠĠĠ Ġval Ġjava Url Ġ= Ġ" java :$ url " ĊĊĠĠĠ Ġval Ġproject Ġ= Ġdeclaration . project ĊĠĠĠ Ġreturn Ġget Test State Icon ( java Url , Ġproject , Ġstrict Ġ= Ġtrue ) Ġ?: Ġget Test State Icon ( url , Ġproject , Ġstrict Ġ= Ġfalse ) Ċ } Ċ Ċ private Ġtail rec Ġfun ĠDeclaration Descriptor . is Ignored (): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( annotations . any Ġ{ Ġit . fq Name Ġ== ĠIG NORE _ FQ _ NAME Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcontaining Class Ġ= Ġcontaining Declaration Ġas ? ĠClass Descriptor Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġcontaining Class . is Ignored () Ċ } Ċ Ċ fun ĠDeclaration Descriptor . is Kotlin Test Declaration (): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( is Ignored ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( annotations . any Ġ{ Ġit . fq Name Ġ== ĠTEST _ FQ _ NAME Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġclass Descriptor Ġ= Ġthis Ġas ? ĠClass Descriptor With Resolution Scopes Ġ?: Ġreturn Ġfalse ĊĠĠĠ Ġreturn Ġclass Descriptor . declared Callable Members . any Ġ{ Ġit . is Kotlin Test Declaration () Ġ} Ċ }