friendica-addons/dav/SabreDAV/tests/Sabre/HTTP/BasicAuthTest.php

112 lines
2.6 KiB
PHP

<?php
require_once 'Sabre/HTTP/ResponseMock.php';
class Sabre_HTTP_BasicAuthTest extends PHPUnit_Framework_TestCase {
/**
* @var Sabre_HTTP_ResponseMock
*/
private $response;
/**
* @var Sabre_HTTP_BasicAuth
*/
private $basicAuth;
function setUp() {
$this->response = new Sabre_HTTP_ResponseMock();
$this->basicAuth = new Sabre_HTTP_BasicAuth();
$this->basicAuth->setHTTPResponse($this->response);
}
function testGetUserPassApache() {
$server = array(
'PHP_AUTH_USER' => 'admin',
'PHP_AUTH_PW' => '1234',
);
$request = new Sabre_HTTP_Request($server);
$this->basicAuth->setHTTPRequest($request);
$userPass = $this->basicAuth->getUserPass();
$this->assertEquals(
array('admin','1234'),
$userPass,
'We did not get the username and password we expected'
);
}
function testGetUserPassIIS() {
$server = array(
'HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('admin:1234'),
);
$request = new Sabre_HTTP_Request($server);
$this->basicAuth->setHTTPRequest($request);
$userPass = $this->basicAuth->getUserPass();
$this->assertEquals(
array('admin','1234'),
$userPass,
'We did not get the username and password we expected'
);
}
function testGetUserPassApacheEdgeCase() {
$server = array(
'REDIRECT_HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('admin:1234'),
);
$request = new Sabre_HTTP_Request($server);
$this->basicAuth->setHTTPRequest($request);
$userPass = $this->basicAuth->getUserPass();
$this->assertEquals(
array('admin','1234'),
$userPass,
'We did not get the username and password we expected'
);
}
function testGetUserPassNothing() {
$this->assertEquals(
false,
$this->basicAuth->getUserPass()
);
}
function testRequireLogin() {
$this->basicAuth->requireLogin();
$this->assertEquals('SabreDAV',$this->basicAuth->getRealm());
$this->assertEquals(
'HTTP/1.1 401 Unauthorized',
$this->response->status,
'We expected a 401 status to be set'
);
$this->assertEquals(
'Basic realm="SabreDAV"',
$this->response->headers['WWW-Authenticate'],
'The WWW-Autenticate header was not set!'
);
}
}