]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/DAV/Auth/Backend/AbstractDigestTest.php
removed community home addon
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / DAV / Auth / Backend / AbstractDigestTest.php
1 <?php
2
3 require_once 'Sabre/HTTP/ResponseMock.php';
4
5 class Sabre_DAV_Auth_Backend_AbstractDigestTest extends PHPUnit_Framework_TestCase {
6
7     /**
8      * @expectedException Sabre_DAV_Exception_NotAuthenticated
9      */
10     public function testAuthenticateNoHeaders() {
11
12         $response = new Sabre_HTTP_ResponseMock();
13         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
14         $server = new Sabre_DAV_Server($tree);
15         $server->httpResponse = $response;
16
17         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
18         $backend->authenticate($server,'myRealm');
19
20     }
21
22     /**
23      * @expectedException Sabre_DAV_Exception
24      */
25     public function testAuthenticateBadGetUserInfoResponse() {
26
27         $response = new Sabre_HTTP_ResponseMock();
28         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
29         $server = new Sabre_DAV_Server($tree);
30         $server->httpResponse = $response;
31
32         $header = 'username=null, realm=myRealm, nonce=12345, uri=/, response=HASH, opaque=1, qop=auth, nc=1, cnonce=1';
33         $request = new Sabre_HTTP_Request(array(
34             'PHP_AUTH_DIGEST' => $header,
35         ));
36         $server->httpRequest = $request;
37
38         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
39         $backend->authenticate($server,'myRealm');
40
41     }
42
43     /**
44      * @expectedException Sabre_DAV_Exception
45      */
46     public function testAuthenticateBadGetUserInfoResponse2() {
47
48         $response = new Sabre_HTTP_ResponseMock();
49         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
50         $server = new Sabre_DAV_Server($tree);
51         $server->httpResponse = $response;
52
53         $header = 'username=array, realm=myRealm, nonce=12345, uri=/, response=HASH, opaque=1, qop=auth, nc=1, cnonce=1';
54         $request = new Sabre_HTTP_Request(array(
55             'PHP_AUTH_DIGEST' => $header,
56         ));
57         $server->httpRequest = $request;
58
59         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
60         $backend->authenticate($server,'myRealm');
61
62     }
63
64     /**
65      * @expectedException Sabre_DAV_Exception_NotAuthenticated
66      */
67     public function testAuthenticateUnknownUser() {
68
69         $response = new Sabre_HTTP_ResponseMock();
70         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
71         $server = new Sabre_DAV_Server($tree);
72         $server->httpResponse = $response;
73
74         $header = 'username=false, realm=myRealm, nonce=12345, uri=/, response=HASH, opaque=1, qop=auth, nc=1, cnonce=1';
75         $request = new Sabre_HTTP_Request(array(
76             'PHP_AUTH_DIGEST' => $header,
77         ));
78         $server->httpRequest = $request;
79
80         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
81         $backend->authenticate($server,'myRealm');
82
83     }
84
85     /**
86      * @expectedException Sabre_DAV_Exception_NotAuthenticated
87      */
88     public function testAuthenticateBadPassword() {
89
90         $response = new Sabre_HTTP_ResponseMock();
91         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
92         $server = new Sabre_DAV_Server($tree);
93         $server->httpResponse = $response;
94
95         $header = 'username=user, realm=myRealm, nonce=12345, uri=/, response=HASH, opaque=1, qop=auth, nc=1, cnonce=1';
96         $request = new Sabre_HTTP_Request(array(
97             'PHP_AUTH_DIGEST' => $header,
98             'REQUEST_METHOD'  => 'PUT',
99         ));
100         $server->httpRequest = $request;
101
102         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
103         $backend->authenticate($server,'myRealm');
104
105     }
106
107     public function testAuthenticate() {
108
109         $response = new Sabre_HTTP_ResponseMock();
110         $tree = new Sabre_DAV_ObjectTree(new Sabre_DAV_SimpleCollection('bla'));
111         $server = new Sabre_DAV_Server($tree);
112         $server->httpResponse = $response;
113
114         $digestHash = md5('HELLO:12345:1:1:auth:' . md5('GET:/'));
115         $header = 'username=user, realm=myRealm, nonce=12345, uri=/, response='.$digestHash.', opaque=1, qop=auth, nc=1, cnonce=1';
116         $request = new Sabre_HTTP_Request(array(
117             'REQUEST_METHOD'  => 'GET',
118             'PHP_AUTH_DIGEST' => $header,
119             'REQUEST_URI'     => '/',
120         ));
121         $server->httpRequest = $request;
122
123         $backend = new Sabre_DAV_Auth_Backend_AbstractDigestMock();
124         $this->assertTrue($backend->authenticate($server,'myRealm'));
125
126         $result = $backend->getCurrentUser();
127
128         $this->assertEquals('user', $result);
129         $this->assertEquals('HELLO', $backend->getDigestHash('myRealm', $result));
130
131     }
132
133
134 }
135
136
137 class Sabre_DAV_Auth_Backend_AbstractDigestMock extends Sabre_DAV_Auth_Backend_AbstractDigest {
138
139     function getDigestHash($realm, $userName) {
140
141         switch($userName) {
142             case 'null' : return null;
143             case 'false' : return false;
144             case 'array' : return array();
145             case 'user'  : return 'HELLO';
146         }
147
148     }
149
150 }