summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-01-07 17:53:37 +0100
committerAleksander Machniak <alec@alec.pl>2013-01-07 17:53:37 +0100
commitacf851f823fba5354c2227e48c3097a524312268 (patch)
tree8e99d1890f04978bf8e62903d95f8f551f982394
parentb5767d94b1c3fd29adffb225526162d69b37d05d (diff)
Fix address fields import from CSV (#1488900)
-rw-r--r--program/lib/Roundcube/rcube_csv2vcard.php9
-rw-r--r--tests/Framework/Csv2vcard.php1
-rw-r--r--tests/src/Csv2vcard/tb_plain.vcf2
3 files changed, 12 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_csv2vcard.php b/program/lib/Roundcube/rcube_csv2vcard.php
index f94a7aac7..e8202c6d4 100644
--- a/program/lib/Roundcube/rcube_csv2vcard.php
+++ b/program/lib/Roundcube/rcube_csv2vcard.php
@@ -390,6 +390,15 @@ class rcube_csv2vcard
}
}
+ // Convert address(es) to rcube_vcard data
+ foreach ($contact as $idx => $value) {
+ $name = explode(':', $idx);
+ if (in_array($name[0], array('street', 'locality', 'region', 'zipcode', 'country'))) {
+ $contact['address:'.$name[1]][$name[0]] = $value;
+ unset($contact[$idx]);
+ }
+ }
+
// Create vcard object
$vcard = new rcube_vcard();
foreach ($contact as $name => $value) {
diff --git a/tests/Framework/Csv2vcard.php b/tests/Framework/Csv2vcard.php
index 6fa3e163c..f460c42af 100644
--- a/tests/Framework/Csv2vcard.php
+++ b/tests/Framework/Csv2vcard.php
@@ -31,6 +31,7 @@ class Framework_Csv2vcard extends PHPUnit_Framework_TestCase
$vcf_text = trim(str_replace("\r\n", "\n", $vcf_text));
$vcard = trim(str_replace("\r\n", "\n", $vcard));
+echo $vcard;
$this->assertEquals($vcf_text, $vcard);
}
diff --git a/tests/src/Csv2vcard/tb_plain.vcf b/tests/src/Csv2vcard/tb_plain.vcf
index aace259d8..b001c3924 100644
--- a/tests/src/Csv2vcard/tb_plain.vcf
+++ b/tests/src/Csv2vcard/tb_plain.vcf
@@ -15,4 +15,6 @@ ORG:Organization
URL;TYPE=homepage:http://page.com
URL;TYPE=other:http://webpage.tld
BDAY;VALUE=date:1970-11-15
+ADR;TYPE=home:;;Priv address;City;region;xx-xxx;USA
+ADR;TYPE=work:;;Addr work;;;33-333;Poland
END:VCARD