forked from GNUsocial/gnu-social
2a06261f75
This adds a composer.json for all dependencies that are available
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');
|
|
}
|
|
}
|
|
|