diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Framework/Bootstrap.php (renamed from tests/Framework/Shared.php) | 42 | ||||
-rw-r--r-- | tests/Framework/Csv2vcard.php | 57 | ||||
-rw-r--r-- | tests/Framework/ImapGeneric.php | 18 | ||||
-rw-r--r-- | tests/Framework/Utils.php | 36 | ||||
-rw-r--r-- | tests/Framework/VCard.php | 17 | ||||
-rw-r--r-- | tests/phpunit.xml | 3 | ||||
-rw-r--r-- | tests/src/Csv2vcard/email.csv | 5 | ||||
-rw-r--r-- | tests/src/Csv2vcard/email.vcf | 20 | ||||
-rw-r--r-- | tests/src/Csv2vcard/tb_plain.csv | 2 | ||||
-rw-r--r-- | tests/src/Csv2vcard/tb_plain.vcf | 18 | ||||
-rw-r--r-- | tests/src/johndoe.vcf | 1 |
11 files changed, 186 insertions, 33 deletions
diff --git a/tests/Framework/Shared.php b/tests/Framework/Bootstrap.php index 0394cd025..d18fd371b 100644 --- a/tests/Framework/Shared.php +++ b/tests/Framework/Bootstrap.php @@ -5,11 +5,11 @@ * * @package Tests */ -class Framework_Shared extends PHPUnit_Framework_TestCase +class Framework_Bootstrap extends PHPUnit_Framework_TestCase { /** - * rcube_shared.inc: in_array_nocase() + * bootstrap.php: in_array_nocase() */ function test_in_array_nocase() { @@ -25,29 +25,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: get_boolean() - */ - function test_get_boolean() - { - $input = array( - false, 'false', '0', 'no', 'off', 'nein', 'FALSE', '', null, - ); - - foreach ($input as $idx => $value) { - $this->assertFalse(get_boolean($value), "Invalid result for $idx test item"); - } - - $input = array( - true, 'true', '1', 1, 'yes', 'anything', 1000, - ); - - foreach ($input as $idx => $value) { - $this->assertTrue(get_boolean($value), "Invalid result for $idx test item"); - } - } - - /** - * rcube_shared.inc: parse_bytes() + * bootstrap.php: parse_bytes() */ function test_parse_bytes() { @@ -75,7 +53,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: slashify() + * bootstrap.php: slashify() */ function test_slashify() { @@ -94,7 +72,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: unslashify() + * bootstrap.php: unslashify() */ function test_unslashify() { @@ -115,7 +93,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: get_offset_sec() + * bootstrap.php: get_offset_sec() */ function test_get_offset_sec() { @@ -138,7 +116,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: array_keys_recursive() + * bootstrap.php: array_keys_recursive() */ function test_array_keys_recursive() { @@ -160,7 +138,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: format_email() + * bootstrap.php: format_email() */ function test_format_email() { @@ -180,7 +158,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: format_email_recipient() + * bootstrap.php: format_email_recipient() */ function test_format_email_recipient() { @@ -202,7 +180,7 @@ class Framework_Shared extends PHPUnit_Framework_TestCase } /** - * rcube_shared.inc: is_ascii() + * bootstrap.php: is_ascii() */ function test_is_ascii() { diff --git a/tests/Framework/Csv2vcard.php b/tests/Framework/Csv2vcard.php new file mode 100644 index 000000000..6fa3e163c --- /dev/null +++ b/tests/Framework/Csv2vcard.php @@ -0,0 +1,57 @@ +<?php + +/** + * Test class to test rcube_csv2vcard class + * + * @package Tests + */ +class Framework_Csv2vcard extends PHPUnit_Framework_TestCase +{ + + function test_import_generic() + { + $csv = new rcube_csv2vcard; + + // empty input + $csv->import(''); + $this->assertSame(array(), $csv->export()); + } + + function test_import_tb_plain() + { + $csv_text = file_get_contents(TESTS_DIR . '/src/Csv2vcard/tb_plain.csv'); + $vcf_text = file_get_contents(TESTS_DIR . '/src/Csv2vcard/tb_plain.vcf'); + + $csv = new rcube_csv2vcard; + $csv->import($csv_text); + $result = $csv->export(); + $vcard = $result[0]->export(false); + + $this->assertCount(1, $result); + + $vcf_text = trim(str_replace("\r\n", "\n", $vcf_text)); + $vcard = trim(str_replace("\r\n", "\n", $vcard)); + $this->assertEquals($vcf_text, $vcard); + } + + function test_import_email() + { + $csv_text = file_get_contents(TESTS_DIR . '/src/Csv2vcard/email.csv'); + $vcf_text = file_get_contents(TESTS_DIR . '/src/Csv2vcard/email.vcf'); + + $csv = new rcube_csv2vcard; + $csv->import($csv_text); + $result = $csv->export(); + + $this->assertCount(4, $result); + + $vcard = ''; + foreach ($result as $vcf) { + $vcard .= $vcf->export(false) . "\n"; + } + + $vcf_text = trim(str_replace("\r\n", "\n", $vcf_text)); + $vcard = trim(str_replace("\r\n", "\n", $vcard)); + $this->assertEquals($vcf_text, $vcard); + } +} diff --git a/tests/Framework/ImapGeneric.php b/tests/Framework/ImapGeneric.php index 0b2cc3d53..2f9b6d10f 100644 --- a/tests/Framework/ImapGeneric.php +++ b/tests/Framework/ImapGeneric.php @@ -17,4 +17,22 @@ class Framework_ImapGeneric extends PHPUnit_Framework_TestCase $this->assertInstanceOf('rcube_imap_generic', $object, "Class constructor"); } + + /** + * Test for uncompressMessageSet + */ + function test_uncompressMessageSet() + { + $result = rcube_imap_generic::uncompressMessageSet(null); + $this->assertSame(array(), $result); + $this->assertCount(0, $result); + + $result = rcube_imap_generic::uncompressMessageSet('1'); + $this->assertSame(array(1), $result); + $this->assertCount(1, $result); + + $result = rcube_imap_generic::uncompressMessageSet('1:3'); + $this->assertSame(array(1, 2, 3), $result); + $this->assertCount(3, $result); + } } diff --git a/tests/Framework/Utils.php b/tests/Framework/Utils.php index e58835956..7c1e92ac8 100644 --- a/tests/Framework/Utils.php +++ b/tests/Framework/Utils.php @@ -193,4 +193,40 @@ class Framework_Utils extends PHPUnit_Framework_TestCase $mod = rcube_utils::mod_css_styles("background:\\0075\\0072\\006c( javascript:alert('xss') )", 'rcmbody'); $this->assertEquals("/* evil! */", $mod, "Don't allow encoding quirks (2)"); } + + /** + * Check rcube_utils::explode_quoted_string() compat. with explode() + */ + function test_explode_quoted_string_compat() + { + $data = array('', 'a,b,c', 'a', ',', ',a'); + + foreach ($data as $text) { + $result = rcube_utils::explode_quoted_string(',', $text); + $this->assertSame(explode(',', $text), $result); + } + } + + /** + * rcube_utils::get_boolean() + */ + function test_get_boolean() + { + $input = array( + false, 'false', '0', 'no', 'off', 'nein', 'FALSE', '', null, + ); + + foreach ($input as $idx => $value) { + $this->assertFalse(get_boolean($value), "Invalid result for $idx test item"); + } + + $input = array( + true, 'true', '1', 1, 'yes', 'anything', 1000, + ); + + foreach ($input as $idx => $value) { + $this->assertTrue(get_boolean($value), "Invalid result for $idx test item"); + } + } + } diff --git a/tests/Framework/VCard.php b/tests/Framework/VCard.php index 56ca9d721..79d297664 100644 --- a/tests/Framework/VCard.php +++ b/tests/Framework/VCard.php @@ -33,6 +33,23 @@ class Framework_VCard extends PHPUnit_Framework_TestCase $this->assertEquals("roundcube@gmail.com", $vcard->email[0], "Use PREF e-mail as primary"); } + /** + * Make sure MOBILE phone is returned as CELL (as specified in standard) + */ + function test_parse_three() + { + $vcard = new rcube_vcard(file_get_contents($this->_srcpath('johndoe.vcf')), null); + + $vcf = $vcard->export(); + $this->assertRegExp('/TEL;CELL:\+987654321/', $vcf, "Return CELL instead of MOBILE (import)"); + + $vcard = new rcube_vcard(); + $vcard->set('phone', '+987654321', 'MOBILE'); + + $vcf = $vcard->export(); + $this->assertRegExp('/TEL;TYPE=CELL:\+987654321/', $vcf, "Return CELL instead of MOBILE (set)"); + } + function test_import() { $input = file_get_contents($this->_srcpath('apple.vcf')); diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 43c3b767d..36ab6d714 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -4,10 +4,12 @@ <testsuites> <testsuite name="All Tests"> <file>Framework/BaseReplacer.php</file> + <file>Framework/Bootstrap.php</file> <file>Framework/Browser.php</file> <file>Framework/Cache.php</file> <file>Framework/Charset.php</file> <file>Framework/ContentFilter.php</file> + <file>Framework/Csv2vcard.php</file> <file>Framework/Html.php</file> <file>Framework/Imap.php</file> <file>Framework/ImapGeneric.php</file> @@ -19,7 +21,6 @@ <file>Framework/ResultIndex.php</file> <file>Framework/ResultSet.php</file> <file>Framework/ResultThread.php</file> - <file>Framework/Shared.php</file> <file>Framework/Smtp.php</file> <file>Framework/Spellchecker.php</file> <file>Framework/StringReplacer.php</file> diff --git a/tests/src/Csv2vcard/email.csv b/tests/src/Csv2vcard/email.csv new file mode 100644 index 000000000..1556d9142 --- /dev/null +++ b/tests/src/Csv2vcard/email.csv @@ -0,0 +1,5 @@ +Primary Email +test1@domain.tld +test2@domain.tld +test3@domain.tld +test4@domain.tld diff --git a/tests/src/Csv2vcard/email.vcf b/tests/src/Csv2vcard/email.vcf new file mode 100644 index 000000000..69912a639 --- /dev/null +++ b/tests/src/Csv2vcard/email.vcf @@ -0,0 +1,20 @@ +BEGIN:VCARD +VERSION:3.0 +FN:test1@domain.tld +EMAIL;TYPE=INTERNET;TYPE=PREF:test1@domain.tld +END:VCARD +BEGIN:VCARD +VERSION:3.0 +FN:test2@domain.tld +EMAIL;TYPE=INTERNET;TYPE=PREF:test2@domain.tld +END:VCARD +BEGIN:VCARD +VERSION:3.0 +FN:test3@domain.tld +EMAIL;TYPE=INTERNET;TYPE=PREF:test3@domain.tld +END:VCARD +BEGIN:VCARD +VERSION:3.0 +FN:test4@domain.tld +EMAIL;TYPE=INTERNET;TYPE=PREF:test4@domain.tld +END:VCARD diff --git a/tests/src/Csv2vcard/tb_plain.csv b/tests/src/Csv2vcard/tb_plain.csv new file mode 100644 index 000000000..94ea766c0 --- /dev/null +++ b/tests/src/Csv2vcard/tb_plain.csv @@ -0,0 +1,2 @@ +First Name,Last Name,Display Name,Nickname,Primary Email,Secondary Email,Screen Name,Work Phone,Home Phone,Fax Number,Pager Number,Mobile Number,Home Address,Home Address 2,Home City,Home State,Home ZipCode,Home Country,Work Address,Work Address 2,Work City,Work State,Work ZipCode,Work Country,Job Title,Department,Organization,Web Page 1,Web Page 2,Birth Year,Birth Month,Birth Day,Custom 1,Custom 2,Custom 3,Custom 4,Notes, +Firstname,Lastname,Displayname,Nick,test@domain.tld,next@domain.tld,,phone work,phone home,fax,pager,mobile,Priv address,,City,region,xx-xxx,USA,Addr work,,city,region,33-333,Poland,title,department,Organization,http://page.com,http://webpage.tld,1970,11,15,,,,,, diff --git a/tests/src/Csv2vcard/tb_plain.vcf b/tests/src/Csv2vcard/tb_plain.vcf new file mode 100644 index 000000000..aace259d8 --- /dev/null +++ b/tests/src/Csv2vcard/tb_plain.vcf @@ -0,0 +1,18 @@ +BEGIN:VCARD +VERSION:3.0 +FN:Displayname +N:Lastname;Firstname;;; +NICKNAME:Nick +EMAIL;TYPE=INTERNET;TYPE=PREF:test@domain.tld +EMAIL;TYPE=INTERNET;TYPE=OTHER:next@domain.tld +TEL;TYPE=work:phone work +TEL;TYPE=home:phone home +TEL;TYPE=fax:fax +TEL;TYPE=cell:mobile +TITLE:title +X-DEPARTMENT:department +ORG:Organization +URL;TYPE=homepage:http://page.com +URL;TYPE=other:http://webpage.tld +BDAY;VALUE=date:1970-11-15 +END:VCARD diff --git a/tests/src/johndoe.vcf b/tests/src/johndoe.vcf index 67b649df3..386afaf57 100644 --- a/tests/src/johndoe.vcf +++ b/tests/src/johndoe.vcf @@ -6,6 +6,7 @@ ORG:roundcube.net; EMAIL;INTERNET;WORK:inbox@roundcube.net
EMAIL;INTERNET;HOME;TYPE=pref:roundcube@gmail.com
TEL;WORK:+123456789
+TEL;CELL:+987654321
ADR;WORK:;;The street;Hometown;;5555;Cayman Islands
NOTE:The notes...
END:VCARD
|