Files
NeoTerm_System/app/src/test/java/io/neoterm/ConfigureFileTest.kt

67 lines
2.1 KiB
Kotlin
Raw Normal View History

2017-08-06 00:28:51 +08:00
package io.neoterm
2017-08-09 02:38:06 +08:00
import io.neoterm.customize.color.NeoColorScheme
2017-08-09 02:50:36 +08:00
import io.neoterm.customize.config.ConfigureService
import io.neolang.visitor.ConfigVisitor
2017-08-06 00:28:51 +08:00
import io.neoterm.frontend.config.NeoConfigureFile
2017-08-09 02:50:36 +08:00
import io.neoterm.frontend.service.ServiceManager
2017-08-06 00:28:51 +08:00
import org.junit.Test
2017-08-08 16:04:22 +08:00
import java.io.File
2017-08-06 00:28:51 +08:00
/**
* @author kiva
*/
class ConfigureFileTest {
2017-08-09 02:38:06 +08:00
private fun parseConfigure(filePath: String): ConfigVisitor? {
2017-08-08 16:04:22 +08:00
val config = NeoConfigureFile(File(filePath))
2017-08-06 00:28:51 +08:00
if (config.parseConfigure()) {
val visitor = config.getVisitor()
2017-08-09 02:38:06 +08:00
return visitor
2017-08-06 00:28:51 +08:00
}
2017-08-09 02:38:06 +08:00
return null
}
@Test
fun colorConfigureTest() {
try {
ServiceManager.registerService(ConfigureService::class.java)
} catch (ignore: Throwable) {
}
2017-08-09 02:50:36 +08:00
val color = NeoColorScheme()
if (color.loadConfigure(File("NeoLang/example/color-scheme.nl"))) {
println("colorName: ${color.colorName}")
println("colorVersion: ${color.colorVersion}")
println("background: ${color.backgroundColor}")
println("foreground: ${color.foregroundColor}")
println("color1: ${color.color[1]}")
println("color2: ${color.color[2]}")
2017-08-09 02:38:06 +08:00
}
}
@Test
fun extraKeyConfigureTest() {
val visitor = parseConfigure("NeoLang/example/extra-key.nl")
if (visitor != null) {
val programs = visitor.getArray(arrayOf("extra-key"), "program")
programs.forEachIndexed { index, element ->
println("program[$index]: ${element.eval().asString()}")
}
val keys = visitor.getArray(arrayOf("extra-key"), "key")
keys.forEachIndexed { index, element ->
if (element.isBlock()) {
println("key[$index]: " +
"display: ${element.eval("display").asString()}, " +
"code: ${element.eval("code").asString()}")
}
}
}
2017-08-06 00:28:51 +08:00
}
2017-08-08 16:04:22 +08:00
@Test
fun configureFileTest() {
2017-08-09 02:38:06 +08:00
colorConfigureTest()
extraKeyConfigureTest()
2017-08-08 16:04:22 +08:00
}
2017-08-06 00:28:51 +08:00
}