xref: /plugin/davcal/vendor/sabre/dav/tests/Sabre/CalDAV/CalendarHomeSharedCalendarsTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\CalDAV;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehleruse Sabre\DAVACL;
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehlerrequire_once 'Sabre/CalDAV/TestUtil.php';
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler/**
10*a1a3b679SAndreas Boehler */
11*a1a3b679SAndreas Boehlerclass CalendarHomeSharedCalendarsTest extends \PHPUnit_Framework_TestCase {
12*a1a3b679SAndreas Boehler
13*a1a3b679SAndreas Boehler    protected $backend;
14*a1a3b679SAndreas Boehler
15*a1a3b679SAndreas Boehler    function getInstance() {
16*a1a3b679SAndreas Boehler
17*a1a3b679SAndreas Boehler        $calendars = array(
18*a1a3b679SAndreas Boehler            array(
19*a1a3b679SAndreas Boehler                'id' => 1,
20*a1a3b679SAndreas Boehler                'principaluri' => 'principals/user1',
21*a1a3b679SAndreas Boehler            ),
22*a1a3b679SAndreas Boehler            array(
23*a1a3b679SAndreas Boehler                'id' => 2,
24*a1a3b679SAndreas Boehler                '{http://calendarserver.org/ns/}shared-url' => 'calendars/owner/cal1',
25*a1a3b679SAndreas Boehler                '{http://sabredav.org/ns}owner-principal' => 'principal/owner',
26*a1a3b679SAndreas Boehler                '{http://sabredav.org/ns}read-only' => false,
27*a1a3b679SAndreas Boehler                'principaluri' => 'principals/user1',
28*a1a3b679SAndreas Boehler            ),
29*a1a3b679SAndreas Boehler        );
30*a1a3b679SAndreas Boehler
31*a1a3b679SAndreas Boehler        $this->backend = new Backend\MockSharing(
32*a1a3b679SAndreas Boehler            $calendars,
33*a1a3b679SAndreas Boehler            array(),
34*a1a3b679SAndreas Boehler            array()
35*a1a3b679SAndreas Boehler        );
36*a1a3b679SAndreas Boehler
37*a1a3b679SAndreas Boehler        return new CalendarHome($this->backend, array(
38*a1a3b679SAndreas Boehler            'uri' => 'principals/user1'
39*a1a3b679SAndreas Boehler        ));
40*a1a3b679SAndreas Boehler
41*a1a3b679SAndreas Boehler    }
42*a1a3b679SAndreas Boehler
43*a1a3b679SAndreas Boehler    function testSimple() {
44*a1a3b679SAndreas Boehler
45*a1a3b679SAndreas Boehler        $instance = $this->getInstance();
46*a1a3b679SAndreas Boehler        $this->assertEquals('user1', $instance->getName());
47*a1a3b679SAndreas Boehler
48*a1a3b679SAndreas Boehler    }
49*a1a3b679SAndreas Boehler
50*a1a3b679SAndreas Boehler    function testGetChildren() {
51*a1a3b679SAndreas Boehler
52*a1a3b679SAndreas Boehler        $instance = $this->getInstance();
53*a1a3b679SAndreas Boehler        $children = $instance->getChildren();
54*a1a3b679SAndreas Boehler        $this->assertEquals(3, count($children));
55*a1a3b679SAndreas Boehler
56*a1a3b679SAndreas Boehler        // Testing if we got all the objects back.
57*a1a3b679SAndreas Boehler        $hasShareable = false;
58*a1a3b679SAndreas Boehler        $hasShared = false;
59*a1a3b679SAndreas Boehler        $hasOutbox = false;
60*a1a3b679SAndreas Boehler        $hasNotifications = false;
61*a1a3b679SAndreas Boehler
62*a1a3b679SAndreas Boehler        foreach($children as $child) {
63*a1a3b679SAndreas Boehler
64*a1a3b679SAndreas Boehler            if ($child instanceof IShareableCalendar) {
65*a1a3b679SAndreas Boehler                $hasShareable = true;
66*a1a3b679SAndreas Boehler            }
67*a1a3b679SAndreas Boehler            if ($child instanceof ISharedCalendar) {
68*a1a3b679SAndreas Boehler                $hasShared = true;
69*a1a3b679SAndreas Boehler            }
70*a1a3b679SAndreas Boehler            if ($child instanceof Notifications\ICollection) {
71*a1a3b679SAndreas Boehler                $hasNotifications = true;
72*a1a3b679SAndreas Boehler            }
73*a1a3b679SAndreas Boehler
74*a1a3b679SAndreas Boehler        }
75*a1a3b679SAndreas Boehler        if (!$hasShareable) $this->fail('Missing node!');
76*a1a3b679SAndreas Boehler        if (!$hasShared) $this->fail('Missing node!');
77*a1a3b679SAndreas Boehler        if (!$hasNotifications) $this->fail('Missing node!');
78*a1a3b679SAndreas Boehler
79*a1a3b679SAndreas Boehler    }
80*a1a3b679SAndreas Boehler
81*a1a3b679SAndreas Boehler    function testShareReply() {
82*a1a3b679SAndreas Boehler
83*a1a3b679SAndreas Boehler        $instance = $this->getInstance();
84*a1a3b679SAndreas Boehler        $result = $instance->shareReply('uri', SharingPlugin::STATUS_DECLINED, 'curi', '1');
85*a1a3b679SAndreas Boehler        $this->assertNull($result);
86*a1a3b679SAndreas Boehler
87*a1a3b679SAndreas Boehler    }
88*a1a3b679SAndreas Boehler
89*a1a3b679SAndreas Boehler}
90