fix(script): use compile instead analyze for scripts with deps (#1912)
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package jadx.plugins.script.ide
|
||||
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
class ScriptServicesTest {
|
||||
|
||||
@Test
|
||||
fun testAnalyzeSimple() {
|
||||
val name = "simple"
|
||||
val script = getSampleScript(name)
|
||||
val result = ScriptServices().analyze(name, script)
|
||||
println(result)
|
||||
assertThat(result.success).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAnalyzeDeps() {
|
||||
val name = "test-deps"
|
||||
val script = getSampleScript(name)
|
||||
val result = ScriptServices().analyze(name, script)
|
||||
println(result)
|
||||
assertThat(result.success).isTrue()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testComplete() {
|
||||
val name = "simple"
|
||||
val script = getSampleScript(name)
|
||||
val idx = script.indexOf("jadx.log.info")
|
||||
val completePos = idx + 7 // jadx.lo| <- complete 'log'
|
||||
val curScript = script.removeRange(completePos, script.indexOf("\n", idx))
|
||||
|
||||
val result = ScriptServices().complete(name, curScript, completePos)
|
||||
println(result)
|
||||
assertThat(result.completions)
|
||||
.hasSize(1)
|
||||
.allMatch { c -> c.text == "log" }
|
||||
}
|
||||
|
||||
private fun getSampleScript(scriptName: String): String {
|
||||
val resFile = javaClass.classLoader.getResource("samples/$scriptName.jadx.kts")
|
||||
return resFile!!.readText()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
val jadx = getJadxInstance()
|
||||
|
||||
jadx.afterLoad {
|
||||
jadx.log.info { "Hello" }
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
@file:DependsOn("org.apache.commons:commons-text:1.10.0")
|
||||
|
||||
import org.apache.commons.text.StringEscapeUtils
|
||||
|
||||
val jadx = getJadxInstance()
|
||||
|
||||
jadx.afterLoad {
|
||||
jadx.classes.forEach {
|
||||
jadx.log.info { "Escaped name: ${StringEscapeUtils.escapeJava(it.fullName)}" }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user