From 31dc8194f1f41c50053d6a8c8fb65892e490a900 Mon Sep 17 00:00:00 2001 From: Mikhail Mutcianko Date: Mon, 14 Jul 2014 14:55:28 +0400 Subject: [PATCH] add converted result compilation test --- .../android/converter/singleFile/R.kt | 13 +++++++ .../{ => converter/singleFile}/layout.kt | 0 .../{ => converter/singleFile}/layout.xml | 0 .../testData/android/fakeHelpers/Activity.kt | 6 ++++ compiler/testData/android/fakeHelpers/View.kt | 3 ++ .../jetbrains/jet/codegen/AndroidXmlTest.java | 35 +++++++++++++++++-- 6 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 compiler/testData/android/converter/singleFile/R.kt rename compiler/testData/android/{ => converter/singleFile}/layout.kt (100%) rename compiler/testData/android/{ => converter/singleFile}/layout.xml (100%) create mode 100644 compiler/testData/android/fakeHelpers/Activity.kt create mode 100644 compiler/testData/android/fakeHelpers/View.kt diff --git a/compiler/testData/android/converter/singleFile/R.kt b/compiler/testData/android/converter/singleFile/R.kt new file mode 100644 index 00000000000..26312f1cc99 --- /dev/null +++ b/compiler/testData/android/converter/singleFile/R.kt @@ -0,0 +1,13 @@ + +class R { + class id { + class object { + val item_detail_container = 0 + val textView1 = 0 + val password = 0 + val textView2 = 0 + val passwordConfirmation = 0 + val login = 0 + } + } +} \ No newline at end of file diff --git a/compiler/testData/android/layout.kt b/compiler/testData/android/converter/singleFile/layout.kt similarity index 100% rename from compiler/testData/android/layout.kt rename to compiler/testData/android/converter/singleFile/layout.kt diff --git a/compiler/testData/android/layout.xml b/compiler/testData/android/converter/singleFile/layout.xml similarity index 100% rename from compiler/testData/android/layout.xml rename to compiler/testData/android/converter/singleFile/layout.xml diff --git a/compiler/testData/android/fakeHelpers/Activity.kt b/compiler/testData/android/fakeHelpers/Activity.kt new file mode 100644 index 00000000000..88f02ca8dbe --- /dev/null +++ b/compiler/testData/android/fakeHelpers/Activity.kt @@ -0,0 +1,6 @@ +package android.app +import android.view.View + +trait Activity { + fun findViewById(id: Int): View? +} \ No newline at end of file diff --git a/compiler/testData/android/fakeHelpers/View.kt b/compiler/testData/android/fakeHelpers/View.kt new file mode 100644 index 00000000000..7b26684cb6e --- /dev/null +++ b/compiler/testData/android/fakeHelpers/View.kt @@ -0,0 +1,3 @@ +package android.view + +class View \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/AndroidXmlTest.java b/compiler/tests/org/jetbrains/jet/codegen/AndroidXmlTest.java index 38b5f9dbe37..7e8b6a11c09 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/AndroidXmlTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/AndroidXmlTest.java @@ -1,7 +1,12 @@ package org.jetbrains.jet.codegen; +import com.intellij.openapi.util.Disposer; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.ConfigurationKind; import org.jetbrains.jet.JetTestCaseBuilder; +import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; +import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.android.AndroidUIXmlParser; import org.jetbrains.jet.test.TestCaseWithTmpdir; @@ -9,9 +14,15 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.util.List; import java.util.Scanner; public class AndroidXmlTest extends TestCaseWithTmpdir { + + private final File singleFile = new File(getTestDataPath() + "/converter/singleFile/layout.xml"); + private final File fakeActivity = new File(getTestDataPath() + "/fakeHelpers/Activity.kt"); + private final File fakeView = new File(getTestDataPath() + "/fakeHelpers/View.kt"); + @Override public void setUp() throws Exception { super.setUp(); @@ -36,13 +47,33 @@ public class AndroidXmlTest extends TestCaseWithTmpdir { } } + public void testCompileResult() throws Exception { + ArrayList paths = new ArrayList(); + paths.add(singleFile); + String text = new AndroidUIXmlParser(null, paths).parse(); + JetCoreEnvironment jetCoreEnvironment = JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations(getTestRootDisposable(), + ConfigurationKind.ALL); + JetFile psiFile = JetTestUtils.createFile(singleFile.getName(), text, jetCoreEnvironment.getProject()); + JetFile fakeActivityClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(), fakeActivity); + JetFile fakeViewClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(), fakeView); + JetFile fakeRClass = JetTestUtils.loadJetFile(jetCoreEnvironment.getProject(), + new File(getTestDataPath() + "/converter/singleFile/R.kt")); + List files = new ArrayList(); + files.add(psiFile); + files.add(fakeActivityClass); + files.add(fakeViewClass); + files.add(fakeRClass); + GenerationUtils.compileManyFilesGetGenerationStateForTest(jetCoreEnvironment.getProject(), files); + Disposer.dispose(getTestRootDisposable()); + } + public void testConverterOneFile() throws Exception { ArrayList paths = new ArrayList(); - paths.add(new File(getTestDataPath() + "/layout.xml")); + paths.add(singleFile); AndroidUIXmlParser parser = new AndroidUIXmlParser(null, paths); String actual = parser.parse(); - String expected = loadOrCreate(new File(getTestDataPath() + "/layout.kt"), actual); + String expected = loadOrCreate(new File(getTestDataPath() + "/converter/singleFile/layout.kt"), actual); assertEquals(expected, actual); }