You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
4.7 KiB
118 lines
4.7 KiB
package org.jetbrains.compose.test.tests.integration |
|
|
|
import org.jetbrains.compose.test.utils.GradlePluginTestBase |
|
import org.jetbrains.compose.test.utils.assertEqualTextFiles |
|
import org.jetbrains.compose.test.utils.assertNotEqualTextFiles |
|
import org.jetbrains.compose.test.utils.checks |
|
import org.junit.jupiter.api.Test |
|
import kotlin.io.path.Path |
|
|
|
class ResourcesTest : GradlePluginTestBase() { |
|
@Test |
|
fun testGeneratedAccessorsAndCopiedFonts() = with(testProject("misc/commonResources")) { |
|
//check generated resource's accessors |
|
gradle("generateComposeResClass").checks { |
|
assertEqualTextFiles( |
|
file("build/generated/compose/resourceGenerator/kotlin/app/group/generated/resources/Res.kt"), |
|
file("expected/Res.kt") |
|
) |
|
} |
|
|
|
//check resource's accessors were regenerated |
|
file("src/commonMain/resources/composeResources/drawable/vector_2.xml").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable/vector_3.xml") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
assertNotEqualTextFiles( |
|
file("build/generated/compose/resourceGenerator/kotlin/app/group/generated/resources/Res.kt"), |
|
file("expected/Res.kt") |
|
) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/drawable-en").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable-ren") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
contains unknown qualifier: 'ren'. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/drawable-ren").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable-rUS-en") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
Region qualifier must be declared after language: 'en-rUS'. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/drawable-rUS-en").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable-rUS") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
Region qualifier must be used only with language. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/drawable-rUS").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable-en-fr") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
contains repetitive qualifiers: 'en' and 'fr'. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/drawable-en-fr").renameTo( |
|
file("src/commonMain/resources/composeResources/image") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
Unknown resource type: 'image' |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/image").renameTo( |
|
file("src/commonMain/resources/composeResources/files-de") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
The 'files' directory doesn't support qualifiers: 'files-de'. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/files-de").renameTo( |
|
file("src/commonMain/resources/composeResources/strings") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
Unknown resource type: 'strings'. |
|
""".trimIndent()) |
|
} |
|
|
|
file("src/commonMain/resources/composeResources/strings").renameTo( |
|
file("src/commonMain/resources/composeResources/string-us") |
|
) |
|
gradle("generateComposeResClass").checks { |
|
check.logContains(""" |
|
Forbidden directory name 'string-us'! String resources should be declared in 'values/strings.xml'. |
|
""".trimIndent()) |
|
} |
|
|
|
//restore defaults |
|
file("src/commonMain/resources/composeResources/string-us").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable-en") |
|
) |
|
file("src/commonMain/resources/composeResources/drawable/vector_3.xml").renameTo( |
|
file("src/commonMain/resources/composeResources/drawable/vector_2.xml") |
|
) |
|
|
|
//TODO: check a real build after a release a new version of the resources library |
|
//because generated accessors depend on classes from the new version |
|
gradle("assembleDebug", "--dry-run").checks { |
|
check.taskSkipped("copyFontsToAndroidAssets") |
|
} |
|
} |
|
} |