1<?php
2/**
3 * Horde Mapi_Utils tests.
4 *
5 * @author     Michael J Rubinsky <mrubinsk@horde.org>
6 * @category   Horde
7 * @license    http://www.horde.org/licenses/lgpl21 LGPL 2.1
8 * @package    Mapi_Utils
9 * @subpackage UnitTests
10 */
11
12/**
13 * @author     Michael J Rubinsky <mrubinsk@horde.org>
14 * @category   Horde
15 * @license    http://www.horde.org/licenses/lgpl21 LGPL 2.1
16 * @package    Mapi_Utils
17 * @subpackage UnitTests
18 */
19class Horde_Mapi_MapiTest extends PHPUnit_Framework_TestCase
20{
21
22    public function testFiletimeToUnixTime()
23    {
24        $data = file_get_contents(__DIR__ . '/fixtures/filetime');
25
26        $this->assertEquals(
27            extension_loaded('bcmath') ? 1387818000 : -1,
28            Horde_Mapi::filetimeToUnixtime($data)
29        );
30    }
31
32    /**
33     * Test parsing GOID value.
34     */
35    public function testParseGlobalObjectId()
36    {
37        // Outlook UID
38        $fixture = 'BAAAAIIA4AB0xbcQGoLgCAfUCRDgQMnBJoXEAQAAAAAAAAAAEAAAAAvw7UtuTulOnjnjhns3jvM=';
39        $uid = Horde_Mapi::getUidFromGoid($fixture);
40        $this->assertEquals(
41          '040000008200E00074C5B7101A82E00800000000E040C9C12685C4010000000000000000100000000BF0ED4B6E4EE94E9E39E3867B378EF3',
42          $uid);
43
44        // vCal
45        $fixture = 'BAAAAIIA4AB0xbcQGoLgCAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAHZDYWwtVWlkAQAAAHs4MTQxMkQzQy0yQTI0LTRFOUQtQjIwRS0xMUY3QkJFOTI3OTl9AA==';
46        $uid = Horde_Mapi::getUidFromGoid($fixture);
47        $this->assertEquals('{81412D3C-2A24-4E9D-B20E-11F7BBE92799}', $uid);
48    }
49
50}
51