function testRequireAuth()
 {
     $request = new HTTP\Request();
     $response = new HTTP\Response();
     $backend = new AbstractDigestMock();
     $backend->setRealm('writing unittests on a saturday night');
     $backend->challenge($request, $response);
     $this->assertStringStartsWith('Digest realm="writing unittests on a saturday night"', $response->getHeader('WWW-Authenticate'));
 }
 public function testAuthenticate()
 {
     $response = new HTTP\ResponseMock();
     $server = new DAV\Server();
     $server->httpResponse = $response;
     $digestHash = md5('HELLO:12345:1:1:auth:' . md5('GET:/'));
     $header = 'username=user, realm=myRealm, nonce=12345, uri=/, response=' . $digestHash . ', opaque=1, qop=auth, nc=1, cnonce=1';
     $request = HTTP\Sapi::createFromServerArray(array('REQUEST_METHOD' => 'GET', 'PHP_AUTH_DIGEST' => $header, 'REQUEST_URI' => '/'));
     $server->httpRequest = $request;
     $backend = new AbstractDigestMock();
     $this->assertTrue($backend->authenticate($server, 'myRealm'));
     $result = $backend->getCurrentUser();
     $this->assertEquals('user', $result);
     $this->assertEquals('HELLO', $backend->getDigestHash('myRealm', $result));
 }