| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699 |
- <?php
- /**
- * Zend Framework
- *
- * LICENSE
- *
- * This source file is subject to the new BSD license that is bundled
- * with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://framework.zend.com/license/new-bsd
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@zend.com so we can send you a copy immediately.
- *
- * @category Zend
- * @package Zend_OpenId
- * @subpackage UnitTests
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id$
- */
- /**
- * Zend_OpenId
- */
- require_once 'Zend/OpenId.php';
- /**
- * Zend_OpenId_ResponseHelper
- */
- require_once 'Zend/OpenId/ResponseHelper.php';
- /**
- * @category Zend
- * @package Zend_OpenId
- * @subpackage UnitTests
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- * @group Zend_OpenId
- */
- class Zend_OpenIdTest extends PHPUnit_Framework_TestCase
- {
- private $_serverVariables;
- public function setUp()
- {
- $this->_serverVariables = $_SERVER;
- }
- public function tearDown()
- {
- $_SERVER = $this->_serverVariables;
- }
- /**
- * testing testSelfUrl
- *
- */
- public function testSelfUrl()
- {
- unset($_SERVER['SCRIPT_URI']);
- unset($_SERVER['HTTPS']);
- unset($_SERVER['HTTP_HOST']);
- unset($_SERVER['SERVER_NAME']);
- unset($_SERVER['SERVER_PORT']);
- unset($_SERVER['SCRIPT_URL']);
- unset($_SERVER['REDIRECT_URL']);
- unset($_SERVER['PHP_SELF']);
- unset($_SERVER['SCRIPT_NAME']);
- unset($_SERVER['PATH_INFO']);
- $this->assertSame( 'http://', Zend_OpenId::selfUrl() );
- $_SERVER['SCRIPT_URI'] = "http://www.test.com/";
- $this->assertSame( 'http://www.test.com/', Zend_OpenId::selfUrl() );
- unset($_SERVER['SCRIPT_URI']);
- $_SERVER['HTTP_HOST'] = "www.test.com";
- $_SERVER['SERVER_NAME'] = "www.wrong.com";
- $this->assertSame( 'http://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['HTTP_HOST'] = "www.test.com:80";
- $this->assertSame( 'http://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['HTTP_HOST'] = "www.test.com:8080";
- $this->assertSame( 'http://www.test.com:8080', Zend_OpenId::selfUrl() );
- $_SERVER['HTTP_HOST'] = "www.test.com";
- $_SERVER['SERVER_PORT'] = "80";
- $this->assertSame( 'http://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['SERVER_PORT'] = "8080";
- $this->assertSame( 'http://www.test.com:8080', Zend_OpenId::selfUrl() );
- unset($_SERVER['HTTP_HOST']);
- unset($_SERVER['SERVER_PORT']);
- $_SERVER['SERVER_NAME'] = "www.test.com";
- $this->assertSame( 'http://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['SERVER_PORT'] = "80";
- $this->assertSame( 'http://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['SERVER_PORT'] = "8080";
- $this->assertSame( 'http://www.test.com:8080', Zend_OpenId::selfUrl() );
- unset($_SERVER['SERVER_PORT']);
- $_SERVER['HTTPS'] = "on";
- $this->assertSame( 'https://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['SERVER_PORT'] = "443";
- $this->assertSame( 'https://www.test.com', Zend_OpenId::selfUrl() );
- $_SERVER['SERVER_PORT'] = "8080";
- $this->assertSame( 'https://www.test.com:8080', Zend_OpenId::selfUrl() );
- unset($_SERVER['SERVER_PORT']);
- unset($_SERVER['HTTPS']);
- $_SERVER['SCRIPT_URL'] = '/test.php';
- $_SERVER['PHP_SELF'] = '/bug.php';
- $_SERVER['SCRIPT_NAME'] = '/bug.php';
- $_SERVER['PATH_INFO'] = '/bug';
- $this->assertSame( 'http://www.test.com/test.php', Zend_OpenId::selfUrl() );
- unset($_SERVER['SCRIPT_URL']);
- $_SERVER['REDIRECT_URL'] = '/ok';
- $_SERVER['PHP_SELF'] = '/bug.php';
- $_SERVER['SCRIPT_NAME'] = '/bug.php';
- $_SERVER['PATH_INFO'] = '/bug';
- $this->assertSame( 'http://www.test.com/ok', Zend_OpenId::selfUrl() );
- unset($_SERVER['REDIRECT_URL']);
- $_SERVER['PHP_SELF'] = '/test.php';
- $this->assertSame( 'http://www.test.com/test.php', Zend_OpenId::selfUrl() );
- unset($_SERVER['PHP_SELF']);
- $_SERVER['SCRIPT_NAME'] = '/test.php';
- $_SERVER['PATH_INFO'] = '/ok';
- $this->assertSame( 'http://www.test.com/test.php/ok', Zend_OpenId::selfUrl() );
- unset($_SERVER['PATH_INFO']);
- $this->assertSame( 'http://www.test.com/test.php', Zend_OpenId::selfUrl() );
- }
- /**
- * testing testAbsolutefUrl
- *
- */
- public function testAbsoluteUrl()
- {
- unset($_SERVER['SCRIPT_URI']);
- unset($_SERVER['HTTPS']);
- unset($_SERVER['HTTP_HOST']);
- unset($_SERVER['SERVER_NAME']);
- unset($_SERVER['SERVER_PORT']);
- unset($_SERVER['SCRIPT_URL']);
- unset($_SERVER['REDIRECT_URL']);
- unset($_SERVER['PHP_SELF']);
- unset($_SERVER['SCRIPT_NAME']);
- unset($_SERVER['PATH_INFO']);
- $_SERVER['HTTP_HOST'] = "www.test.com";
- $_SERVER['SCRIPT_NAME'] = '/a/b/c/test.php';
- $this->assertSame( 'http://www.test.com/a/b/c/test.php', Zend_OpenId::absoluteUrl("") );
- $this->assertSame( 'http://www.test.com/a/b/c/ok.php', Zend_OpenId::absoluteUrl("ok.php") );
- $this->assertSame( 'http://www.test.com/a/ok.php', Zend_OpenId::absoluteUrl("/a/ok.php") );
- $this->assertSame( 'http://www.php.net/ok.php', Zend_OpenId::absoluteUrl("http://www.php.net/ok.php") );
- $this->assertSame( 'https://www.php.net/ok.php', Zend_OpenId::absoluteUrl("https://www.php.net/ok.php") );
- $_SERVER['SCRIPT_NAME'] = '/test.php';
- $this->assertSame( 'http://www.test.com/a/b.php', Zend_OpenId::absoluteUrl("/a/b.php") );
- $this->assertSame( 'http://www.test.com/a/b.php', Zend_OpenId::absoluteUrl("a/b.php") );
- }
- /**
- * testing testParamsToQuery
- *
- */
- public function testParamsToQuery()
- {
- $this->assertSame( '', Zend_OpenId::paramsToQuery(array()) );
- $this->assertSame( 'a=1', Zend_OpenId::paramsToQuery(array('a'=>1)) );
- $this->assertSame( 'a=1&b=2', Zend_OpenId::paramsToQuery(array('a'=>1,'b'=>2)) );
- $this->assertSame( 'a=x+y', Zend_OpenId::paramsToQuery(array('a'=>'x y')) );
- }
- /**
- * testing testNormalizeUrl
- *
- */
- public function testNormalizeUrl()
- {
- $url = 'example://a/b/c/%7Bfoo%7D';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://a/b/c/%7Bfoo%7D', $url );
- $url = 'eXAMPLE://A/./b/../b/%63/%7bfoo%7d';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://a/b/c/%7Bfoo%7D', $url );
- $url = 'eXAMPLE://A/./b/../b/%63/%bbfoo%Bd';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://a/b/c/%BBfoo%BD', $url );
- $url = 'example://a/b/c/%1';
- $this->assertFalse( Zend_OpenId::normalizeUrl($url) );
- $url = 'example://a/b/c/%x1';
- $this->assertFalse( Zend_OpenId::normalizeUrl($url) );
- $url = 'example://a/b/c/%1x';
- $this->assertFalse( Zend_OpenId::normalizeUrl($url) );
- $url = 'eXAMPLE://A/b/c/x%20y';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://a/b/c/x%20y', $url );
- $url = 'example://host/.a/b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/.a/b/c', $url );
- $url = 'a/b/c';
- $this->assertFalse( Zend_OpenId::normalizeUrl($url) );
- $url = 'example://:80/a/b/c';
- $this->assertFalse( Zend_OpenId::normalizeUrl($url) );
- $url = 'example://host/a/.b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/.b/c', $url );
- $url = 'example://host/a/b/.c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/.c', $url );
- $url = 'example://host/..a/b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/..a/b/c', $url );
- $url = 'example://host/a/..b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/..b/c', $url );
- $url = 'example://host/a/b/..c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/..c', $url );
- $url = 'example://host/./b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/b/c', $url );
- $url = 'example://host/a/./c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/c', $url );
- $url = 'example://host/a/b/.';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b', $url );
- $url = 'example://host/a/b/./';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/', $url );
- $url = 'example://host/../b/c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/b/c', $url );
- $url = 'example://host/a/../c';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/c', $url );
- $url = 'example://host/a/b/..';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a', $url );
- $url = 'example://host/a/b/../';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/', $url );
- $url = 'example://host/a/b/c/..';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b', $url );
- $url = 'example://host/a/b/c/../..';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a', $url );
- $url = 'example://host/a/b/c/../../..';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/', $url );
- $url = 'example://host///a///b///c///..///../d';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/d', $url );
- $url = 'example://host///a///b///c///.///./d';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/c/d', $url );
- $url = 'example://host///a///b///c///..///./d';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/d', $url );
- $url = 'example://host///a///b///c///.///../d';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'example://host/a/b/d', $url );
- $url = 'http://example.com';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/', $url );
- $url = 'http://example.com/';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/', $url );
- $url = 'http://example.com:';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/', $url );
- $url = 'http://example.com:80/';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/', $url );
- $url = 'https://example.com:443/';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'https://example.com/', $url );
- $url = 'http://example.com?';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/?', $url );
- $url = 'http://example.com/?';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/?', $url );
- $url = 'http://example.com/test.php?Foo=Bar#Baz';
- $this->assertTrue( Zend_OpenId::normalizeUrl($url) );
- $this->assertSame( 'http://example.com/test.php?Foo=Bar#Baz', $url );
- }
- /**
- * testing testNormalize
- *
- */
- public function testNormalize()
- {
- $url = '';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '', $url );
- $url = ' localhost ';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://localhost/', $url );
- $url = 'xri://$ip*127.0.0.1';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://127.0.0.1/', $url );
- $url = 'xri://$dns*localhost';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://localhost/', $url );
- $url = 'xri://localhost';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://localhost/', $url );
- $url = '=name';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '=name', $url );
- $url = '@name';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '@name', $url );
- $url = '+name';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '+name', $url );
- $url = '$name';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '$name', $url );
- $url = '!name';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( '!name', $url );
- $url = 'localhost';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://localhost/', $url );
- $url = 'http://localhost';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'http://localhost/', $url );
- $url = 'https://localhost';
- $this->assertTrue( Zend_OpenId::normalize($url) );
- $this->assertSame( 'https://localhost/', $url );
- }
- /**
- * testing testRedirect
- *
- */
- public function testRedirect()
- {
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/", null, $response, 'GET');
- $this->assertSame( 302, $response->getHttpResponseCode() );
- $this->assertSame( array(), $response->getRawHeaders() );
- $headers = $response->getHeaders();
- $this->assertTrue( is_array($headers) );
- $this->assertSame( 1, count($headers) );
- $this->assertTrue( is_array($headers[0]) );
- $this->assertSame( 3, count($headers[0]) );
- $this->assertSame( 'Location', $headers[0]['name'] );
- $this->assertSame( 'http://www.test.com/', $headers[0]['value'] );
- $this->assertSame( true, $headers[0]['replace'] );
- $this->assertSame( '', $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", null, $response, 'GET');
- $headers = $response->getHeaders();
- $this->assertSame( 'http://www.test.com/test.php?a=b', $headers[0]['value'] );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'b'), $response, 'GET');
- $headers = $response->getHeaders();
- $this->assertSame( 'http://www.test.com/test.php?a=b', $headers[0]['value'] );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'b', 'c'=>'d'), $response, 'GET');
- $headers = $response->getHeaders();
- $this->assertSame( 'http://www.test.com/test.php?a=b&c=d', $headers[0]['value'] );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", array('c'=>'d'), $response, 'GET');
- $headers = $response->getHeaders();
- $this->assertSame( 'http://www.test.com/test.php?a=b&c=d', $headers[0]['value'] );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'x y'), $response, 'GET');
- $headers = $response->getHeaders();
- $this->assertSame( 'http://www.test.com/test.php?a=x+y', $headers[0]['value'] );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/", null, $response, 'GET');
- $this->assertSame( 200, $response->getHttpResponseCode() );
- $this->assertSame( array(), $response->getRawHeaders() );
- $this->assertSame( array(), $response->getHeaders() );
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", null, $response, 'GET');
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/test.php?a=b';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'b'), $response, 'GET');
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/test.php?a=b';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'b','c'=>'d'), $response, 'GET');
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/test.php?a=b&c=d';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", array('c'=>'d'), $response, 'GET');
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/test.php?a=b&c=d';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(false);
- Zend_OpenId::redirect("http://www.test.com/test.php", array('a'=>'x y'), $response, 'GET');
- $this->assertSame(
- "<script language=\"JavaScript\" type=\"text/javascript\">window.location='http://www.test.com/test.php?a=x+y';</script>",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/", null, $response, 'POST');
- $this->assertSame( 200, $response->getHttpResponseCode() );
- $this->assertSame( array(), $response->getRawHeaders() );
- $this->assertSame( array(), $response->getHeaders() );
- $this->assertSame(
- "<html><body onLoad=\"document.forms[0].submit();\">\n" .
- "<form method=\"POST\" action=\"http://www.test.com/\">\n" .
- "<input type=\"submit\" value=\"Continue OpenID transaction\">\n" .
- "</form></body></html>\n",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", array('a'=>'b'), $response, 'POST');
- $this->assertSame(
- "<html><body onLoad=\"document.forms[0].submit();\">\n" .
- "<form method=\"POST\" action=\"http://www.test.com/test.php?a=b\">\n" .
- "<input type=\"hidden\" name=\"a\" value=\"b\">\n" .
- "<input type=\"submit\" value=\"Continue OpenID transaction\">\n" .
- "</form></body></html>\n",
- $response->getBody() );
- $response = new Zend_OpenId_ResponseHelper(true);
- Zend_OpenId::redirect("http://www.test.com/test.php?a=b", array('a'=>'b','c'=>'d'), $response, 'POST');
- $this->assertSame(
- "<html><body onLoad=\"document.forms[0].submit();\">\n" .
- "<form method=\"POST\" action=\"http://www.test.com/test.php?a=b\">\n" .
- "<input type=\"hidden\" name=\"a\" value=\"b\">\n" .
- "<input type=\"hidden\" name=\"c\" value=\"d\">\n" .
- "<input type=\"submit\" value=\"Continue OpenID transaction\">\n" .
- "</form></body></html>\n",
- $response->getBody() );
- }
- /**
- * testing testRedirect
- *
- */
- public function testRandomBytes()
- {
- $this->assertSame( '', Zend_OpenId::randomBytes(0) );
- $x = Zend_OpenId::randomBytes(1);
- $this->assertTrue( is_string($x) );
- $this->assertSame( 1, strlen($x) );
- $x = Zend_OpenId::randomBytes(1024);
- $this->assertTrue( is_string($x) );
- $this->assertSame( 1024, strlen($x) );
- }
- /**
- * testing testDigest
- *
- */
- public function testDigest()
- {
- $this->assertSame(
- 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d',
- bin2hex(Zend_OpenId::digest('sha1', 'hello')) );
- $this->assertSame(
- '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824',
- bin2hex(Zend_OpenId::digest('sha256', 'hello')) );
- }
- /**
- * testing testHashHmac
- *
- */
- public function testHashHmac()
- {
- $key = 'password';
- $this->assertSame(
- '1f48abc79459fa853af681ddb3c73ff7f35c48fb',
- bin2hex(Zend_OpenId::hashHmac('sha1', 'hello', $key)) );
- $this->assertSame(
- '7ae615e698567e5e1512dd8140e740bd4d65dfa4db195d80ca327de6302b4a63',
- bin2hex(Zend_OpenId::hashHmac('sha256', 'hello', $key)) );
- $key = str_repeat('x',128);
- $this->assertSame(
- '59c6c30dc9fb96b2cb2d7c41dbc6f96d1fbf67ac',
- bin2hex(Zend_OpenId::hashHmac('sha1', 'hello', $key)) );
- $this->assertSame(
- 'f5e0c31f7cdd272710052ac3ebcc40d7e82be2427b7e5e1e8373ef1e327515f4',
- bin2hex(Zend_OpenId::hashHmac('sha256', 'hello', $key)) );
- }
- /**
- * testing testCreateDhKey
- *
- */
- public function testCreateDhKey()
- {
- try {
- $dh = Zend_OpenId::createDhKey(
- pack('H*', '0233'),
- pack('H*', '05'),
- pack('H*', '09'));
- $dh_details = Zend_OpenId::getDhKeyDetails($dh);
- $this->assertTrue( is_array($dh_details) );
- $this->assertSame( 4, count($dh_details));
- $this->assertSame( '0233', bin2hex($dh_details['p']) );
- $this->assertSame( '05', bin2hex($dh_details['g']) );
- $this->assertSame( '09', bin2hex($dh_details['priv_key']) );
- $this->assertSame( '4e', bin2hex($dh_details['pub_key']) );
- $dh = Zend_OpenId::createDhKey(
- pack('H*', '0233'),
- pack('H*', '02'),
- pack('H*', '09'));
- $dh_details = Zend_OpenId::getDhKeyDetails($dh);
- $this->assertTrue( is_array($dh_details) );
- $this->assertSame( 4, count($dh_details) );
- $this->assertSame( '0233', bin2hex($dh_details['p']) );
- $this->assertSame( '02', bin2hex($dh_details['g']) );
- $this->assertSame( '09', bin2hex($dh_details['priv_key']) );
- $this->assertSame( '0200', bin2hex($dh_details['pub_key']) );
- $dh = Zend_OpenId::createDhKey(
- pack('H*', '0233'),
- pack('H*', '02'));
- $dh_details = Zend_OpenId::getDhKeyDetails($dh);
- $this->assertTrue( is_array($dh_details) );
- $this->assertSame( 4, count($dh_details) );
- $this->assertSame( '0233', bin2hex($dh_details['p']) );
- $this->assertSame( '02', bin2hex($dh_details['g']) );
- $this->assertTrue( is_string($dh_details['priv_key']) );
- $this->assertTrue( strlen($dh_details['priv_key']) > 0 );
- $this->assertTrue( is_string($dh_details['pub_key']) );
- $this->assertTrue( strlen($dh_details['pub_key']) > 0 );
- } catch (Zend_OpenId_Exception $e) {
- $this->markTestSkipped($e->getMessage());
- }
- }
- /**
- * testing testComputeDhSecret
- *
- */
- public function testComputeDhSecret()
- {
- try {
- $alice = Zend_OpenId::createDhKey(
- pack('H*', '0233'),
- pack('H*', '05'),
- pack('H*', '09'));
- $alice_details = Zend_OpenId::getDhKeyDetails($alice);
- $this->assertSame( '4e', bin2hex($alice_details['pub_key']) );
- $bob = Zend_OpenId::createDhKey(
- pack('H*', '0233'),
- pack('H*', '05'),
- pack('H*', '0e'));
- $bob_details = Zend_OpenId::getDhKeyDetails($bob);
- $this->assertSame( '0216', bin2hex($bob_details['pub_key']) );
- $this->assertSame( '75',
- bin2hex(Zend_OpenId::computeDhSecret($alice_details['pub_key'], $bob)) );
- $this->assertSame( '75',
- bin2hex(Zend_OpenId::computeDhSecret($bob_details['pub_key'], $alice)) );
- } catch (Zend_OpenId_Exception $e) {
- $this->markTestSkipped($e->getMessage());
- }
- }
- /**
- * testing testBtwoc
- *
- */
- public function testBtwoc()
- {
- $this->assertSame( '00', bin2hex(Zend_OpenId::btwoc(pack('H*', '00'))) );
- $this->assertSame( '01', bin2hex(Zend_OpenId::btwoc(pack('H*', '01'))) );
- $this->assertSame( '7e', bin2hex(Zend_OpenId::btwoc(pack('H*', '7e'))) );
- $this->assertSame( '78', bin2hex(Zend_OpenId::btwoc(pack('H*', '78'))) );
- $this->assertSame( '0080', bin2hex(Zend_OpenId::btwoc(pack('H*', '80'))) );
- $this->assertSame( '0081', bin2hex(Zend_OpenId::btwoc(pack('H*', '81'))) );
- $this->assertSame( '00fe', bin2hex(Zend_OpenId::btwoc(pack('H*', 'fe'))) );
- $this->assertSame( '00ff', bin2hex(Zend_OpenId::btwoc(pack('H*', 'ff'))) );
- }
- /**
- * testing setSelfUrl
- *
- */
- public function testSetSelfUrl()
- {
- unset($_SERVER['SCRIPT_URI']);
- unset($_SERVER['HTTPS']);
- unset($_SERVER['HTTP_HOST']);
- unset($_SERVER['SERVER_NAME']);
- unset($_SERVER['SERVER_PORT']);
- unset($_SERVER['SCRIPT_URL']);
- unset($_SERVER['REDIRECT_URL']);
- unset($_SERVER['PHP_SELF']);
- unset($_SERVER['SCRIPT_NAME']);
- unset($_SERVER['PATH_INFO']);
- $_SERVER['SCRIPT_URI'] = "http://www.test.com/";
- $this->assertSame( 'http://www.test.com/', Zend_OpenId::selfUrl() );
- $this->assertSame( null, Zend_OpenId::setSelfUrl("http://localhost/test") );
- $this->assertSame( "http://localhost/test", Zend_OpenId::selfUrl() );
- $this->assertSame( "http://localhost/test", Zend_OpenId::setSelfUrl() );
- $this->assertSame( 'http://www.test.com/', Zend_OpenId::selfUrl() );
- $this->assertSame( null, Zend_OpenId::setSelfUrl() );
- $this->assertSame( 'http://www.test.com/', Zend_OpenId::selfUrl() );
- }
- }
|