Skip to content

Commit 1892dba

Browse files
committed
Handle Windows in the test
1 parent 81524ae commit 1892dba

11 files changed

Lines changed: 407 additions & 1 deletion

File tree

gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,18 @@ class ResourcesTest : GradlePluginTestBase() {
582582
fun testGeneratedAccessorsAnnotatedWithResourceContentHash(): Unit = with(testProject("misc/commonResources")) {
583583
//check generated resource's accessors
584584
gradle("prepareKotlinIdeaImport", "-Dcompose.resources.generate.ResourceContentHash.annotation=true").checks {
585+
val expected = if (System.getProperty("os.name").lowercase().contains("windows")) {
586+
// Windows has different line endings in comparison with Unixes,
587+
// thus the XML resource files differ and produce different content hashes,
588+
// so we have different test data for it.
589+
file("expected-with-hash-windows")
590+
} else {
591+
file("expected-with-hash")
592+
}
593+
585594
assertDirectoriesContentEquals(
586595
file("build/generated/compose/resourceGenerator/kotlin"),
587-
file("expected-with-hash")
596+
expected
588597
)
589598
}
590599
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.InternalResourceApi
9+
import org.jetbrains.compose.resources.ResourceContentHash
10+
import org.jetbrains.compose.resources.ResourceItem
11+
import org.jetbrains.compose.resources.StringResource
12+
13+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
14+
15+
@delegate:ResourceContentHash(50_967_853)
16+
internal val Res.string.android_str: StringResource by lazy {
17+
StringResource("string:android_str", "android_str", setOf(
18+
ResourceItem(setOf(), "${MD}values/strings.androidMain.cvr", 10, 39),
19+
))
20+
}
21+
22+
@InternalResourceApi
23+
internal fun _collectAndroidMainString0Resources(map: MutableMap<String, StringResource>) {
24+
map.put("android_str", Res.string.android_str)
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
@file:OptIn(org.jetbrains.compose.resources.InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.Map
8+
import org.jetbrains.compose.resources.DrawableResource
9+
import org.jetbrains.compose.resources.FontResource
10+
import org.jetbrains.compose.resources.PluralStringResource
11+
import org.jetbrains.compose.resources.StringArrayResource
12+
import org.jetbrains.compose.resources.StringResource
13+
14+
internal actual val Res.allDrawableResources: Map<String, DrawableResource> by lazy {
15+
val map = mutableMapOf<String, DrawableResource>()
16+
_collectCommonMainDrawable0Resources(map)
17+
return@lazy map
18+
}
19+
20+
internal actual val Res.allStringResources: Map<String, StringResource> by lazy {
21+
val map = mutableMapOf<String, StringResource>()
22+
_collectAndroidMainString0Resources(map)
23+
_collectCommonMainString0Resources(map)
24+
return@lazy map
25+
}
26+
27+
internal actual val Res.allStringArrayResources: Map<String, StringArrayResource> by lazy {
28+
val map = mutableMapOf<String, StringArrayResource>()
29+
return@lazy map
30+
}
31+
32+
internal actual val Res.allPluralStringResources: Map<String, PluralStringResource> by lazy {
33+
val map = mutableMapOf<String, PluralStringResource>()
34+
_collectCommonMainPlurals0Resources(map)
35+
return@lazy map
36+
}
37+
38+
internal actual val Res.allFontResources: Map<String, FontResource> by lazy {
39+
val map = mutableMapOf<String, FontResource>()
40+
_collectCommonMainFont0Resources(map)
41+
return@lazy map
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.DrawableResource
9+
import org.jetbrains.compose.resources.InternalResourceApi
10+
import org.jetbrains.compose.resources.LanguageQualifier
11+
import org.jetbrains.compose.resources.RegionQualifier
12+
import org.jetbrains.compose.resources.ResourceContentHash
13+
import org.jetbrains.compose.resources.ResourceItem
14+
import org.jetbrains.compose.resources.ThemeQualifier
15+
16+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
17+
18+
@delegate:ResourceContentHash(-1_453_679_588)
19+
internal val Res.drawable._3_strange_name: DrawableResource by lazy {
20+
DrawableResource("drawable:_3_strange_name", setOf(
21+
ResourceItem(setOf(), "${MD}drawable/3-strange-name.xml", -1, -1),
22+
))
23+
}
24+
25+
@delegate:ResourceContentHash(-1_453_679_588)
26+
internal val Res.drawable.camelCaseName: DrawableResource by lazy {
27+
DrawableResource("drawable:camelCaseName", setOf(
28+
ResourceItem(setOf(), "${MD}drawable/camelCaseName.xml", -1, -1),
29+
))
30+
}
31+
32+
@delegate:ResourceContentHash(-1_453_679_588)
33+
internal val Res.drawable.`is`: DrawableResource by lazy {
34+
DrawableResource("drawable:is", setOf(
35+
ResourceItem(setOf(), "${MD}drawable/is.xml", -1, -1),
36+
))
37+
}
38+
39+
@delegate:ResourceContentHash(-737_454_820)
40+
internal val Res.drawable.vector: DrawableResource by lazy {
41+
DrawableResource("drawable:vector", setOf(
42+
ResourceItem(setOf(LanguageQualifier("ast"), ), "${MD}drawable-ast/vector.xml", -1, -1),
43+
ResourceItem(setOf(LanguageQualifier("au"), RegionQualifier("US"), ), "${MD}drawable-au-rUS/vector.xml", -1, -1),
44+
ResourceItem(setOf(ThemeQualifier.DARK, LanguageQualifier("ge"), ), "${MD}drawable-dark-ge/vector.xml", -1, -1),
45+
ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}drawable-en/vector.xml", -1, -1),
46+
ResourceItem(setOf(), "${MD}drawable/vector.xml", -1, -1),
47+
))
48+
}
49+
50+
@delegate:ResourceContentHash(-1_453_679_588)
51+
internal val Res.drawable.vector_2: DrawableResource by lazy {
52+
DrawableResource("drawable:vector_2", setOf(
53+
ResourceItem(setOf(), "${MD}drawable/vector_2.xml", -1, -1),
54+
))
55+
}
56+
57+
@InternalResourceApi
58+
internal fun _collectCommonMainDrawable0Resources(map: MutableMap<String, DrawableResource>) {
59+
map.put("_3_strange_name", Res.drawable._3_strange_name)
60+
map.put("camelCaseName", Res.drawable.camelCaseName)
61+
map.put("is", Res.drawable.`is`)
62+
map.put("vector", Res.drawable.vector)
63+
map.put("vector_2", Res.drawable.vector_2)
64+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.FontResource
9+
import org.jetbrains.compose.resources.InternalResourceApi
10+
import org.jetbrains.compose.resources.LanguageQualifier
11+
import org.jetbrains.compose.resources.ResourceContentHash
12+
import org.jetbrains.compose.resources.ResourceItem
13+
14+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
15+
16+
@delegate:ResourceContentHash(1_893_715_104)
17+
internal val Res.font.emptyFont: FontResource by lazy {
18+
FontResource("font:emptyFont", setOf(
19+
ResourceItem(setOf(LanguageQualifier("en"), ), "${MD}font-en/emptyFont.otf", -1, -1),
20+
ResourceItem(setOf(), "${MD}font/emptyFont.otf", -1, -1),
21+
))
22+
}
23+
24+
@InternalResourceApi
25+
internal fun _collectCommonMainFont0Resources(map: MutableMap<String, FontResource>) {
26+
map.put("emptyFont", Res.font.emptyFont)
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.InternalResourceApi
9+
import org.jetbrains.compose.resources.PluralStringResource
10+
import org.jetbrains.compose.resources.ResourceContentHash
11+
import org.jetbrains.compose.resources.ResourceItem
12+
13+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
14+
15+
@delegate:ResourceContentHash(-199_361_196)
16+
internal val Res.plurals.numberOfSongsAvailable: PluralStringResource by lazy {
17+
PluralStringResource("plurals:numberOfSongsAvailable", "numberOfSongsAvailable", setOf(
18+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 10, 124),
19+
))
20+
}
21+
22+
@InternalResourceApi
23+
internal fun _collectCommonMainPlurals0Resources(map: MutableMap<String, PluralStringResource>) {
24+
map.put("numberOfSongsAvailable", Res.plurals.numberOfSongsAvailable)
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.InternalResourceApi
9+
import org.jetbrains.compose.resources.ResourceContentHash
10+
import org.jetbrains.compose.resources.ResourceItem
11+
import org.jetbrains.compose.resources.StringResource
12+
13+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
14+
15+
@delegate:ResourceContentHash(405_464_824)
16+
internal val Res.string.PascalCase: StringResource by lazy {
17+
StringResource("string:PascalCase", "PascalCase", setOf(
18+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 172, 34),
19+
))
20+
}
21+
22+
@delegate:ResourceContentHash(-1_118_290_776)
23+
internal val Res.string._1_kebab_case: StringResource by lazy {
24+
StringResource("string:_1_kebab_case", "_1_kebab_case", setOf(
25+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 135, 36),
26+
))
27+
}
28+
29+
@delegate:ResourceContentHash(64_828_505)
30+
internal val Res.string.app_name: StringResource by lazy {
31+
StringResource("string:app_name", "app_name", setOf(
32+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 207, 44),
33+
))
34+
}
35+
36+
@delegate:ResourceContentHash(211_426_861)
37+
internal val Res.string.camelCase: StringResource by lazy {
38+
StringResource("string:camelCase", "camelCase", setOf(
39+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 252, 29),
40+
))
41+
}
42+
43+
@delegate:ResourceContentHash(466_457_346)
44+
internal val Res.string.hello: StringResource by lazy {
45+
StringResource("string:hello", "hello", setOf(
46+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 282, 37),
47+
))
48+
}
49+
50+
@delegate:ResourceContentHash(-1_288_591_563)
51+
internal val Res.string.`info_using_release_$x`: StringResource by lazy {
52+
StringResource("string:info_using_release_${'$'}x", "info_using_release_${'$'}x", setOf(
53+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 320, 57),
54+
))
55+
}
56+
57+
@delegate:ResourceContentHash(-624_025_575)
58+
internal val Res.string.multi_line: StringResource by lazy {
59+
StringResource("string:multi_line", "multi_line", setOf(
60+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 378, 178),
61+
))
62+
}
63+
64+
@delegate:ResourceContentHash(-1_332_636_786)
65+
internal val Res.string.str_template: StringResource by lazy {
66+
StringResource("string:str_template", "str_template", setOf(
67+
ResourceItem(setOf(), "${MD}values/strings.commonMain.cvr", 557, 76),
68+
))
69+
}
70+
71+
@InternalResourceApi
72+
internal fun _collectCommonMainString0Resources(map: MutableMap<String, StringResource>) {
73+
map.put("PascalCase", Res.string.PascalCase)
74+
map.put("_1_kebab_case", Res.string._1_kebab_case)
75+
map.put("app_name", Res.string.app_name)
76+
map.put("camelCase", Res.string.camelCase)
77+
map.put("hello", Res.string.hello)
78+
map.put("info_using_release_${'$'}x", Res.string.`info_using_release_$x`)
79+
map.put("multi_line", Res.string.multi_line)
80+
map.put("str_template", Res.string.str_template)
81+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package app.group.resources_test.generated.resources
2+
3+
import kotlin.String
4+
import kotlin.collections.Map
5+
import org.jetbrains.compose.resources.DrawableResource
6+
import org.jetbrains.compose.resources.FontResource
7+
import org.jetbrains.compose.resources.PluralStringResource
8+
import org.jetbrains.compose.resources.StringArrayResource
9+
import org.jetbrains.compose.resources.StringResource
10+
11+
internal expect val Res.allDrawableResources: Map<String, DrawableResource>
12+
13+
internal expect val Res.allStringResources: Map<String, StringResource>
14+
15+
internal expect val Res.allStringArrayResources: Map<String, StringArrayResource>
16+
17+
internal expect val Res.allPluralStringResources: Map<String, PluralStringResource>
18+
19+
internal expect val Res.allFontResources: Map<String, FontResource>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
@file:Suppress(
3+
"RedundantVisibilityModifier",
4+
"REDUNDANT_VISIBILITY_MODIFIER",
5+
)
6+
7+
package app.group.resources_test.generated.resources
8+
9+
import kotlin.ByteArray
10+
import kotlin.OptIn
11+
import kotlin.String
12+
import kotlin.Suppress
13+
import org.jetbrains.compose.resources.InternalResourceApi
14+
import org.jetbrains.compose.resources.getResourceUri
15+
import org.jetbrains.compose.resources.readResourceBytes
16+
17+
internal object Res {
18+
/**
19+
* Reads the content of the resource file at the specified path and returns it as a byte array.
20+
*
21+
* Example: `val bytes = Res.readBytes("files/key.bin")`
22+
*
23+
* @param path The path of the file to read in the compose resource's directory.
24+
* @return The content of the file as a byte array.
25+
*/
26+
public suspend fun readBytes(path: String): ByteArray = readResourceBytes("composeResources/app.group.resources_test.generated.resources/" + path)
27+
28+
/**
29+
* Returns the URI string of the resource file at the specified path.
30+
*
31+
* Example: `val uri = Res.getUri("files/key.bin")`
32+
*
33+
* @param path The path of the file in the compose resource's directory.
34+
* @return The URI string of the file.
35+
*/
36+
public fun getUri(path: String): String = getResourceUri("composeResources/app.group.resources_test.generated.resources/" + path)
37+
38+
public object drawable
39+
40+
public object string
41+
42+
public object array
43+
44+
public object plurals
45+
46+
public object font
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@file:OptIn(InternalResourceApi::class)
2+
3+
package app.group.resources_test.generated.resources
4+
5+
import kotlin.OptIn
6+
import kotlin.String
7+
import kotlin.collections.MutableMap
8+
import org.jetbrains.compose.resources.InternalResourceApi
9+
import org.jetbrains.compose.resources.ResourceContentHash
10+
import org.jetbrains.compose.resources.ResourceItem
11+
import org.jetbrains.compose.resources.StringResource
12+
13+
private const val MD: String = "composeResources/app.group.resources_test.generated.resources/"
14+
15+
@delegate:ResourceContentHash(-320_376_586)
16+
internal val Res.string.desktop_str: StringResource by lazy {
17+
StringResource("string:desktop_str", "desktop_str", setOf(
18+
ResourceItem(setOf(), "${MD}values/desktop_strings.desktopMain.cvr", 10, 39),
19+
))
20+
}
21+
22+
@InternalResourceApi
23+
internal fun _collectDesktopMainString0Resources(map: MutableMap<String, StringResource>) {
24+
map.put("desktop_str", Res.string.desktop_str)
25+
}

0 commit comments

Comments
 (0)