forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			673 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			673 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * SReg.php testing code.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require_once 'Auth/OpenID/SReg.php';
							 | 
						||
| 
								 | 
							
								require_once 'Auth/OpenID/Message.php';
							 | 
						||
| 
								 | 
							
								require_once 'Auth/OpenID/Server.php';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SRegURITest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function test_is11()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI_1_1,
							 | 
						||
| 
								 | 
							
								                            Auth_OpenID_SREG_NS_URI);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class CheckFieldNameTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function test_goodNamePasses()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $Auth_OpenID_sreg_data_fields;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($Auth_OpenID_sreg_data_fields as $field_name => $desc) {
							 | 
						||
| 
								 | 
							
								            $this->assertTrue(Auth_OpenID_checkFieldName($field_name));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_badNameFails()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->assertfalse(Auth_OpenID_checkFieldName('INVALID'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_badTypeFails()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->assertfalse(Auth_OpenID_checkFieldName(null));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// For supportsSReg test
							 | 
						||
| 
								 | 
							
								class FakeEndpoint {
							 | 
						||
| 
								 | 
							
								    function FakeEndpoint($supported)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->supported = $supported;
							 | 
						||
| 
								 | 
							
								        $this->checked_uris = array();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function usesExtension($namespace_uri)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->checked_uris[] = $namespace_uri;
							 | 
						||
| 
								 | 
							
								        return in_array($namespace_uri, $this->supported);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SupportsSRegTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function test_unsupported()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $endpoint = new FakeEndpoint(array());
							 | 
						||
| 
								 | 
							
								        $this->assertfalse(Auth_OpenID_supportsSReg($endpoint));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(Auth_OpenID_SREG_NS_URI_1_1,
							 | 
						||
| 
								 | 
							
								                                  Auth_OpenID_SREG_NS_URI_1_0),
							 | 
						||
| 
								 | 
							
								                            $endpoint->checked_uris);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_supported_1_1()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $endpoint = new FakeEndpoint(array(Auth_OpenID_SREG_NS_URI_1_1));
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(Auth_OpenID_supportsSReg($endpoint));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(Auth_OpenID_SREG_NS_URI_1_1),
							 | 
						||
| 
								 | 
							
								                            $endpoint->checked_uris);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_supported_1_0()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $endpoint = new FakeEndpoint(array(Auth_OpenID_SREG_NS_URI_1_0));
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(Auth_OpenID_supportsSReg($endpoint));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(Auth_OpenID_SREG_NS_URI_1_1,
							 | 
						||
| 
								 | 
							
								                                     Auth_OpenID_SREG_NS_URI_1_0),
							 | 
						||
| 
								 | 
							
								                               $endpoint->checked_uris);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class FakeMessage {
							 | 
						||
| 
								 | 
							
								    function FakeMessage()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->openid1 = false;
							 | 
						||
| 
								 | 
							
								        $this->namespaces = new Auth_OpenID_NamespaceMap();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function isOpenID1()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->openid1;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class GetNSTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function setUp()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg = new FakeMessage();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID2Empty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $ns_uri = Auth_OpenID_SRegBase::_getSRegNS($this->msg);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($this->msg->namespaces->getAlias($ns_uri), 'sreg');
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI, $ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID1Empty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg->openid1 = true;
							 | 
						||
| 
								 | 
							
								        $ns_uri = Auth_OpenID_SRegBase::_getSRegNS($this->msg);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($this->msg->namespaces->getAlias($ns_uri), 'sreg');
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI, $ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID1Defined_1_0()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg->openid1 = true;
							 | 
						||
| 
								 | 
							
								        $this->msg->namespaces->add(Auth_OpenID_SREG_NS_URI_1_0);
							 | 
						||
| 
								 | 
							
								        $ns_uri = Auth_OpenID_SRegBase::_getSRegNS($this->msg);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI_1_0, $ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID1Defined_1_0_overrideAlias()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        foreach (array(true, false) as $openid_version) {
							 | 
						||
| 
								 | 
							
								            foreach (array(Auth_OpenID_SREG_NS_URI_1_0,
							 | 
						||
| 
								 | 
							
								                           Auth_OpenID_SREG_NS_URI_1_1) as $sreg_version) {
							 | 
						||
| 
								 | 
							
								                foreach (array('sreg', 'bogus') as $alias) {
							 | 
						||
| 
								 | 
							
								                    $this->setUp();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    $this->msg->openid1 = $openid_version;
							 | 
						||
| 
								 | 
							
								                    $this->assertTrue($this->msg->namespaces->addAlias($sreg_version, $alias) !== null);
							 | 
						||
| 
								 | 
							
								                    $ns_uri = Auth_OpenID_SRegBase::_getSRegNS($this->msg);
							 | 
						||
| 
								 | 
							
								                    $this->assertEquals($this->msg->namespaces->getAlias($ns_uri), $alias);
							 | 
						||
| 
								 | 
							
								                    $this->assertEquals($sreg_version, $ns_uri);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID1DefinedBadly()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg->openid1 = true;
							 | 
						||
| 
								 | 
							
								        $this->msg->namespaces->addAlias('http://invalid/', 'sreg');
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(Auth_OpenID_SRegBase::_getSRegNS($this->msg) === null);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID2DefinedBadly()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg->openid1 = false;
							 | 
						||
| 
								 | 
							
								        $this->msg->namespaces->addAlias('http://invalid/', 'sreg');
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(Auth_OpenID_SRegBase::_getSRegNS($this->msg) === null);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID2Defined_1_0()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->msg->namespaces->add(Auth_OpenID_SREG_NS_URI_1_0);
							 | 
						||
| 
								 | 
							
								        $ns_uri = Auth_OpenID_SRegBase::_getSRegNS($this->msg);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI_1_0, $ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_openID1_sregNSfromArgs()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $args = array(
							 | 
						||
| 
								 | 
							
								            'sreg.optional' => 'nickname',
							 | 
						||
| 
								 | 
							
								            'sreg.required' => 'dob');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $m = Auth_OpenID_Message::fromOpenIDArgs($args);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($m->getArg(Auth_OpenID_SREG_NS_URI_1_1, 'optional') == 'nickname');
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($m->getArg(Auth_OpenID_SREG_NS_URI_1_1, 'required') == 'dob');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								global $__args_sentinel;
							 | 
						||
| 
								 | 
							
								global $__ns_sentinel;
							 | 
						||
| 
								 | 
							
								$__args_sentinel = 'args_sentinel';
							 | 
						||
| 
								 | 
							
								$__ns_sentinel = 'ns_sentinel';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SentinelFakeMessage {
							 | 
						||
| 
								 | 
							
								    function SentinelFakeMessage($test_case)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->test_case =& $test_case;
							 | 
						||
| 
								 | 
							
								        $this->message = new Auth_OpenID_Message();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function getArgs($ns_uri)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $__ns_sentinel, $__args_sentinel;
							 | 
						||
| 
								 | 
							
								        $this->test_case->assertEquals($__ns_sentinel, $ns_uri);
							 | 
						||
| 
								 | 
							
								        return $__args_sentinel;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// XXX Ugly hack.  Thanks, PHP.
							 | 
						||
| 
								 | 
							
								global $__TestingReq_TEST_CASE;
							 | 
						||
| 
								 | 
							
								$__TestingReq_TEST_CASE = "FLUB";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function __setTestCase($thing) {
							 | 
						||
| 
								 | 
							
								  global $__TestingReq_TEST_CASE;
							 | 
						||
| 
								 | 
							
								  $__TestingReq_TEST_CASE = $thing;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function &__getTestCase() {
							 | 
						||
| 
								 | 
							
								  global $__TestingReq_TEST_CASE;
							 | 
						||
| 
								 | 
							
								  return $__TestingReq_TEST_CASE;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestingReq extends Auth_OpenID_SRegRequest {
							 | 
						||
| 
								 | 
							
								    static function fromOpenIDRequest($thing, $test_case)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        __setTestCase($test_case);
							 | 
						||
| 
								 | 
							
								        $obj = parent::fromOpenIDRequest($thing, 'TestingReq');
							 | 
						||
| 
								 | 
							
								        return $obj;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    static function _getSRegNS($unused)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $__ns_sentinel;
							 | 
						||
| 
								 | 
							
								        return $__ns_sentinel;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function parseExtensionArgs($args)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $__args_sentinel;
							 | 
						||
| 
								 | 
							
								        $tc =& __getTestCase();
							 | 
						||
| 
								 | 
							
								        $tc->assertEquals($__args_sentinel, $args);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SRegRequestTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function test_constructEmpty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(null, $req->policy_url);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(Auth_OpenID_SREG_NS_URI, $req->ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_constructFields()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build(
							 | 
						||
| 
								 | 
							
								                                              array('nickname'),
							 | 
						||
| 
								 | 
							
								                                              array('gender'),
							 | 
						||
| 
								 | 
							
								                                              'http://policy',
							 | 
						||
| 
								 | 
							
								                                              'http://sreg.ns_uri');
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('gender'), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname'), $req->required);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('http://policy', $req->policy_url);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('http://sreg.ns_uri', $req->ns_uri);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_constructBadFields()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(Auth_OpenID_SRegRequest::build(array('elvis')) === null);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_fromOpenIDResponse()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $openid_req = new Auth_OpenID_Request();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $msg = new SentinelFakeMessage($this);
							 | 
						||
| 
								 | 
							
								        $openid_req->message =& $msg;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $req = TestingReq::fromOpenIDRequest($openid_req, $this);
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(is_a($req, 'TestingReq'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_empty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array()));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_extraIgnored()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('janrain' => 'inc')));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_nonStrict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('required' => 'beans')));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_strict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->parseExtensionArgs(array('required' => 'beans'),
							 | 
						||
| 
								 | 
							
								                                                    true));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_policy()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(
							 | 
						||
| 
								 | 
							
								                                array('policy_url' => 'http://policy'), true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('http://policy', $req->policy_url);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_requiredEmpty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('required' => ''), true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_optionalEmpty()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => ''), true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_optionalSingle()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => 'nickname'), true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname'), $req->optional);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_optionalList()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => 'nickname,email'), true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname','email'), $req->optional);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_optionalListBadNonStrict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => 'nickname,email,beer')));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname','email'), $req->optional);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_optionalListBadStrict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->parseExtensionArgs(array('optional' => 'nickname,email,beer'),
							 | 
						||
