package Ġorg . jetbrains . intellij Ċ Ċ import Ġorg . gradle . api . plugins . Java Plugin Ċ import Ġorg . jetbrains . intellij . plugin Repository . Plugin Repository Factory Ċ import Ġorg . junit . Ass ume . assume False Ċ import Ġjava . io . File Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertTrue Ċ Ċ @ Suppress (" Gro ovy Assign ability Check ") Ċ class ĠIntelliJ Plugin Spec Ġ: ĠIntelliJ Plugin Spec Base () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` intellij - specific Ġtasks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġassume False ( Version . parse ( gradle Version ) Ġ< ĠVersion . parse (" 6 . 9 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . BUILD _ PLUGIN _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . BUILD _ SEARCH ABLE _ OPTIONS _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . DOWNLOAD _ ROBOT _ SERVER _ PLUGIN _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . JAR _ SEARCH ABLE _ OPTIONS _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . LIST _ PRODUCT S _ RELEASE S _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . PATCH _ PLUGIN _ XML _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . PRE PARE _ SAN DB OX _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . PRE PARE _ TEST ING _ SAN DB OX _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . PRE PARE _ UI _ TEST ING _ SAN DB OX _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . PUBL ISH _ PLUGIN _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . RUN _ IDE _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . RUN _ IDE _ FOR _ UI _ TESTS _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . RUN _ PLUGIN _ VER IFIER _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . SETUP _ DEPEND ENCI ES _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . SIGN _ PLUGIN _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntelliJ Plugin Constants . VERIFY _ PLUGIN _ TASK _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks ( Int elli J Plugin Constants . GROUP _ NAME ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` patch Ġtest Ġtasks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ' 1 4 . 1 . 4 ' ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild ( Java Plugin . TEST _ TASK _ NAME , Ġ"-- info ") ĊĠĠĠĠĠĠĠ Ġval Ġsandbox Path Ġ= Ġadjust Windows Path ("${ build Directory . canonical Path }/ idea - sandbox ") ĊĠĠĠĠĠĠĠ Ġval Ġtest Command Ġ= Ġparse Command ( result . output ) ĊĊĠĠĠĠĠĠĠ Ġassert Path Parameters ( test Command , Ġsandbox Path ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( test Command . properties . containsKey (" idea . required . plugins . id ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" boot . jar ", ĠFile ( test Command . x classpath ). name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" lib ", ĠFile ( test Command . x classpath ). parent File . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 5 6 m ", Ġtest Command . x ms ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 5 1 2 m ", Ġtest Command . x mx ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` use Ġcompile Ġonly Ġclasspath Ġfor Ġnon - builtin Ġplugins Ġif ĠGradle Ġl te Ġ 2 _ 1 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[' copyright ', Ġ' org . jetbrains . postfix Completion : 0 . 8 - beta '] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Runtime Class Path Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' runtime Only : Ġ' Ġ+ Ġsource Sets . main . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Compile Class Path Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' implementation : Ġ' Ġ+ Ġsource Sets . main . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Main Runtime Class Path ", Ġ" print Main Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġexternal Ġzip - plugins Ġto Ġcompile Ġonly Ġclasspath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[' org . intellij . plugins . markdown : 2 0 1 . 6 6 6 8 . 7 4 '] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Runtime Class Path Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' runtime Only : Ġ' Ġ+ Ġsource Sets . main . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Compile Class Path Ġ{ ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' implementation : Ġ' Ġ+ Ġsource Sets . main . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Main Runtime Class Path ", Ġ" print Main Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" markdown . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" resources _ en . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" kotlin - reflect - 1 . 3 . 7 0 . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" kotlin - stdlib - 1 . 3 . 7 0 . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" markdown - 0 . 1 . 4 1 . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" markdown . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" resources _ en . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" kotlin - reflect - 1 . 3 . 7 0 . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" kotlin - stdlib - 1 . 3 . 7 0 . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" markdown - 0 . 1 . 4 1 . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġlocal Ġplugin Ġto Ġcompile Ġonly Ġclasspath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Instance Ġ= ĠPlugin Repository Factory . create ( Int elli J Plugin Constants . MARK ET PLACE _ HOST , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġplugin Ġ= Ġrepository Instance . downloader . download (" org . jetbrains . postfix Completion ", Ġ" 0 . 8 - beta ", Ġdir , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[" copyright ", Ġ"${ adjust Windows Path ( plugin ?. canonical Path Ġ?: Ġ"") } "] ĊĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" runtime Only : Ġ" Ġ+ Ġsource Sets . main . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" implementation : Ġ" Ġ+ Ġsource Sets . main . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Main Runtime Class Path ", Ġ" print Main Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" intellij - postfix . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" intellij - postfix . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġbuiltin Ġplugin Ġdependencies Ġto Ġclasspath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[" com . jetbrains . change Reminder "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" runtime Only : Ġ" Ġ+ Ġsource Sets . test . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" implementation : Ġ" Ġ+ Ġsource Sets . test . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Test Runtime Class Path ", Ġ" print Test Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" vcs - change Reminder . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( runtime Classpath . contains (" vcs - change Reminder . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" git 4 idea . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( runtime Classpath . contains (" git 4 idea . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġant Ġdependencies Ġto Ġclasspath `() Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" runtime Only : Ġ" Ġ+ Ġsource Sets . test . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ" implementation : Ġ" Ġ+ Ġsource Sets . test . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Test Runtime Class Path ", Ġ" print Test Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġresult . output . lines (). find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġresult . output . lines (). find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" ant . jar ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( runtime Classpath . contains (" ant . jar ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` use Ġtest Ġcompile Ġclasspath Ġfor Ġnon - builtin Ġplugins Ġif ĠGradle Ġl te Ġ 2 _ 1 2 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[' copyright ', Ġ' org . jetbrains . postfix Completion : 0 . 8 - beta '] ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' runtime Only : Ġ' Ġ+ Ġsource Sets . test . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Test Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' implementation : Ġ' Ġ+ Ġsource Sets . test . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Test Runtime Class Path ", Ġ" print Test Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( runtime Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( runtime Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` resolve Ġplugins Ġin ĠGradle Ġl te Ġ 4 _ 3 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[' org . jetbrains . postfix Completion : 0 . 8 - beta ', Ġ' copyright '] ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' runtime Only : Ġ' Ġ+ Ġsource Sets . main . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' implementation : Ġ' Ġ+ Ġsource Sets . main . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Main Runtime Class Path ", Ġ" print Main Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" org . jetbrains . postfix Completion - 0 . 8 - beta . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` resolve Ġbundled Ġplugin Ġby Ġits Ġid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij . plugins Ġ= Ġ[' com . intellij . copyright '] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Runtime Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' runtime Only : Ġ' Ġ+ Ġsource Sets . main . runtime Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġprint Main Compile Class Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ Ġprintln Ġ' implementation : Ġ' Ġ+ Ġsource Sets . main . compile Classpath . as Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild (" print Main Runtime Class Path ", Ġ" print Main Compile Class Path ") ĊĠĠĠĠĠĠĠ Ġresult . output . lines (). let Ġ{ Ġlines Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġruntime Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" runtime Only :") Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompile Classpath Ġ= Ġlines . find Ġ{ Ġit . startsWith (" implementation :") Ġ} Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( compile Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( runtime Classpath . contains (" copyright . jar ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` add Ġrequire Ġplugin Ġid Ġparameter Ġin Ġtest Ġtasks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġplugin Xml . xml (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ< idea - plugin > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< name > Name </ name > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< id > com . intellij . my test id </ id > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ< vendor > Jet Brains </ vendor > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ</ idea - plugin > ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild ( Java Plugin . TEST _ TASK _ NAME , Ġ"-- info ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . intellij . my test id ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparse Command ( result . output ). properties [" idea . required . plugins . id "], ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` do Ġnot Ġupdate Ġexisting Ġj vm Ġarguments Ġin Ġtest Ġtasks `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġbuild File . groovy (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Heap Size Ġ= Ġ" 2 0 0 m " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Heap Size Ġ= Ġ" 5 0 0 m " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild ( Java Plugin . TEST _ TASK _ NAME , Ġ"-- info ") ĊĠĠĠĠĠĠĠ Ġparse Command ( result . output ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 0 m ", Ġit . x ms ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" 5 0 0 m ", Ġit . x mx ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` custom Ġsandbox Ġdirectory `() Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Test File () ĊĊĠĠĠĠĠĠĠ Ġval Ġsandbox Path Ġ= Ġadjust Windows Path ("${ dir . canonical Path }/ custom Sandbox ") ĊĠĠĠĠĠĠĠ Ġbuild File . xml (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġint ellij Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsandbox Dir Ġ= Ġ'$ sandbox Path ' ĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbuild ( Java Plugin . TEST _ TASK _ NAME , Ġ"-- info ") ĊĠĠĠĠĠĠĠ Ġassert Path Parameters ( parse Command ( result . output ), Ġsandbox Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ SuppressWarnings (" Gr Equals Between In convert ible Types ") ĊĠĠĠ Ġfun Ġassert Path Parameters ( test Command : ĠProcess Properties , Ġsandbox Path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ("$ sandbox Path / config - test ", Ġadjust Windows Path ( test Command . properties [" idea . config . path "] Ġ?: Ġ"")) ĊĠĠĠĠĠĠĠ ĠassertEquals ("$ sandbox Path / system - test ", Ġadjust Windows Path ( test Command . properties [" idea . system . path "] Ġ?: Ġ"")) ĊĠĠĠĠĠĠĠ ĠassertEquals ("$ sandbox Path / plugins - test ", Ġadjust Windows Path ( test Command . properties [" idea . plugins . path "] Ġ?: Ġ"")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Command ( output : ĠString ) Ġ= Ġoutput . lines () ĊĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġit . startsWith (" Starting Ġprocess Ġ") Ġ&& Ġ! it . contains (" vm _ stat ") Ġ} ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ ĠassertNotNull ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. substring After (" Command : Ġ") ĊĠĠĠĠĠĠĠ Ġ. let (:: Process Properties ) ĊĊĠĠĠ Ġclass ĠProcess Properties ( command : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġj vm Args Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= Ġmutable Map Of < String , ĠString >() ĊĠĠĠĠĠĠĠ Ġvar Ġx ms Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġx mx Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġx classpath Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( command ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand . trim (). split ("\\ s +". to Regex ()). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startsWith ("- D ") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . substring ( 2 ). split (' =') Ġ+ Ġ""). let Ġ{ Ġ( key , Ġvalue ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startsWith ("- X ms ") Ġ-> Ġx ms Ġ= Ġit . substring ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startsWith ("- X mx ") Ġ-> Ġx mx Ġ= Ġit . substring ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . startsWith ("- X boot classpath ") Ġ-> Ġx classpath Ġ= Ġit . substring ( 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġj vm Args . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