JS: move more test to box tests
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package foo
|
||||
|
||||
object EmptyObject {}
|
||||
|
||||
object SomeObject {
|
||||
val foo = 1
|
||||
var bar = "t"
|
||||
fun baz() {}
|
||||
}
|
||||
|
||||
val emptyObjectExpr = object {}
|
||||
|
||||
val someObjectExpr = object {
|
||||
val foo = 1
|
||||
var bar = "t"
|
||||
fun baz() {}
|
||||
}
|
||||
|
||||
val o = js("Object")
|
||||
|
||||
fun keys(a: Any): List<String> {
|
||||
val arr: Array<String> = o.keys(a)
|
||||
return arr.toList()
|
||||
}
|
||||
|
||||
fun getOwnPropertyNames(a: Any): List<String> {
|
||||
val arr: Array<String> = o.getOwnPropertyNames(a)
|
||||
return arr.toList()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(listOf(), getOwnPropertyNames(EmptyObject))
|
||||
assertEquals(listOf(), keys(EmptyObject))
|
||||
|
||||
assertEquals(listOf("foo", "bar"), getOwnPropertyNames(SomeObject))
|
||||
assertEquals(listOf("foo", "bar"), keys(SomeObject))
|
||||
|
||||
assertEquals(listOf(), getOwnPropertyNames(emptyObjectExpr))
|
||||
assertEquals(listOf(), keys(emptyObjectExpr))
|
||||
|
||||
assertEquals(listOf("foo", "bar"), getOwnPropertyNames(someObjectExpr))
|
||||
assertEquals(listOf("foo", "bar"), keys(someObjectExpr))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// copied from JVM backend tests
|
||||
package foo
|
||||
|
||||
open class X(private val n: String) {
|
||||
|
||||
fun foo(): String {
|
||||
return object : X("inner") {
|
||||
fun print(): String {
|
||||
return n;
|
||||
}
|
||||
}.print()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun box(): String {
|
||||
return X("OK").foo()
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package foo
|
||||
|
||||
object A {
|
||||
object B {
|
||||
val lambda = { "OK" }
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = A.B.lambda()
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package foo
|
||||
|
||||
class A {
|
||||
|
||||
}
|
||||
|
||||
object test {
|
||||
var c = 2;
|
||||
var b = 1;
|
||||
}
|
||||
|
||||
object aWrapper {
|
||||
var a = A();
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (test.c != 2) return "fail1: ${test.c}"
|
||||
|
||||
if (test.b != 1) return "fail2: ${test.b}"
|
||||
test.c += 10
|
||||
if (test.c != 12) "fail3: ${test.c}"
|
||||
if (aWrapper.a !is A) "fail4"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package foo
|
||||
|
||||
object State {
|
||||
val c = 2
|
||||
val b = 1
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (State.c != 2) return "fail1: ${State.c}"
|
||||
if (State.b != 1) return "fail2: ${State.b}"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package foo
|
||||
|
||||
class A() {
|
||||
fun f(): String {
|
||||
val z = object {
|
||||
val c = "OK"
|
||||
}
|
||||
return z.c
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = A().f();
|
||||
@@ -0,0 +1,37 @@
|
||||
package foo
|
||||
|
||||
object A {
|
||||
object query {
|
||||
val status = "complete"
|
||||
}
|
||||
}
|
||||
|
||||
object B {
|
||||
private val ov = "d"
|
||||
object query {
|
||||
val status = "complete" + ov
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
companion object {
|
||||
fun ov() = "d"
|
||||
}
|
||||
object query {
|
||||
val status = "complete" + ov()
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = A.query.status
|
||||
if (result != "complete") return "fail1: $result"
|
||||
|
||||
result = B.query.status
|
||||
if (result != "completed") return "fail2: $result"
|
||||
|
||||
result = C.query.status
|
||||
if (result != "completed") return "fail3: $result"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
class Foo {
|
||||
fun bar(param: String): String {
|
||||
val local = "K"
|
||||
var a = object {
|
||||
val b = object {
|
||||
val bar = param + local
|
||||
}
|
||||
}
|
||||
return a.b.bar
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return Foo().bar("O")
|
||||
}
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package foo
|
||||
|
||||
interface Foo {
|
||||
fun execute(handler: () -> Unit) {
|
||||
execute(false, handler)
|
||||
}
|
||||
|
||||
fun execute(onlyIfAttached: Boolean, handler: () -> Unit)
|
||||
}
|
||||
|
||||
object foo : Foo {
|
||||
override fun execute(onlyIfAttached: Boolean, handler: () -> Unit) {
|
||||
handler()
|
||||
}
|
||||
}
|
||||
|
||||
private var result = "fail"
|
||||
|
||||
fun box(): String {
|
||||
foo.execute() {
|
||||
result = "OK"
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package foo
|
||||
|
||||
abstract class A(val s: String) {
|
||||
}
|
||||
|
||||
object B : A("test") {
|
||||
}
|
||||
|
||||
fun box() = if (B.s == "test") "OK" else "fail: ${B.s}"
|
||||
@@ -0,0 +1,22 @@
|
||||
package foo
|
||||
|
||||
class Test {
|
||||
private val a = object {
|
||||
fun c() = 3
|
||||
fun b() = 2
|
||||
}
|
||||
|
||||
fun doTest(): String {
|
||||
if (a.c() != 3) {
|
||||
return "fail1"
|
||||
}
|
||||
if (a.b() != 2) {
|
||||
return "fail2"
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return Test().doTest();
|
||||
}
|
||||
Reference in New Issue
Block a user