| 
								 | 
							
								                                                    true));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_bothNonStrict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => 'nickname',
							 | 
						||
| 
								 | 
							
								                                                         'required' => 'nickname')));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname'), $req->required);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_bothStrict()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->parseExtensionArgs(
							 | 
						||
| 
								 | 
							
								                                                    array('optional' => 'nickname',
							 | 
						||
| 
								 | 
							
								                                                          'required' => 'nickname'),
							 | 
						||
| 
								 | 
							
								                                                    true));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_parseExtensionArgs_bothList()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->parseExtensionArgs(array('optional' => 'nickname,email',
							 | 
						||
| 
								 | 
							
								                                                         'required' => 'country,postcode'),
							 | 
						||
| 
								 | 
							
								                                                   true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname','email'), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('country','postcode'), $req->required);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_allRequestedFields()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->allRequestedFields());
							 | 
						||
| 
								 | 
							
								        $req->requestField('nickname');
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname'), $req->allRequestedFields());
							 | 
						||
| 
								 | 
							
								        $req->requestField('gender', true);
							 | 
						||
| 
								 | 
							
								        $requested = $req->allRequestedFields();
							 | 
						||
| 
								 | 
							
								        sort($requested);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('gender', 'nickname'), $requested);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_wereFieldsRequested()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->wereFieldsRequested());
							 | 
						||
