]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAV/Locks/MSWordTest.php
removed community home addon
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAV / Locks / MSWordTest.php
1 <?php
2
3 require_once 'Sabre/HTTP/ResponseMock.php';
4 require_once 'Sabre/TestUtil.php';
5
6 class Sabre_DAV_Locks_MSWordTest extends PHPUnit_Framework_TestCase {
7
8     function testLockEtc() {
9
10         mkdir(SABRE_TEMPDIR . '/mstest');
11         $tree = new Sabre_DAV_FS_Directory(SABRE_TEMPDIR . '/mstest');
12
13         $server = new Sabre_DAV_Server($tree);
14         $server->debugExceptions = true;
15         $locksBackend = new Sabre_DAV_Locks_Backend_File(SABRE_TEMPDIR . '/locksdb');
16         $locksPlugin = new Sabre_DAV_Locks_Plugin($locksBackend);
17         $server->addPlugin($locksPlugin);
18
19         $response1 = new Sabre_HTTP_ResponseMock();
20
21         $server->httpRequest = $this->getLockRequest();
22         $server->httpResponse = $response1;
23         $server->exec();
24
25         $this->assertEquals('HTTP/1.1 201 Created', $server->httpResponse->status);
26         $this->assertTrue(isset($server->httpResponse->headers['Lock-Token']));
27         $lockToken = $server->httpResponse->headers['Lock-Token'];
28
29         //sleep(10);
30
31         $response2 = new Sabre_HTTP_ResponseMock();
32
33         $server->httpRequest = $this->getLockRequest2();
34         $server->httpResponse = $response2;
35         $server->exec();
36
37         $this->assertEquals('HTTP/1.1 201 Created', $server->httpResponse->status);
38         $this->assertTrue(isset($server->httpResponse->headers['Lock-Token']));
39
40         //sleep(10);
41
42         $response3 = new Sabre_HTTP_ResponseMock();
43         $server->httpRequest = $this->getPutRequest($lockToken);
44         $server->httpResponse = $response3;
45         $server->exec();
46
47         $this->assertEquals('HTTP/1.1 204 No Content', $server->httpResponse->status);
48
49     }
50
51     function tearDown() {
52
53         Sabre_TestUtil::clearTempDir();
54
55     }
56
57     function getLockRequest() {
58
59         $request = new Sabre_HTTP_Request(array(
60            'REQUEST_METHOD'    => 'LOCK',
61            'HTTP_CONTENT_TYPE' => 'application/xml',
62            'HTTP_TIMEOUT'      => 'Second-3600',
63            'REQUEST_URI'       => '/Nouveau%20Microsoft%20Office%20Excel%20Worksheet.xlsx',
64         ));
65
66         $request->setBody('<D:lockinfo xmlns:D="DAV:">
67     <D:lockscope>
68         <D:exclusive />
69     </D:lockscope>
70     <D:locktype>
71         <D:write />
72     </D:locktype>
73     <D:owner>
74         <D:href>PC-Vista\User</D:href>
75     </D:owner>
76 </D:lockinfo>');
77
78         return $request;
79
80     }
81     function getLockRequest2() {
82
83         $request = new Sabre_HTTP_Request(array(
84            'REQUEST_METHOD'    => 'LOCK',
85            'HTTP_CONTENT_TYPE' => 'application/xml',
86            'HTTP_TIMEOUT'      => 'Second-3600',
87            'REQUEST_URI'       => '/~$Nouveau%20Microsoft%20Office%20Excel%20Worksheet.xlsx',
88         ));
89
90         $request->setBody('<D:lockinfo xmlns:D="DAV:">
91     <D:lockscope>
92         <D:exclusive />
93     </D:lockscope>
94     <D:locktype>
95         <D:write />
96     </D:locktype>
97     <D:owner>
98         <D:href>PC-Vista\User</D:href>
99     </D:owner>
100 </D:lockinfo>');
101
102         return $request;
103
104     }
105
106     function getPutRequest($lockToken) {
107
108         $request = new Sabre_HTTP_Request(array(
109            'REQUEST_METHOD'    => 'PUT',
110            'REQUEST_URI'       => '/Nouveau%20Microsoft%20Office%20Excel%20Worksheet.xlsx',
111            'HTTP_IF'           => 'If: ('.$lockToken.')',
112         ));
113         $request->setBody('FAKE BODY');
114         return $request;
115
116     }
117
118 }