Migrated the rest part of git connected cocoapods tests to the new test dsl (junit 5 and gradle test kit)
#KT-51553 In Progress
This commit is contained in:
committed by
Space Team
parent
3ce61f988f
commit
455aa4a76a
+72
-6
@@ -212,7 +212,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
val anotherPodName = "Alamofire"
|
val anotherPodName = "Alamofire"
|
||||||
val anotherPodRepo = "https://github.com/Alamofire/Alamofire"
|
val anotherPodRepo = "https://github.com/Alamofire/Alamofire"
|
||||||
buildGradleKts.addPod(anotherPodName, produceGitBlock(anotherPodRepo))
|
buildGradleKts.addPod(anotherPodName, produceGitBlock(anotherPodRepo))
|
||||||
testImport(listOf(defaultPodRepo, anotherPodRepo)) {
|
testImport(repos = listOf(defaultPodRepo, anotherPodRepo)) {
|
||||||
|
|
||||||
assertTasksExecuted(
|
assertTasksExecuted(
|
||||||
podspecTaskName,
|
podspecTaskName,
|
||||||
@@ -312,7 +312,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@DisplayName("Pod Build UTD after clean")
|
@DisplayName("Pod Build is not UTD after clean")
|
||||||
@GradleTest
|
@GradleTest
|
||||||
fun testPodBuildUTDClean(gradleVersion: GradleVersion) {
|
fun testPodBuildUTDClean(gradleVersion: GradleVersion) {
|
||||||
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
@@ -403,7 +403,74 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
assertTasksUpToDate(defaultPodGenTaskName)
|
assertTasksUpToDate(defaultPodGenTaskName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("UTD for spec repos")
|
||||||
|
@GradleTest
|
||||||
|
fun testSpecReposUTD(gradleVersion: GradleVersion) {
|
||||||
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
|
|
||||||
|
buildGradleKts.addPod("AFNetworking")
|
||||||
|
build(defaultPodGenTaskName) {
|
||||||
|
assertTasksExecuted(defaultPodGenTaskName)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildGradleKts.addSpecRepo("https://github.com/alozhkin/spec_repo_example.git")
|
||||||
|
build(defaultPodGenTaskName) {
|
||||||
|
assertTasksExecuted(defaultPodGenTaskName)
|
||||||
|
}
|
||||||
|
|
||||||
|
build(defaultPodGenTaskName) {
|
||||||
|
assertTasksUpToDate(defaultPodGenTaskName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Import subspecs")
|
||||||
|
@GradleTest
|
||||||
|
fun testImportSubspecs(gradleVersion: GradleVersion) {
|
||||||
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
|
buildGradleKts.addPod("SDWebImage/Core")
|
||||||
|
buildGradleKts.addPod("SDWebImage/MapKit")
|
||||||
|
testImport()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Checking useLibraries mode")
|
||||||
|
@GradleTest
|
||||||
|
fun testUseLibrariesMode(gradleVersion: GradleVersion) {
|
||||||
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
|
buildGradleKts.addCocoapodsBlock("useLibraries()")
|
||||||
|
buildGradleKts.addPod("AFNetworking", configuration = "headers = \"AFNetworking/AFNetworking.h\"")
|
||||||
|
testImport()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Checking that useLibraries mode warns when pod is added without headers specified")
|
||||||
|
@GradleTest
|
||||||
|
fun testUseLibrariesModeWarnsWhenPodIsAddedWithoutHeadersSpecified(gradleVersion: GradleVersion) {
|
||||||
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
|
buildGradleKts.addCocoapodsBlock("useLibraries()")
|
||||||
|
buildGradleKts.addPod("AFNetworking")
|
||||||
|
testImport {
|
||||||
|
assertOutputContains("w: Pod 'AFNetworking' should have 'headers' property specified when using 'useLibraries()'")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Spec repos import")
|
||||||
|
@GradleTest
|
||||||
|
fun testSpecReposImport(gradleVersion: GradleVersion) {
|
||||||
|
val podName = "example"
|
||||||
|
val podRepo = "https://github.com/alozhkin/spec_repo"
|
||||||
|
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||||
|
buildGradleKts.addPod(podName)
|
||||||
|
buildGradleKts.addSpecRepo(podRepo)
|
||||||
|
|
||||||
|
testImport(repos = listOf(podRepo)) {
|
||||||
|
podImportAsserts(buildGradleKts)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun doTestGit(
|
private fun doTestGit(
|
||||||
@@ -423,7 +490,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
val buildScript = if (isGradleBuildScript) buildGradle else buildGradleKts
|
val buildScript = if (isGradleBuildScript) buildGradle else buildGradleKts
|
||||||
buildScript.addPod(pod, produceGitBlock(repo, branch, commit, tag))
|
buildScript.addPod(pod, produceGitBlock(repo, branch, commit, tag))
|
||||||
|
|
||||||
testImport(listOf(repo)) {
|
testImport(repos = listOf(repo)) {
|
||||||
podImportAsserts(buildScript)
|
podImportAsserts(buildScript)
|
||||||
testImportAssertions()
|
testImportAssertions()
|
||||||
}
|
}
|
||||||
@@ -493,6 +560,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun TestProject.testImport(
|
private fun TestProject.testImport(
|
||||||
|
taskName: String = podImportTaskName,
|
||||||
repos: List<String> = listOf(defaultPodRepo),
|
repos: List<String> = listOf(defaultPodRepo),
|
||||||
vararg args: String,
|
vararg args: String,
|
||||||
assertions: BuildResult.() -> Unit = {},
|
assertions: BuildResult.() -> Unit = {},
|
||||||
@@ -500,10 +568,8 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
|||||||
|
|
||||||
isRepoAvailable(repos)
|
isRepoAvailable(repos)
|
||||||
|
|
||||||
build(podImportTaskName, *args) {
|
build(taskName, *args) {
|
||||||
assertions()
|
assertions()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+5
-85
@@ -6,12 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.gradle.native
|
package org.jetbrains.kotlin.gradle.native
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.*
|
import org.jetbrains.kotlin.gradle.*
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.DUMMY_FRAMEWORK_TASK_NAME
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.DUMMY_FRAMEWORK_TASK_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_BUILD_TASK_NAME
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_GEN_TASK_NAME
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_IMPORT_TASK_NAME
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_IMPORT_TASK_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_INSTALL_TASK_NAME
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_INSTALL_TASK_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_SETUP_BUILD_TASK_NAME
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_SPEC_TASK_NAME
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.KotlinCocoapodsPlugin.Companion.POD_SPEC_TASK_NAME
|
||||||
import org.jetbrains.kotlin.gradle.testbase.ImportMode
|
import org.jetbrains.kotlin.gradle.testbase.ImportMode
|
||||||
import org.jetbrains.kotlin.gradle.testbase.cocoaPodsEnvironmentVariables
|
import org.jetbrains.kotlin.gradle.testbase.cocoaPodsEnvironmentVariables
|
||||||
@@ -54,19 +52,12 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
|
|
||||||
private val dummyTaskName = ":$DUMMY_FRAMEWORK_TASK_NAME"
|
private val dummyTaskName = ":$DUMMY_FRAMEWORK_TASK_NAME"
|
||||||
private val podspecTaskName = ":$POD_SPEC_TASK_NAME"
|
private val podspecTaskName = ":$POD_SPEC_TASK_NAME"
|
||||||
private val podGenTaskName = ":$POD_GEN_TASK_NAME"
|
|
||||||
private val podImportTaskName = ":$POD_IMPORT_TASK_NAME"
|
private val podImportTaskName = ":$POD_IMPORT_TASK_NAME"
|
||||||
private val podInstallTaskName = ":$POD_INSTALL_TASK_NAME"
|
private val podInstallTaskName = ":$POD_INSTALL_TASK_NAME"
|
||||||
|
|
||||||
private val defaultPodRepo = "https://github.com/AFNetworking/AFNetworking"
|
|
||||||
private val defaultPodName = "AFNetworking"
|
private val defaultPodName = "AFNetworking"
|
||||||
private val defaultFamily = "ios"
|
|
||||||
private val defaultPodGenTaskName = podGenFullTaskName()
|
|
||||||
private val defaultPodInstallSyntheticTaskName = ":podInstallSyntheticIos"
|
private val defaultPodInstallSyntheticTaskName = ":podInstallSyntheticIos"
|
||||||
|
|
||||||
private fun podGenFullTaskName(familyName: String = defaultFamily) =
|
|
||||||
podGenTaskName + familyName.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
|
|
||||||
|
|
||||||
private lateinit var hooks: CustomHooks
|
private lateinit var hooks: CustomHooks
|
||||||
private lateinit var project: BaseGradleIT.Project
|
private lateinit var project: BaseGradleIT.Project
|
||||||
|
|
||||||
@@ -111,17 +102,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
project.testSynthetic(":second-library:podImport")
|
project.testSynthetic(":second-library:podImport")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testSpecReposImport() {
|
|
||||||
val podName = "example"
|
|
||||||
val podRepo = "https://github.com/alozhkin/spec_repo"
|
|
||||||
with(project.gradleBuildScript()) {
|
|
||||||
addPod(podName)
|
|
||||||
addSpecRepo(podRepo)
|
|
||||||
}
|
|
||||||
project.testImportWithAsserts(listOf(podRepo))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testSyntheticProjectPodfileGeneration() {
|
fun testSyntheticProjectPodfileGeneration() {
|
||||||
val gradleProject = transformProjectWithPluginsDsl(cocoapodsSingleKtPod, gradleVersion)
|
val gradleProject = transformProjectWithPluginsDsl(cocoapodsSingleKtPod, gradleVersion)
|
||||||
@@ -251,6 +231,7 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
project.testImport()
|
project.testImport()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testChangeFrameworkTypeUTD() {
|
fun testChangeFrameworkTypeUTD() {
|
||||||
project.gradleBuildScript().appendToCocoapodsBlock(
|
project.gradleBuildScript().appendToCocoapodsBlock(
|
||||||
@@ -290,26 +271,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
project.testImport()
|
project.testImport()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testSpecReposUTD() {
|
|
||||||
with(project.gradleBuildScript()) {
|
|
||||||
addPod("AFNetworking")
|
|
||||||
}
|
|
||||||
hooks.addHook {
|
|
||||||
assertTasksExecuted(defaultPodGenTaskName)
|
|
||||||
}
|
|
||||||
project.testSynthetic(defaultPodGenTaskName)
|
|
||||||
with(project.gradleBuildScript()) {
|
|
||||||
addSpecRepo("https://github.com/alozhkin/spec_repo_example.git")
|
|
||||||
}
|
|
||||||
project.testSynthetic(defaultPodGenTaskName)
|
|
||||||
hooks.rewriteHooks {
|
|
||||||
assertTasksUpToDate(defaultPodGenTaskName)
|
|
||||||
}
|
|
||||||
project.testSynthetic(defaultPodGenTaskName)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testPodInstallInvalidatesUTD() {
|
fun testPodInstallInvalidatesUTD() {
|
||||||
with(project.gradleBuildScript()) {
|
with(project.gradleBuildScript()) {
|
||||||
@@ -328,15 +289,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
project.testSynthetic(defaultPodInstallSyntheticTaskName)
|
project.testSynthetic(defaultPodInstallSyntheticTaskName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testImportSubspecs() {
|
|
||||||
with(project.gradleBuildScript()) {
|
|
||||||
addPod("SDWebImage/Core")
|
|
||||||
addPod("SDWebImage/MapKit")
|
|
||||||
}
|
|
||||||
project.testImport(listOf(defaultPodRepo))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testUTDPodspec() {
|
fun testUTDPodspec() {
|
||||||
project.testWithWrapper(podspecTaskName)
|
project.testWithWrapper(podspecTaskName)
|
||||||
@@ -378,9 +330,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
project.testSynthetic(podInstallTaskName)
|
project.testSynthetic(podInstallTaskName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// other tests
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun supportPodsWithDependencies() {
|
fun supportPodsWithDependencies() {
|
||||||
with(project.gradleBuildScript()) {
|
with(project.gradleBuildScript()) {
|
||||||
@@ -420,31 +369,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testUseLibrariesMode() {
|
|
||||||
with(project) {
|
|
||||||
gradleBuildScript().appendToCocoapodsBlock("useLibraries()")
|
|
||||||
gradleBuildScript().addPod("AFNetworking", configuration = "headers = \"AFNetworking/AFNetworking.h\"")
|
|
||||||
testImport()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testUseLibrariesModeWarnWhenPodIsAddedWithoutHeadersSpecified() {
|
|
||||||
with(project) {
|
|
||||||
gradleBuildScript().appendToCocoapodsBlock("useLibraries()")
|
|
||||||
gradleBuildScript().addPod("AFNetworking")
|
|
||||||
|
|
||||||
hooks.addHook {
|
|
||||||
assertContains("w: Pod 'AFNetworking' should have 'headers' property specified when using 'useLibraries()'")
|
|
||||||
}
|
|
||||||
|
|
||||||
testImport()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testCocoapodsWithRegularFrameworkDefinition() {
|
fun testCocoapodsWithRegularFrameworkDefinition() {
|
||||||
with(project) {
|
with(project) {
|
||||||
@@ -906,7 +830,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun Project.testImportWithAsserts(
|
private fun Project.testImportWithAsserts(
|
||||||
repos: List<String> = listOf(),
|
repos: List<String> = listOf(),
|
||||||
vararg args: String,
|
vararg args: String,
|
||||||
@@ -965,7 +888,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
appendToCocoapodsBlock(podBlock)
|
appendToCocoapodsBlock(podBlock)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun File.addSpecRepo(specRepo: String) = appendToCocoapodsBlock("url(\"$specRepo\")".wrap("specRepos"))
|
|
||||||
|
|
||||||
private fun File.appendToKotlinBlock(str: String) = appendLine(str.wrap("kotlin"))
|
private fun File.appendToKotlinBlock(str: String) = appendLine(str.wrap("kotlin"))
|
||||||
|
|
||||||
@@ -980,8 +902,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
""".trimMargin()
|
""".trimMargin()
|
||||||
|
|
||||||
private fun File.appendLine(s: String) = appendText("\n$s")
|
private fun File.appendLine(s: String) = appendText("\n$s")
|
||||||
|
|
||||||
|
|
||||||
// proposition phase
|
// proposition phase
|
||||||
|
|
||||||
private fun isRepoAvailable(repo: String): Boolean {
|
private fun isRepoAvailable(repo: String): Boolean {
|
||||||
@@ -1022,12 +942,12 @@ class CocoaPodsIT : BaseGradleIT() {
|
|||||||
} else {
|
} else {
|
||||||
assertTasksSkipped("$taskPrefix:$podInstall")
|
assertTasksSkipped("$taskPrefix:$podInstall")
|
||||||
}
|
}
|
||||||
assertTasksRegisteredByPrefix(listOf("$taskPrefix:$POD_GEN_TASK_NAME"))
|
assertTasksRegisteredByPrefix(listOf("$taskPrefix:${KotlinCocoapodsPlugin.POD_GEN_TASK_NAME}"))
|
||||||
if (buildScriptText.matches("pod\\(.*\\)".toRegex())) {
|
if (buildScriptText.matches("pod\\(.*\\)".toRegex())) {
|
||||||
assertTasksExecutedByPrefix(listOf("$taskPrefix:$POD_GEN_TASK_NAME"))
|
assertTasksExecutedByPrefix(listOf("$taskPrefix:${KotlinCocoapodsPlugin.POD_GEN_TASK_NAME}"))
|
||||||
}
|
}
|
||||||
|
|
||||||
with(listOf(POD_SETUP_BUILD_TASK_NAME, POD_BUILD_TASK_NAME).map { "$taskPrefix:$it" }) {
|
with(listOf(KotlinCocoapodsPlugin.POD_SETUP_BUILD_TASK_NAME, KotlinCocoapodsPlugin.POD_BUILD_TASK_NAME).map { "$taskPrefix:$it" }) {
|
||||||
if (buildScriptText.matches("pod\\(.*\\)".toRegex())) {
|
if (buildScriptText.matches("pod\\(.*\\)".toRegex())) {
|
||||||
assertTasksRegisteredByPrefix(this)
|
assertTasksRegisteredByPrefix(this)
|
||||||
assertTasksExecutedByPrefix(this)
|
assertTasksExecutedByPrefix(this)
|
||||||
|
|||||||
Reference in New Issue
Block a user