From 95fd4006d94dff0f08a1e294e277c073537f1e18 Mon Sep 17 00:00:00 2001 From: Mikhail Mutcianko Date: Sat, 20 Sep 2014 23:34:38 +0400 Subject: [PATCH] fix android jps build test case - add proper way of setting up android sdk for jps - add missing android plugin runtime library --- .../android/AbstractAndroidJpsTestCase.kt | 41 ++++++++++++++++++- .../android/simple/AndroidManifest.xml | 4 +- .../android/simple/res/layout/main.xml | 2 +- jps-plugin/testData/android/simple/simple.iml | 2 +- jps-plugin/testData/android/simple/simple.ipr | 2 +- .../simple/src/com/example/myapp/Foo.java | 10 ----- .../src/com/example/myapp/MyActivity.kt | 9 +--- 7 files changed, 45 insertions(+), 25 deletions(-) delete mode 100644 jps-plugin/testData/android/simple/src/com/example/myapp/Foo.java diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/android/AbstractAndroidJpsTestCase.kt b/jps-plugin/test/org/jetbrains/jet/jps/build/android/AbstractAndroidJpsTestCase.kt index 05de8ff8005..e1b06bdaa45 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/android/AbstractAndroidJpsTestCase.kt +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/android/AbstractAndroidJpsTestCase.kt @@ -17,17 +17,54 @@ package org.jetbrains.jet.jps.build.android import org.jetbrains.jps.builders.JpsBuildTestCase +import org.jetbrains.jps.android.model.JpsAndroidSdkProperties +import org.jetbrains.jps.android.model.JpsAndroidSdkType +import org.jetbrains.jps.model.library.JpsOrderRootType +import org.jetbrains.jps.model.JpsSimpleElement +import org.jetbrains.jps.model.library.sdk.JpsSdk +import org.jetbrains.jps.model.impl.JpsSimpleElementImpl + +import java.io.File public abstract class AbstractAndroidJpsTestCase : JpsBuildTestCase() { - private val SDK_NAME = "Android_SDK" + + private val SDK_NAME = "Android API 17 Platform" + override fun setUp() { super.setUp() System.setProperty("kotlin.jps.tests", "true") } + public fun doTest(path: String) { - addJdk(SDK_NAME, getHomePath() + "/androidSDK/platforms/android-17" + "/android.jar") + addJdkAndAndroidSdk() loadProject(path + getTestName(true) + ".ipr") rebuildAll() makeAll().assertSuccessful() + deleteDirectory(File(path + "/out")) + } + + public fun deleteDirectory(path: File): Boolean { + if (path.exists() && path.isDirectory()) { + val files = path.listFiles()!! + for (i in files.indices) { + if (files[i].isDirectory()) { + deleteDirectory(files[i]) + } + else { + files[i].delete() + } + } + } + return (path.delete()) + } + + private fun addJdkAndAndroidSdk(): JpsSdk> { + val jdkName = "java_sdk" + addJdk(jdkName) + val properties = JpsAndroidSdkProperties("android-17", jdkName) + val sdkPath = getHomePath() + "/androidSDK/" + val library = myModel!!.getGlobal().addSdk>(SDK_NAME, sdkPath, "", JpsAndroidSdkType.INSTANCE, JpsSimpleElementImpl(properties)) + library!!.addRoot(File(sdkPath + "/platforms/android-17/android.jar"), JpsOrderRootType.COMPILED) + return library.getProperties() } } diff --git a/jps-plugin/testData/android/simple/AndroidManifest.xml b/jps-plugin/testData/android/simple/AndroidManifest.xml index 57d0d4c3e82..85352f74f1b 100644 --- a/jps-plugin/testData/android/simple/AndroidManifest.xml +++ b/jps-plugin/testData/android/simple/AndroidManifest.xml @@ -4,9 +4,9 @@ android:versionCode="1" android:versionName="1.0"> - + + android:label="app_name"> diff --git a/jps-plugin/testData/android/simple/res/layout/main.xml b/jps-plugin/testData/android/simple/res/layout/main.xml index 024accd07c7..aceae08fc2f 100644 --- a/jps-plugin/testData/android/simple/res/layout/main.xml +++ b/jps-plugin/testData/android/simple/res/layout/main.xml @@ -8,6 +8,6 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, MyActivity" - android:id="@+id/LOL"/> + android:id="@+id/textField"/> diff --git a/jps-plugin/testData/android/simple/simple.iml b/jps-plugin/testData/android/simple/simple.iml index b92085bd371..6dfe1ad5ce8 100644 --- a/jps-plugin/testData/android/simple/simple.iml +++ b/jps-plugin/testData/android/simple/simple.iml @@ -36,7 +36,7 @@ - + diff --git a/jps-plugin/testData/android/simple/simple.ipr b/jps-plugin/testData/android/simple/simple.ipr index a80d5700fa2..0c3ebcbc5ae 100644 --- a/jps-plugin/testData/android/simple/simple.ipr +++ b/jps-plugin/testData/android/simple/simple.ipr @@ -11,7 +11,7 @@ - + diff --git a/jps-plugin/testData/android/simple/src/com/example/myapp/Foo.java b/jps-plugin/testData/android/simple/src/com/example/myapp/Foo.java deleted file mode 100644 index 03041b80591..00000000000 --- a/jps-plugin/testData/android/simple/src/com/example/myapp/Foo.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.myapp; - -/** - * Created by miha on 8/6/14. - */ -public class Foo { - public static void main(String[] args) { - System.out.println(R.id.LOL); - } -} diff --git a/jps-plugin/testData/android/simple/src/com/example/myapp/MyActivity.kt b/jps-plugin/testData/android/simple/src/com/example/myapp/MyActivity.kt index 38d44fe8136..b57014a16bf 100644 --- a/jps-plugin/testData/android/simple/src/com/example/myapp/MyActivity.kt +++ b/jps-plugin/testData/android/simple/src/com/example/myapp/MyActivity.kt @@ -4,16 +4,9 @@ import android.app.Activity import android.os.Bundle public class MyActivity : Activity() { - /** - * Called when the activity is first created. - */ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main) - println(R.id.LOL) - fuck - this.LOL - LOL.setText("UIGFVIYUGFKGYUFOD") - LOL.setText("test") + textField.setText("test") } }