2012-06-03 20:19:28 +02:00
|
|
|
<?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'
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2012-07-27 20:35:14 +02:00
|
|
|
function testGetUserPassWithColon() {
|
|
|
|
|
|
|
|
$server = array(
|
|
|
|
'HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('admin:1234:5678'),
|
|
|
|
);
|
|
|
|
|
|
|
|
$request = new Sabre_HTTP_Request($server);
|
|
|
|
$this->basicAuth->setHTTPRequest($request);
|
|
|
|
|
|
|
|
$userPass = $this->basicAuth->getUserPass();
|
|
|
|
|
|
|
|
$this->assertEquals(
|
|
|
|
array('admin','1234:5678'),
|
|
|
|
$userPass,
|
|
|
|
'We did not get the username and password we expected'
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2012-06-03 20:19:28 +02:00
|
|
|
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!'
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|