KT-12877: add tests for UMD modules

This commit is contained in:
Alexey Andreev
2016-07-04 18:30:30 +03:00
committed by Alexey Andreev
parent 31a1d6ca66
commit 495c876b3b
6 changed files with 48 additions and 1 deletions
@@ -118,9 +118,12 @@ abstract class BasicBoxTest(
}
val additionalFiles = mutableListOf<String>()
if (modules.size > 1 || MODULE_KIND_PATTERN.matcher(expectedText).find()) {
if ((modules.size > 1 || MODULE_KIND_PATTERN.matcher(expectedText).find()) &&
!NO_MODULE_SYSTEM_PATTERN.matcher(expectedText).find()
) {
additionalFiles += MODULE_EMULATION_FILE
}
val additionalJsFile = filePath.removeSuffix("." + KotlinFileType.EXTENSION) + JavaScript.DOT_EXTENSION
if (File(additionalJsFile).exists()) {
additionalFiles += additionalJsFile
@@ -327,6 +330,7 @@ abstract class BasicBoxTest(
val TEST_DATA_DIR_PATH = "js/js.translator/testData/"
private val MODULE_KIND_PATTERN = Pattern.compile("^// *MODULE_KIND: *(.+)$", Pattern.MULTILINE)
private val NO_MODULE_SYSTEM_PATTERN = Pattern.compile("^// *NO_JS_MODULE_SYSTEM", Pattern.MULTILINE)
private val NO_INLINE_PATTERN = Pattern.compile("^// *NO_INLINE *$", Pattern.MULTILINE)
private val SKIP_NODE_JS = Pattern.compile("^// *SKIP_NODE_JS *$", Pattern.MULTILINE)
}
@@ -5000,6 +5000,18 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
doTest(fileName);
}
@TestMetadata("externalFunctionUmd.kt")
public void testExternalFunctionUmd() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsModule/externalFunctionUmd.kt");
doTest(fileName);
}
@TestMetadata("externalFunctionUmdFallback.kt")
public void testExternalFunctionUmdFallback() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsModule/externalFunctionUmdFallback.kt");
doTest(fileName);
}
@TestMetadata("externalObject.kt")
public void testExternalObject() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/jsModule/externalObject.kt");
@@ -0,0 +1,5 @@
define("lib-foo", [], function() {
return function(y) {
return 23 + y;
};
});
@@ -0,0 +1,11 @@
// MODULE_KIND: UMD
package foo
@JsModule("lib-foo")
@JsNonModule
@native fun foo(x: Int): Int = noImpl
fun box(): String {
assertEquals(65, foo(42))
return "OK"
}
@@ -0,0 +1,3 @@
function lib(y) {
return 23 + y;
}
@@ -0,0 +1,12 @@
// MODULE_KIND: UMD
// NO_JS_MODULE_SYSTEM
package foo
@JsModule("lib")
@JsNonModule
@native fun foo(x: Int): Int = noImpl
fun box(): String {
assertEquals(65, foo(42))
return "OK"
}