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 anotherPodRepo = "https://github.com/Alamofire/Alamofire"
|
||||
buildGradleKts.addPod(anotherPodName, produceGitBlock(anotherPodRepo))
|
||||
testImport(listOf(defaultPodRepo, anotherPodRepo)) {
|
||||
testImport(repos = listOf(defaultPodRepo, anotherPodRepo)) {
|
||||
|
||||
assertTasksExecuted(
|
||||
podspecTaskName,
|
||||
@@ -312,7 +312,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Pod Build UTD after clean")
|
||||
@DisplayName("Pod Build is not UTD after clean")
|
||||
@GradleTest
|
||||
fun testPodBuildUTDClean(gradleVersion: GradleVersion) {
|
||||
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
|
||||
@@ -403,7 +403,74 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
||||
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(
|
||||
@@ -423,7 +490,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
||||
val buildScript = if (isGradleBuildScript) buildGradle else buildGradleKts
|
||||
buildScript.addPod(pod, produceGitBlock(repo, branch, commit, tag))
|
||||
|
||||
testImport(listOf(repo)) {
|
||||
testImport(repos = listOf(repo)) {
|
||||
podImportAsserts(buildScript)
|
||||
testImportAssertions()
|
||||
}
|
||||
@@ -493,6 +560,7 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
||||
}
|
||||
|
||||
private fun TestProject.testImport(
|
||||
taskName: String = podImportTaskName,
|
||||
repos: List<String> = listOf(defaultPodRepo),
|
||||
vararg args: String,
|
||||
assertions: BuildResult.() -> Unit = {},
|
||||
@@ -500,10 +568,8 @@ class CocoaPodsGitIT : KGPBaseTest() {
|
||||
|
||||
isRepoAvailable(repos)
|
||||
|
||||
build(podImportTaskName, *args) {
|
||||
build(taskName, *args) {
|
||||
assertions()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+5
-85
@@ -6,12 +6,10 @@
|
||||
package org.jetbrains.kotlin.gradle.native
|
||||
|
||||
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.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_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.testbase.ImportMode
|
||||
import org.jetbrains.kotlin.gradle.testbase.cocoaPodsEnvironmentVariables
|
||||
@@ -54,19 +52,12 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
|
||||
private val dummyTaskName = ":$DUMMY_FRAMEWORK_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 podInstallTaskName = ":$POD_INSTALL_TASK_NAME"
|
||||
|
||||
private val defaultPodRepo = "https://github.com/AFNetworking/AFNetworking"
|
||||
private val defaultPodName = "AFNetworking"
|
||||
private val defaultFamily = "ios"
|
||||
private val defaultPodGenTaskName = podGenFullTaskName()
|
||||
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 project: BaseGradleIT.Project
|
||||
|
||||
@@ -111,17 +102,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
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
|
||||
fun testSyntheticProjectPodfileGeneration() {
|
||||
val gradleProject = transformProjectWithPluginsDsl(cocoapodsSingleKtPod, gradleVersion)
|
||||
@@ -251,6 +231,7 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
project.testImport()
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testChangeFrameworkTypeUTD() {
|
||||
project.gradleBuildScript().appendToCocoapodsBlock(
|
||||
@@ -290,26 +271,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
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
|
||||
fun testPodInstallInvalidatesUTD() {
|
||||
with(project.gradleBuildScript()) {
|
||||
@@ -328,15 +289,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
project.testSynthetic(defaultPodInstallSyntheticTaskName)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testImportSubspecs() {
|
||||
with(project.gradleBuildScript()) {
|
||||
addPod("SDWebImage/Core")
|
||||
addPod("SDWebImage/MapKit")
|
||||
}
|
||||
project.testImport(listOf(defaultPodRepo))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testUTDPodspec() {
|
||||
project.testWithWrapper(podspecTaskName)
|
||||
@@ -378,9 +330,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
project.testSynthetic(podInstallTaskName)
|
||||
}
|
||||
|
||||
|
||||
// other tests
|
||||
|
||||
@Test
|
||||
fun supportPodsWithDependencies() {
|
||||
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
|
||||
fun testCocoapodsWithRegularFrameworkDefinition() {
|
||||
with(project) {
|
||||
@@ -906,7 +830,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun Project.testImportWithAsserts(
|
||||
repos: List<String> = listOf(),
|
||||
vararg args: String,
|
||||
@@ -965,7 +888,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
appendToCocoapodsBlock(podBlock)
|
||||
}
|
||||
|
||||
private fun File.addSpecRepo(specRepo: String) = appendToCocoapodsBlock("url(\"$specRepo\")".wrap("specRepos"))
|
||||
|
||||
private fun File.appendToKotlinBlock(str: String) = appendLine(str.wrap("kotlin"))
|
||||
|
||||
@@ -980,8 +902,6 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
""".trimMargin()
|
||||
|
||||
private fun File.appendLine(s: String) = appendText("\n$s")
|
||||
|
||||
|
||||
// proposition phase
|
||||
|
||||
private fun isRepoAvailable(repo: String): Boolean {
|
||||
@@ -1022,12 +942,12 @@ class CocoaPodsIT : BaseGradleIT() {
|
||||
} else {
|
||||
assertTasksSkipped("$taskPrefix:$podInstall")
|
||||
}
|
||||
assertTasksRegisteredByPrefix(listOf("$taskPrefix:$POD_GEN_TASK_NAME"))
|
||||
assertTasksRegisteredByPrefix(listOf("$taskPrefix:${KotlinCocoapodsPlugin.POD_GEN_TASK_NAME}"))
|
||||
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())) {
|
||||
assertTasksRegisteredByPrefix(this)
|
||||
assertTasksExecutedByPrefix(this)
|
||||
|
||||
Reference in New Issue
Block a user