summaryrefslogtreecommitdiff
path: root/tests/vcards.php
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-01-26 07:19:56 +0000
committerthomascube <thomas@roundcube.net>2010-01-26 07:19:56 +0000
commit5570ad60b496974607790dab49fc80cce8f5c700 (patch)
tree9ef741d7f986892d5a88b4b1580b74500dadde31 /tests/vcards.php
parent580ff9c55e81aae04add43c95071c57e346a19ce (diff)
Improved charset detection in vcard import + added unit tests for it
Diffstat (limited to 'tests/vcards.php')
-rw-r--r--tests/vcards.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/vcards.php b/tests/vcards.php
new file mode 100644
index 000000000..72c687484
--- /dev/null
+++ b/tests/vcards.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Unit tests for class rcube_vcard
+ *
+ * @package Tests
+ */
+class rcube_test_vcards extends UnitTestCase
+{
+
+ function __construct()
+ {
+ $this->UnitTestCase('Vcard encoding/decoding tests');
+ }
+
+ function _srcpath($fn)
+ {
+ return realpath(dirname(__FILE__) . '/src/' . $fn);
+ }
+
+ function test_parse_one()
+ {
+ $vcard = new rcube_vcard(file_get_contents($this->_srcpath('apple.vcf')));
+
+ $this->assertEqual(true, $vcard->business, "Identify as business record");
+ $this->assertEqual("Apple Computer AG", $vcard->displayname, "FN => displayname");
+ $this->assertEqual("", $vcard->firstname, "No person name set");
+ }
+
+ function test_parse_two()
+ {
+ $vcard = new rcube_vcard(file_get_contents($this->_srcpath('johndoe.vcf')), null);
+
+ $this->assertEqual(false, $vcard->business, "Identify as private record");
+ $this->assertEqual("John Doë", $vcard->displayname, "Decode according to charset attribute");
+ $this->assertEqual("roundcube.net", $vcard->organization, "Test organization field");
+ $this->assertEqual(2, count($vcard->email), "List two e-mail addresses");
+ $this->assertEqual("roundcube@gmail.com", $vcard->email[0], "Use PREF e-mail as primary");
+ }
+
+ function test_import()
+ {
+ $input = file_get_contents($this->_srcpath('apple.vcf'));
+ $input .= file_get_contents($this->_srcpath('johndoe.vcf'));
+
+ $vcards = rcube_vcard::import($input);
+
+ $this->assertEqual(2, count($vcards), "Detected 2 vcards");
+ $this->assertEqual("Apple Computer AG", $vcards[0]->displayname, "FN => displayname");
+ $this->assertEqual("John Doë", $vcards[1]->displayname, "Displayname with correct charset");
+ }
+
+}