Skip to content

Commit 229558c

Browse files
authored
Add tests for parsing PHOTO in vCard3 and vCard4 (#171)
- Add test for PHOTO binary encoding (vCard3) - Add test for PHOTO data URI (vCard3) - Add test for PHOTO data URI (vCard4)
1 parent aa9829f commit 229558c

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed

lib/src/test/kotlin/at/bitfire/vcard4android/EzVCardTest.kt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ import ezvcard.Ezvcard
1010
import ezvcard.VCard
1111
import ezvcard.VCardVersion
1212
import ezvcard.property.Address
13-
import org.junit.Assert.*
13+
import org.junit.Assert.assertArrayEquals
14+
import org.junit.Assert.assertEquals
15+
import org.junit.Assert.assertNotNull
16+
import org.junit.Assert.assertNull
17+
import org.junit.Assert.assertTrue
1418
import org.junit.Test
1519

1620
class EzVCardTest {
@@ -25,6 +29,38 @@ class EzVCardTest {
2529
assertTrue(vCard.kind.isGroup)
2630
}
2731

32+
@Test
33+
fun `Parse PHOTO binary encoding (vCard3)`() {
34+
val vCard = Ezvcard.parse("BEGIN:VCARD\r\n" +
35+
"VERSION:3.0\r\n" +
36+
"PHOTO;ENCODING=b;TYPE=JPEG:dGVzdA==\r\n" +
37+
"END:VCARD").first()
38+
// decodes binary data
39+
assertArrayEquals("test".toByteArray(), vCard.photos.first().data)
40+
}
41+
42+
@Test
43+
fun `Parse PHOTO data URI (vCard3)`() {
44+
val vCard = Ezvcard.parse("BEGIN:VCARD\r\n" +
45+
"VERSION:3.0\r\n" +
46+
"PHOTO;VALUE=uri:data:image/png;base64,dGVzdA==\r\n" +
47+
"END:VCARD").first()
48+
val photo = vCard.photos.first()
49+
// Somehow unexpected: returns a data URI and doesn't decode it
50+
assertEquals("data:image/png;base64,dGVzdA==", photo.url)
51+
assertNull(photo.data)
52+
}
53+
54+
@Test
55+
fun `Parse PHOTO data URI (vCard4)`() {
56+
val vCard = Ezvcard.parse("BEGIN:VCARD\r\n" +
57+
"VERSION:4.0\r\n" +
58+
"PHOTO:data:image/png;base64,dGVzdA==\r\n" +
59+
"END:VCARD").first()
60+
// decodes data URI
61+
assertArrayEquals("test".toByteArray(), vCard.photos.first().data)
62+
}
63+
2864
@Test
2965
fun testREV_UTC() {
3066
val vCard = Ezvcard.parse("BEGIN:VCARD\r\n" +

0 commit comments

Comments
 (0)