[Gradle, Test] Check gradle entity names for turkish 'I' or 'ı'
^KT-38712
This commit is contained in:
committed by
Space Team
parent
3592c87abf
commit
7ef858b2fe
+41
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.attributes.AttributeContainer
|
import org.gradle.api.attributes.AttributeContainer
|
||||||
import org.gradle.api.attributes.Category
|
import org.gradle.api.attributes.Category
|
||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
@@ -20,9 +21,12 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.targets
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
|
import java.util.Locale
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertNotNull
|
import kotlin.test.assertNotNull
|
||||||
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
class ConfigurationsTest : MultiplatformExtensionTest() {
|
class ConfigurationsTest : MultiplatformExtensionTest() {
|
||||||
|
|
||||||
@@ -369,4 +373,41 @@ class ConfigurationsTest : MultiplatformExtensionTest() {
|
|||||||
project.dependencies.enforcedPlatform("test:enforced-platform-dependency")
|
project.dependencies.enforcedPlatform("test:enforced-platform-dependency")
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests verifies only turkish letters 'İ' and 'ı' because only with turkish locale ASCII letters 'i' and 'I' are
|
||||||
|
* capitalised/decapitalised to non-ascii letters.
|
||||||
|
* It was discovered using code that iterates over all ascii chars and available JVM locales
|
||||||
|
* and checks their capitalisation/decapitalisation behavior.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
fun `gradle entities should have correct names when default locale is turkish`() {
|
||||||
|
Locale.setDefault(Locale("tr", "TR"))
|
||||||
|
|
||||||
|
val project = buildProjectWithMPP {
|
||||||
|
kotlin {
|
||||||
|
jvm()
|
||||||
|
ios()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
project.evaluate()
|
||||||
|
|
||||||
|
val gradleEntityNames: List<String> = with (project) {
|
||||||
|
listOf(
|
||||||
|
tasks.names,
|
||||||
|
configurations.names,
|
||||||
|
components.names,
|
||||||
|
extensions.asMap.keys,
|
||||||
|
kotlin.sourceSets.names,
|
||||||
|
kotlin.targets.names,
|
||||||
|
).flatten()
|
||||||
|
}
|
||||||
|
|
||||||
|
val entityNamesWithTurkishI = gradleEntityNames.filter { it.contains('İ') || it.contains('ı') }
|
||||||
|
assertTrue(
|
||||||
|
entityNamesWithTurkishI.isEmpty(),
|
||||||
|
"Following entities should not have turkish 'İ' or 'ı' in their names:\n" +
|
||||||
|
entityNamesWithTurkishI.joinToString("\n")
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user