1<?php 2/* 3 * Unit tests for Horde_ActiveSync_Utils:: 4 * 5 * @author Michael J. Rubinsky <mrubinsk@horde.org> 6 * @category Horde 7 * @package ActiveSync 8 */ 9class Horde_ActiveSync_UtilsTest extends Horde_Test_Case 10{ 11 public function testBase64Uri() 12 { 13 /* Settings Request for versions >= 12.1 */ 14 $url = 'oBEJBBBOaW5lMkVDN0VDMEJCNTREBAGJpmIHQW5kcm9pZAcBAA=='; 15 $results = Horde_ActiveSync_Utils::decodeBase64($url); 16 $fixture = array( 17 'ProtVer' => '16.0', 18 'Cmd' => 'Settings', 19 'Locale' => 1033, 20 'DeviceId' => '4e696e65324543374543304242353444', 21 'PolicyKey' => 1655081217, 22 'DeviceType' => 'Android', 23 'SaveInSent' => false, 24 'AcceptMultiPart' => false 25 ); 26 $this->assertEquals($fixture, $results); 27 28 /* Smart Forward */ 29 $url = 'eQIJBBCuTs0Z9ZK6Vldwb/dM8JusBHVeHIQDUFBDBwEBAwYxMTkyODEBBUlOQk9Y'; 30 $results = Horde_ActiveSync_Utils::decodeBase64($url); 31 $results['PolicyKey'] = sprintf('%u', $results['PolicyKey']); 32 33 // This is binary data, test it separately. 34 $fixture = array( 35 'ProtVer' => '12.1', 36 'Cmd' => 'SmartForward', 37 'Locale' => 1033, 38 'DeviceId' => 'ae4ecd19f592ba5657706ff74cf09bac', 39 'PolicyKey' => '2216451701', 40 'DeviceType' => 'PPC', 41 'ItemId' => '119281', 42 'CollectionId' => 'INBOX', 43 'AcceptMultiPart' => false, 44 'SaveInSent' => true 45 ); 46 $this->assertEquals($fixture, $results); 47 } 48 49 public function testBodyTypePref() 50 { 51 $this->markTestIncomplete('Needs refactoring.'); 52 $fixture = array( 53 'bodyprefs' => array(Horde_ActiveSync::BODYPREF_TYPE_HTML => true, Horde_ActiveSync::BODYPREF_TYPE_MIME => true) 54 ); 55 56 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_HTML, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture)); 57 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_MIME, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture, false)); 58 59 $fixture = array( 60 'bodyprefs' => array(Horde_ActiveSync::BODYPREF_TYPE_HTML => true) 61 ); 62 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_HTML, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture)); 63 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_HTML, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture, false)); 64 65 $fixture = array( 66 'bodyprefs' => array(Horde_ActiveSync::BODYPREF_TYPE_HTML => true) 67 ); 68 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_HTML, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture)); 69 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_HTML, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture, false)); 70 71 $fixture = array( 72 'bodyprefs' => array(Horde_ActiveSync::BODYPREF_TYPE_MIME => true) 73 ); 74 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_MIME, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture)); 75 $this->assertEquals(Horde_ActiveSync::BODYPREF_TYPE_MIME, Horde_ActiveSync_Utils_Mime::getBodyTypePref($fixture, false)); 76 } 77}