Added test. Refactored test code: got rid of obsolete IncludeLibraryTest class.
This commit is contained in:
@@ -3,7 +3,7 @@ package org.jetbrains.k2js.test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractExpressionTest extends IncludeLibraryTest {
|
public abstract class AbstractExpressionTest extends TranslationTest {
|
||||||
|
|
||||||
private final String SUITE = "expression/";
|
private final String SUITE = "expression/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public class BasicClassTest extends IncludeLibraryTest {
|
public class BasicClassTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "class/";
|
final private static String MAIN = "class/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public final class ClassInheritanceTest extends IncludeLibraryTest {
|
public final class ClassInheritanceTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "inheritance/";
|
final private static String MAIN = "inheritance/";
|
||||||
|
|
||||||
@@ -43,6 +43,11 @@ public final class ClassInheritanceTest extends IncludeLibraryTest {
|
|||||||
public void baseClassDefinedAfterDerived() throws Exception {
|
public void baseClassDefinedAfterDerived() throws Exception {
|
||||||
testFooBoxIsTrue("baseClassDefinedAfterDerived.kt");
|
testFooBoxIsTrue("baseClassDefinedAfterDerived.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void definitionOrder() throws Exception {
|
||||||
|
testFooBoxIsTrue("definitionOrder.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package org.jetbrains.k2js.test;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Talanov Pavel
|
|
||||||
*/
|
|
||||||
public abstract class IncludeLibraryTest extends TranslationTest {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected List<String> generateFilenameList(String inputFile) {
|
|
||||||
return Arrays.asList(kotlinLibraryPath(), inputFile);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,7 @@ import java.util.Map;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public class KotlinLibTest extends IncludeLibraryTest {
|
public class KotlinLibTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "kotlinLib/";
|
final private static String MAIN = "kotlinLib/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public class OperatorOverloadingTest extends IncludeLibraryTest {
|
public class OperatorOverloadingTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "operatorOverloading/";
|
final private static String MAIN = "operatorOverloading/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public final class PatternMatchingTest extends IncludeLibraryTest {
|
public final class PatternMatchingTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "patternMatching/";
|
final private static String MAIN = "patternMatching/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public final class PropertyAccessorTest extends IncludeLibraryTest {
|
public final class PropertyAccessorTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "propertyAccess/";
|
final private static String MAIN = "propertyAccess/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public class RTTITest extends IncludeLibraryTest {
|
public class RTTITest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "rtti/";
|
final private static String MAIN = "rtti/";
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import org.junit.Test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public final class TraitTest extends IncludeLibraryTest {
|
public final class TraitTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "trait/";
|
final private static String MAIN = "trait/";
|
||||||
|
|
||||||
@@ -49,5 +49,10 @@ public final class TraitTest extends IncludeLibraryTest {
|
|||||||
testFooBoxIsOk("funDelegation.jet");
|
testFooBoxIsOk("funDelegation.jet");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void definitionOrder() throws Exception {
|
||||||
|
testFooBoxIsTrue("definitionOrder.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import org.mozilla.javascript.Context;
|
|||||||
import org.mozilla.javascript.Scriptable;
|
import org.mozilla.javascript.Scriptable;
|
||||||
|
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ public abstract class TranslationTest {
|
|||||||
final protected static String TEST_FILES = "testFiles/";
|
final protected static String TEST_FILES = "testFiles/";
|
||||||
final private static String CASES = "cases/";
|
final private static String CASES = "cases/";
|
||||||
final private static String OUT = "out/";
|
final private static String OUT = "out/";
|
||||||
final private String KOTLIN_JS_LIB = TEST_FILES + "kotlin_lib.js";
|
final private static String KOTLIN_JS_LIB = TEST_FILES + "kotlin_lib.js";
|
||||||
|
|
||||||
protected abstract String mainDirectory();
|
protected abstract String mainDirectory();
|
||||||
|
|
||||||
@@ -62,7 +63,9 @@ public abstract class TranslationTest {
|
|||||||
K2JSTranslator.translate(args);
|
K2JSTranslator.translate(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract protected List<String> generateFilenameList(String inputfile);
|
protected List<String> generateFilenameList(String inputFile) {
|
||||||
|
return Arrays.asList(kotlinLibraryPath(), inputFile);
|
||||||
|
}
|
||||||
|
|
||||||
//TODO: refactor filename generation logic
|
//TODO: refactor filename generation logic
|
||||||
private String getOutputFilePath(String filename) {
|
private String getOutputFilePath(String filename) {
|
||||||
@@ -87,10 +90,10 @@ public abstract class TranslationTest {
|
|||||||
reader.close();
|
reader.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void runRhinoTest(List<String> filenames, RhinoResultChecker checker) throws Exception {
|
protected void runRhinoTest(List<String> fileNames, RhinoResultChecker checker) throws Exception {
|
||||||
Context cx = Context.enter();
|
Context cx = Context.enter();
|
||||||
Scriptable scope = cx.initStandardObjects();
|
Scriptable scope = cx.initStandardObjects();
|
||||||
for (String filename : filenames) {
|
for (String filename : fileNames) {
|
||||||
runFileWithRhino(filename, cx, scope);
|
runFileWithRhino(filename, cx, scope);
|
||||||
}
|
}
|
||||||
checker.runChecks(cx, scope);
|
checker.runChecks(cx, scope);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package org.jetbrains.k2js.test;
|
|||||||
/**
|
/**
|
||||||
* @author Talanov Pavel
|
* @author Talanov Pavel
|
||||||
*/
|
*/
|
||||||
public class TupleTest extends IncludeLibraryTest {
|
public class TupleTest extends TranslationTest {
|
||||||
|
|
||||||
final private static String MAIN = "tuple/";
|
final private static String MAIN = "tuple/";
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class C() : B() {
|
||||||
|
{
|
||||||
|
order = order + "C"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class D() : B() {
|
||||||
|
{
|
||||||
|
order = order + "D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class E() : A() {
|
||||||
|
{
|
||||||
|
order = order + "E"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class B() : A() {
|
||||||
|
{
|
||||||
|
order = order + "B"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class A() {
|
||||||
|
|
||||||
|
var order = ""
|
||||||
|
{
|
||||||
|
order = order + "A"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
return (C().order == "ABC") && (D().order == "ABD") && (E().order == "AE")
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
namespace foo
|
||||||
|
|
||||||
|
class C() : B() {
|
||||||
|
{
|
||||||
|
order = order + "C"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class D() : B() {
|
||||||
|
{
|
||||||
|
order = order + "D"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class E() : A() {
|
||||||
|
{
|
||||||
|
order = order + "E"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class B() : A(), F {
|
||||||
|
{
|
||||||
|
order = order + "B"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open class A() : F {
|
||||||
|
|
||||||
|
var order = ""
|
||||||
|
{
|
||||||
|
order = order + "A"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trait F {
|
||||||
|
fun bar() = "F"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box() : Boolean {
|
||||||
|
return (C().order == "ABC") && (D().order == "ABD") && (E().order == "AE") && (C().bar() == "F") && (A().bar() == "F")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user