Aleksander Machniak
2013-01-05 21106b3d1c1dc9dea14f2abc8e6a2d4073b91f65
tests/Framework/VCard.php
@@ -33,6 +33,38 @@
        $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)");
    }
    /**
     * Backslash escaping test (#1488896)
     */
    function test_parse_four()
    {
        $vcard = "BEGIN:VCARD\nVERSION:3.0\nN:last\\;;first\\\\;middle\\\\\\;\\\\;prefix;\nFN:test\nEND:VCARD";
        $vcard = new rcube_vcard($vcard, null);
        $vcard = $vcard->get_assoc();
        $this->assertEquals("last;", $vcard['surname'], "Decode backslash character");
        $this->assertEquals("first\\", $vcard['firstname'], "Decode backslash character");
        $this->assertEquals("middle\\;\\", $vcard['middlename'], "Decode backslash character");
        $this->assertEquals("prefix", $vcard['prefix'], "Decode backslash character");
    }
    function test_import()
    {
        $input = file_get_contents($this->_srcpath('apple.vcf'));
@@ -49,6 +81,20 @@
        $this->assertEquals("Iksiñski", $vcards2[0]->surname, "Detect charset in encoded values");
    }
    function test_import_photo_encoding()
    {
        $input = file_get_contents($this->_srcpath('photo.vcf'));
        $vcards = rcube_vcard::import($input);
        $vcard = $vcards[0]->get_assoc();
        $this->assertCount(1, $vcards, "Detected 1 vcard");
        // 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");
    }
    function test_encodings()
    {
        $input = file_get_contents($this->_srcpath('utf-16_sample.vcf'));