| 
								 | 
							
								        $req->requestField('gender');
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->wereFieldsRequested());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_contains()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $Auth_OpenID_sreg_data_fields;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        foreach ($Auth_OpenID_sreg_data_fields as $field_name => $desc) {
							 | 
						||
| 
								 | 
							
								            $this->assertFalse($req->contains($field_name));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->contains('something else'));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $req->requestField('nickname');
							 | 
						||
| 
								 | 
							
								        foreach ($Auth_OpenID_sreg_data_fields as $field_name => $desc) {
							 | 
						||
| 
								 | 
							
								            if ($field_name == 'nickname') {
							 | 
						||
| 
								 | 
							
								                $this->assertTrue($req->contains($field_name));
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                $this->assertFalse($req->contains($field_name));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_requestField_bogus()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->requestField('something else'));
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->requestField('something else', true));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_requestField()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $Auth_OpenID_sreg_data_fields;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Add all of the fields, one at a time
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $fields = array_keys($Auth_OpenID_sreg_data_fields);
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $field_name) {
							 | 
						||
| 
								 | 
							
								            $req->requestField($field_name);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // By default, adding the same fields over again has no effect
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $field_name) {
							 | 
						||
| 
								 | 
							
								            $req->requestField($field_name);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting a field as required overrides requesting it as
							 | 
						||
| 
								 | 
							
								        // optional
							 | 
						||
| 
								 | 
							
								        $expected = $fields;
							 | 
						||
| 
								 | 
							
								        $overridden = array_pop($expected);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->requestField($overridden, true));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($expected, $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($overridden), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting a field as required overrides requesting it as
							 | 
						||
| 
								 | 
							
								        // optional
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $field_name) {
							 | 
						||
| 
								 | 
							
								            $this->assertTrue($req->requestField($field_name, true));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $f) {
							 | 
						||
| 
								 | 
							
								            $this->assertTrue(in_array($f, $req->required));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting it as optional does not downgrade it to optional
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $field_name) {
							 | 
						||
| 
								 | 
							
								            $req->requestField($field_name);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($fields as $f) {
							 | 
						||
| 
								 | 
							
								            $this->assertTrue(in_array($f, $req->required));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_requestFields_type()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertFalse($req->requestFields('nickname'));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_requestFields()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        global $Auth_OpenID_sreg_data_fields;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Add all of the fields
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $fields = array_keys($Auth_OpenID_sreg_data_fields);
							 | 
						||
| 
								 | 
							
								        $req->requestFields($fields);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // By default, adding the same fields over again has no effect
							 | 
						||
| 
								 | 
							
								        $req->requestFields($fields);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting a field as required overrides requesting it as
							 | 
						||
| 
								 | 
							
								        // optional
							 | 
						||
| 
								 | 
							
								        $expected = $fields;
							 | 
						||
| 
								 | 
							
								        $overridden = array_shift($expected);
							 | 
						||
| 
								 | 
							
								        $req->requestFields(array($overridden), true);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($expected as $f) {
							 | 
						||
| 
								 | 
							
								            $this->assertTrue(in_array($f, $req->optional));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($overridden), $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting a field as required overrides requesting it as
							 | 
						||
| 
								 | 
							
								        // optional
							 | 
						||
| 
								 | 
							
								        $req->requestFields($fields, true);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->required);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Requesting it as optional does not downgrade it to optional
							 | 
						||
| 
								 | 
							
								        $req->requestFields($fields);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->optional);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals($fields, $req->required);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_getExtensionArgs()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $req = Auth_OpenID_SRegRequest::build();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->requestField('nickname'));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('optional' => 'nickname'),
							 | 
						||
