Page MenuHomePhorge

D5229.1774856371.diff
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

D5229.1774856371.diff

diff --git a/lib/kolab_sync_data_contacts.php b/lib/kolab_sync_data_contacts.php
--- a/lib/kolab_sync_data_contacts.php
+++ b/lib/kolab_sync_data_contacts.php
@@ -192,16 +192,19 @@
$result[$key] = $value;
}
+ $emails = [];
+ foreach ($data as $name => $value) {
+ if (str_starts_with($name, 'email')) {
+ $emails[] = is_array($value) ? $value[0] : $value;
+ continue;
+ }
+ }
+
// email address(es): email1Address, email2Address, email3Address
for ($x = 0; $x < 3; $x++) {
- if (!empty($data['email'][$x])) {
- $email = $data['email'][$x];
- if (is_array($email)) {
- $email = $email['address'];
- }
- if ($email) {
- $result['email' . ($x + 1) . 'Address'] = $email;
- }
+ $email = array_shift($emails);
+ if (!empty($email)) {
+ $result['email' . ($x + 1) . 'Address'] = $email;
}
}
diff --git a/tests/Sync/Sync/ContactsTest.php b/tests/Sync/Sync/ContactsTest.php
--- a/tests/Sync/Sync/ContactsTest.php
+++ b/tests/Sync/Sync/ContactsTest.php
@@ -77,6 +77,7 @@
$this->assertStringMatchesFormat("CRC%s", $xpath->query("{$root}/ns:ServerId")->item(0)->nodeValue);
$this->assertSame('Jack', $xpath->query("{$root}/ns:ApplicationData/Contacts:FirstName")->item(0)->nodeValue);
$this->assertSame('Strong', $xpath->query("{$root}/ns:ApplicationData/Contacts:LastName")->item(0)->nodeValue);
+ $this->assertSame('jack@kolab.org', $xpath->query("{$root}/ns:ApplicationData/Contacts:Email1Address")->item(0)->nodeValue);
$this->assertSame('Jane', $xpath->query("{$root}/ns:ApplicationData/Contacts:FirstName")->item(1)->nodeValue);
$this->assertSame('Doe', $xpath->query("{$root}/ns:ApplicationData/Contacts:LastName")->item(1)->nodeValue);
@@ -113,6 +114,7 @@
<ClientId>42</ClientId>
<ApplicationData>
<Contacts:FirstName>Lars</Contacts:FirstName>
+ <Contacts:Email1Address>lars@kolab.org</Contacts:Email1Address>
</ApplicationData>
</Add>
</Commands>
diff --git a/tests/src/contact.vcard2 b/tests/src/contact.vcard2
--- a/tests/src/contact.vcard2
+++ b/tests/src/contact.vcard2
@@ -3,4 +3,5 @@
UID:urn:uuid:abcdef-0123-4567-89ab-abcdefabc123
FN:Jack Strong
N:Strong;Jack;;;
+EMAIL;TYPE=work:jack@kolab.org
END:VCARD

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 30, 7:39 AM (5 d, 9 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18797328
Default Alt Text
D5229.1774856371.diff (2 KB)

Event Timeline