Browse Source
Fixes https://youtrack.jetbrains.com/issue/CMP-6688 ## Testing Added a unit test. <!-- Optional --> This should be tested by QA ## Release Notes ### Fixes - Resources - Read `android:autoMirrored="true"` property and pass it to ImageVector builderpull/5143/head
Oleksandr Karpovich
2 months ago
committed by
GitHub
2 changed files with 57 additions and 1 deletions
@ -0,0 +1,55 @@
|
||||
package org.jetbrains.compose.resources.vector |
||||
|
||||
import androidx.compose.ui.unit.Density |
||||
import androidx.compose.ui.unit.dp |
||||
import org.jetbrains.compose.resources.decodeToImageVector |
||||
import kotlin.test.Test |
||||
import kotlin.test.assertEquals |
||||
import kotlin.test.assertFalse |
||||
import kotlin.test.assertTrue |
||||
|
||||
class XmlVectorParserTest { |
||||
|
||||
|
||||
private val arrowVector1 = """ |
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:width="32dp" |
||||
android:autoMirrored="true" |
||||
android:height="32dp" |
||||
android:viewportWidth="32" |
||||
android:viewportHeight="32"> |
||||
<path |
||||
android:pathData="M2.667,17.333H26.115L21.724,21.724C21.203,22.245 21.203,23.089 21.724,23.609C21.985,23.87 22.325,24 22.667,24C23.008,24 23.349,23.87 23.609,23.609L30.276,16.943C30.526,16.693 30.667,16.354 30.667,16C30.667,15.646 30.526,15.307 30.276,15.057L23.609,8.391C23.089,7.87 22.245,7.87 21.724,8.391C21.203,8.911 21.203,9.755 21.724,10.276L26.115,14.667H2.667C1.931,14.667 1.333,15.264 1.333,16C1.333,16.736 1.931,17.333 2.667,17.333Z" |
||||
android:fillColor="#ffffff" /> |
||||
</vector> |
||||
""".trimIndent().encodeToByteArray() |
||||
|
||||
private val arrowVector2 = """ |
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:width="40dp" |
||||
android:height="30dp" |
||||
android:viewportWidth="36" |
||||
android:viewportHeight="24"> |
||||
<path |
||||
android:pathData="M2.667,17.333H26.115L21.724,21.724C21.203,22.245 21.203,23.089 21.724,23.609C21.985,23.87 22.325,24 22.667,24C23.008,24 23.349,23.87 23.609,23.609L30.276,16.943C30.526,16.693 30.667,16.354 30.667,16C30.667,15.646 30.526,15.307 30.276,15.057L23.609,8.391C23.089,7.87 22.245,7.87 21.724,8.391C21.203,8.911 21.203,9.755 21.724,10.276L26.115,14.667H2.667C1.931,14.667 1.333,15.264 1.333,16C1.333,16.736 1.931,17.333 2.667,17.333Z" |
||||
android:fillColor="#ffffff" /> |
||||
</vector> |
||||
""".trimIndent().encodeToByteArray() |
||||
|
||||
@Test |
||||
fun canDecodeToImageVector() { |
||||
val iv = arrowVector1.decodeToImageVector(Density(1f)) |
||||
assertEquals(iv.viewportWidth, 32f) |
||||
assertEquals(iv.viewportHeight, 32f) |
||||
assertEquals(iv.defaultWidth, 32.dp) |
||||
assertEquals(iv.defaultHeight, 32.dp) |
||||
assertTrue(iv.autoMirror) |
||||
|
||||
val iv2 = arrowVector2.decodeToImageVector(Density(1f)) |
||||
assertEquals(iv2.viewportWidth, 36f) |
||||
assertEquals(iv2.viewportHeight, 24f) |
||||
assertEquals(iv2.defaultWidth, 40.dp) |
||||
assertEquals(iv2.defaultHeight, 30.dp) |
||||
assertFalse(iv2.autoMirror) |
||||
} |
||||
} |
Loading…
Reference in new issue