summaryrefslogtreecommitdiff
path: root/tests/Framework/VCard.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Framework/VCard.php')
-rw-r--r--tests/Framework/VCard.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/Framework/VCard.php b/tests/Framework/VCard.php
index 3353b5b13..c23dba844 100644
--- a/tests/Framework/VCard.php
+++ b/tests/Framework/VCard.php
@@ -79,6 +79,25 @@ class Framework_VCard extends PHPUnit_Framework_TestCase
$this->assertEquals("http://domain.tld", $vcard['website:other'][0], "Decode dummy backslash character");
}
+ /**
+ * Some Apple vCard quirks (#1489993)
+ */
+ function test_parse_six()
+ {
+ $vcard = new rcube_vcard("BEGIN:VCARD\n"
+ . "VERSION:3.0\n"
+ . "N:;;;;\n"
+ . "FN:Apple Computer AG\n"
+ . "ITEM1.ADR;type=WORK;type=pref:;;Birgistrasse 4a;Wallisellen-Zürich;;8304;Switzerland\n"
+ . "PHOTO;ENCODING=B:aHR0cDovL3Rlc3QuY29t\n"
+ . "END:VCARD"
+ );
+
+ $result = $vcard->get_assoc();
+
+ $this->assertCount(1, $result['address:work'], "ITEM1.-prefixed entry");
+ }
+
function test_import()
{
$input = file_get_contents($this->_srcpath('apple.vcf'));
@@ -107,6 +126,22 @@ class Framework_VCard extends PHPUnit_Framework_TestCase
// ENCODING=b case (#1488683)
$this->assertEquals("/9j/4AAQSkZJRgABAQA", substr(base64_encode($vcard['photo']), 0, 19), "Photo decoding");
$this->assertEquals("Müller", $vcard['surname'], "Unicode characters");
+
+ $input = str_replace('ENCODING=b:', 'ENCODING=base64;jpeg:', $input);
+
+ $vcards = rcube_vcard::import($input);
+ $vcard = $vcards[0]->get_assoc();
+
+ // ENCODING=base64 case (#1489977)
+ $this->assertEquals("/9j/4AAQSkZJRgABAQA", substr(base64_encode($vcard['photo']), 0, 19), "Photo decoding");
+
+ $input = str_replace('PHOTO;ENCODING=base64;jpeg:', 'PHOTO:data:image/jpeg;base64,', $input);
+
+ $vcards = rcube_vcard::import($input);
+ $vcard = $vcards[0]->get_assoc();
+
+ // vcard4.0 "PHOTO:data:image/jpeg;base64," case (#1489977)
+ $this->assertEquals("/9j/4AAQSkZJRgABAQA", substr(base64_encode($vcard['photo']), 0, 19), "Photo decoding");
}
function test_encodings()