JS: move more test to box tests

This commit is contained in:
Alexey Andreev
2016-08-30 13:59:50 +03:00
parent 9bf124af3f
commit 7e2d5b04de
68 changed files with 607 additions and 578 deletions
@@ -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()
}
@@ -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")
}
@@ -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();
}