From ba0ffcc1d1d95abc1815f8a9faf59771f01b210d Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 5 Apr 2023 17:23:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../androidTest/java/io/legado/app/JsTest.kt | 100 -------------- app/src/test/java/io/legado/app/JsTest.kt | 127 ++++++++++++++++++ 2 files changed, 127 insertions(+), 100 deletions(-) create mode 100644 app/src/test/java/io/legado/app/JsTest.kt diff --git a/app/src/androidTest/java/io/legado/app/JsTest.kt b/app/src/androidTest/java/io/legado/app/JsTest.kt index 7e02d86c0..9534472e6 100644 --- a/app/src/androidTest/java/io/legado/app/JsTest.kt +++ b/app/src/androidTest/java/io/legado/app/JsTest.kt @@ -1,102 +1,12 @@ package io.legado.app -import com.script.SimpleBindings import io.legado.app.constant.SCRIPT_ENGINE -import io.legado.app.data.entities.BookChapter import org.intellij.lang.annotations.Language import org.junit.Assert import org.junit.Test -import org.mozilla.javascript.Context class JsTest { - @Language("js") - private val printJs = """ - function print(str, newline) { - if (typeof(str) == 'undefined') { - str = 'undefined'; - } else if (str == null) { - str = 'null'; - } - java.lang.System.out.print(String(str)); - if (newline) java.lang.System.out.print("\n"); - } - function println(str) { - print(str, true); - } - """.trimIndent() - - @Test - fun testMap() { - val map = hashMapOf("id" to "3242532321") - val bindings = SimpleBindings() - bindings["result"] = map - @Language("js") - val jsMap = "$=result;id=$.id;id" - val result = SCRIPT_ENGINE.eval(jsMap, bindings)?.toString() - Assert.assertEquals("3242532321", result) - @Language("js") - val jsMap1 = """result.get("id")""" - val result1 = SCRIPT_ENGINE.eval(jsMap1, bindings)?.toString() - Assert.assertEquals("3242532321", result1) - } - - @Test - fun testFor() { - val context = SCRIPT_ENGINE.getScriptContext(SimpleBindings()) - val scope = SCRIPT_ENGINE.getRuntimeScope(context) - try { - Context.enter().evaluateString(scope, printJs, "print", 1, null) - } finally { - Context.exit() - } - @Language("js") - val jsFor = """ - let result = 0 - let a=[1,2,3] - let l=a.length - for (let i = 0;i {result = result + item}) + result + """.trimIndent() + val result = SCRIPT_ENGINE.eval(js, bindings) + Assert.assertEquals(result, 6.0) + } + +} \ No newline at end of file