HttpTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Lithium: the most rad php framework
  4. *
  5. * @copyright Copyright 2013, Union of RAD (http://union-of-rad.org)
  6. * @license http://opensource.org/licenses/bsd-license.php The BSD License
  7. */
  8. namespace lithium\tests\cases\security\auth\adapter;
  9. use lithium\tests\mocks\security\auth\adapter\MockHttp;
  10. use lithium\action\Request;
  11. class HttpTest extends \lithium\test\Unit {
  12. public $request;
  13. public function setUp() {
  14. $this->request = new Request();
  15. }
  16. public function tearDown() {}
  17. public function testCheckBasicIsFalse() {
  18. $http = new MockHttp(array('method' => 'basic', 'users' => array('gwoo' => 'li3')));
  19. $result = $http->check($this->request);
  20. $this->assertFalse($result);
  21. $expected = array('WWW-Authenticate: Basic realm="' . basename(LITHIUM_APP_PATH) . '"');
  22. $result = $http->headers;
  23. $this->assertEqual($expected, $result);
  24. }
  25. public function testCheckBasicIsTrue() {
  26. $request = new Request(array(
  27. 'env' => array('PHP_AUTH_USER' => 'gwoo', 'PHP_AUTH_PW' => 'li3')
  28. ));
  29. $http = new MockHttp(array('method' => 'basic', 'users' => array('gwoo' => 'li3')));
  30. $result = $http->check($request);
  31. $this->assertTrue($result);
  32. $expected = array();
  33. $result = $http->headers;
  34. $this->assertEqual($expected, $result);
  35. }
  36. public function testCheckDigestIsFalse() {
  37. $http = new MockHttp(array('realm' => 'app', 'users' => array('gwoo' => 'li3')));
  38. $result = $http->check($this->request);
  39. $this->assertFalse($result);
  40. $this->assertPattern('/Digest/', $http->headers[0]);
  41. $this->assertPattern('/realm="app",/', $http->headers[0]);
  42. $this->assertPattern('/qop="auth",/', $http->headers[0]);
  43. $this->assertPattern('/nonce=/', $http->headers[0]);
  44. }
  45. public function testCheckDigestIsTrue() {
  46. $digest = 'qop="auth",nonce="4bca0fbca7bd0",';
  47. $digest .= 'nc="00000001",cnonce="95b2cd1e179bf5414e52ed62811481cf",';
  48. $digest .= 'uri="/http_auth",realm="app",';
  49. $digest .= 'opaque="d3fb67a7aa4d887ec4bf83040a820a46",username="gwoo",';
  50. $digest .= 'response="04d7d878c67f289f37e553d2025e3a52"';
  51. $request = new Request(array('env' => array('PHP_AUTH_DIGEST' => $digest)));
  52. $http = new MockHttp(array('realm' => 'app', 'users' => array('gwoo' => 'li3')));
  53. $result = $http->check($request);
  54. $this->assertTrue($result);
  55. $expected = array();
  56. $result = $http->headers;
  57. $this->assertEqual($expected, $result);
  58. }
  59. }
  60. ?>