| 
								 | 
							
								                            $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->requestField('email'));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('optional' => 'nickname,email'),
							 | 
						||
| 
								 | 
							
								                            $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->requestField('gender', true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('optional' => 'nickname,email',
							 | 
						||
| 
								 | 
							
								                                  'required' => 'gender'),
							 | 
						||
| 
								 | 
							
								                            $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertTrue($req->requestField('postcode', true));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('optional' => 'nickname,email',
							 | 
						||
| 
								 | 
							
								                                  'required' => 'gender,postcode'),
							 | 
						||
| 
								 | 
							
								                            $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $req->policy_url = 'http://policy.invalid/';
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('optional' => 'nickname,email',
							 | 
						||
| 
								 | 
							
								                                  'required' => 'gender,postcode',
							 | 
						||
| 
								 | 
							
								                                  'policy_url' => 'http://policy.invalid/'),
							 | 
						||
| 
								 | 
							
								                            $req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class DummySuccessResponse {
							 | 
						||
| 
								 | 
							
								    function DummySuccessResponse($message, $signed_stuff)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->message = $message;
							 | 
						||
| 
								 | 
							
								        $this->signed_stuff = $signed_stuff;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function getSignedNS($ns_uri)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->signed_stuff;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SRegResponseTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function test_fromSuccessResponse_signed()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $message = Auth_OpenID_Message::fromOpenIDArgs(array(
							 | 
						||
| 
								 | 
							
								            'sreg.nickname' => 'The Mad Stork',
							 | 
						||
| 
								 | 
							
								            ));
							 | 
						||
| 
								 | 
							
								        $success_resp = new DummySuccessResponse($message, array());
							 | 
						||
| 
								 | 
							
								        $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($success_resp);
							 | 
						||
| 
								 | 
							
								        $this->assertTrue(count($sreg_resp->contents()) === 0);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test_fromSuccessResponse_unsigned()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $message = Auth_OpenID_Message::fromOpenIDArgs(array(
							 | 
						||
| 
								 | 
							
								            'sreg.nickname' => 'The Mad Stork',
							 | 
						||
| 
								 | 
							
								            ));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $success_resp = new DummySuccessResponse($message, array());
							 | 
						||
| 
								 | 
							
								        $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($success_resp,
							 | 
						||
| 
								 | 
							
								                                                                   false);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array('nickname' => 'The Mad Stork'),
							 | 
						||
| 
								 | 
							
								                            $sreg_resp->contents());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class SendFieldsTest extends PHPUnit_Framework_TestCase {
							 | 
						||
| 
								 | 
							
								    function _test($uri)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        // Create a request message with simple registration fields
							 | 
						||
| 
								 | 
							
								        $sreg_req = Auth_OpenID_SRegRequest::build(array('nickname', 'email'),
							 | 
						||
| 
								 | 
							
								                                                   array('fullname'));
							 | 
						||
| 
								 | 
							
								        $req_msg = new Auth_OpenID_Message($uri);
							 | 
						||
| 
								 | 
							
								        $req_msg->updateArgs(Auth_OpenID_SREG_NS_URI,
							 | 
						||
| 
								 | 
							
								                             $sreg_req->getExtensionArgs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $req = new Auth_OpenID_Request();
							 | 
						||
| 
								 | 
							
								        $req->message =& $req_msg;
							 | 
						||
| 
								 | 
							
								        $req->namespace = $req_msg->getOpenIDNamespace();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // -> send checkid_* request
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Create an empty response message
							 | 
						||
| 
								 | 
							
								        $resp_msg = new Auth_OpenID_Message($uri);
							 | 
						||
| 
								 | 
							
								        $resp = new Auth_OpenID_ServerResponse($req);
							 | 
						||
| 
								 | 
							
								        $resp->fields = $resp_msg;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data = array(
							 | 
						||
| 
								 | 
							
								                      'nickname' => 'linusaur',
							 | 
						||
| 
								 | 
							
								                      'postcode' => '12345',
							 | 
						||
| 
								 | 
							
								                      'country' => 'US',
							 | 
						||
| 
								 | 
							
								                      'gender' => 'M',
							 | 
						||
| 
								 | 
							
								                      'fullname' => 'Leonhard Euler',
							 | 
						||
| 
								 | 
							
								                      'email' => 'president@whitehouse.gov',
							 | 
						||
| 
								 | 
							
								                      'dob' => '0000-00-00',
							 | 
						||
| 
								 | 
							
								                      'language' => 'en-us');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Put the requested data fields in the response message
							 | 
						||
| 
								 | 
							
								        $sreg_resp = Auth_OpenID_SRegResponse::extractResponse($sreg_req, $data);
							 | 
						||
| 
								 | 
							
								        $resp->addExtension($sreg_resp);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // <- send id_res response
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Extract the fields that were sent
							 | 
						||
| 
								 | 
							
								        $sreg_data_resp = $resp->fields->getArgs(Auth_OpenID_SREG_NS_URI);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(
							 | 
						||
| 
								 | 
							
								                            array('nickname' => 'linusaur',
							 | 
						||
| 
								 | 
							
								                                  'email' => 'president@whitehouse.gov',
							 | 
						||
| 
								 | 
							
								                                  'fullname' => 'Leonhard Euler'),
							 | 
						||
| 
								 | 
							
								                            $sreg_data_resp);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function test()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        foreach (array(Auth_OpenID_OPENID1_NS,
							 | 
						||
| 
								 | 
							
								                       Auth_OpenID_OPENID2_NS) as $uri) {
							 | 
						||
| 
								 | 
							
								            $this->_test($uri);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Tests_Auth_OpenID_SReg extends PHPUnit_Framework_TestSuite {
							 | 
						||
| 
								 | 
							
								    function getName()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return "Tests_Auth_OpenID_SReg";
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    function Tests_Auth_OpenID_SReg()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('SRegURITest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('CheckFieldNameTest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('SupportsSRegTest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('GetNSTest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('SRegRequestTest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('SRegResponseTest');
							 | 
						||
| 
								 | 
							
								        $this->addTestSuite('SendFieldsTest');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |