From 580cd62f0a4fac5dba37a8a152afaecd99e8c767 Mon Sep 17 00:00:00 2001
From: Cash Costello
Date: Thu, 15 Dec 2011 20:07:48 -0500
Subject: removed old libraries - depends on openid_api now
---
.../Tests/Auth/OpenID/AX.php | 792 ------
.../Tests/Auth/OpenID/Association.php | 54 -
.../Tests/Auth/OpenID/AssociationResponse.php | 377 ---
.../Tests/Auth/OpenID/AuthRequest.php | 299 ---
.../Tests/Auth/OpenID/BigMath.php | 234 --
.../Tests/Auth/OpenID/Consumer.php | 2553 --------------------
.../Tests/Auth/OpenID/CryptUtil.php | 54 -
.../Tests/Auth/OpenID/DiffieHellman.php | 159 --
.../Tests/Auth/OpenID/Discover_OpenID.php | 781 ------
.../Tests/Auth/OpenID/Extension.php | 44 -
.../Tests/Auth/OpenID/HMAC.php | 165 --
.../Tests/Auth/OpenID/KVForm.php | 260 --
.../Tests/Auth/OpenID/MemStore.php | 176 --
.../Tests/Auth/OpenID/Message.php | 1251 ----------
.../Tests/Auth/OpenID/Negotiation.php | 346 ---
.../Tests/Auth/OpenID/Nonce.php | 166 --
.../Tests/Auth/OpenID/OpenID_Yadis.php | 228 --
.../Tests/Auth/OpenID/PAPE.php | 244 --
.../Tests/Auth/OpenID/Parse.php | 185 --
.../Tests/Auth/OpenID/RPVerify.php | 293 ---
.../Tests/Auth/OpenID/SReg.php | 672 ------
.../Tests/Auth/OpenID/Server.php | 2463 -------------------
.../Tests/Auth/OpenID/StoreTest.php | 755 ------
.../Tests/Auth/OpenID/TestUtil.php | 60 -
.../Tests/Auth/OpenID/TrustRoot.php | 172 --
.../Tests/Auth/OpenID/URINorm.php | 66 -
.../Tests/Auth/OpenID/Util.php | 319 ---
.../Tests/Auth/OpenID/VerifyDisco.php | 422 ----
.../Tests/Auth/OpenID/data/dhexch | 25 -
.../Tests/Auth/OpenID/data/dhpriv | 29 -
.../Tests/Auth/OpenID/data/hmac-sha1.txt | 49 -
.../Tests/Auth/OpenID/data/hmac-sha256.txt | 29 -
.../Tests/Auth/OpenID/data/linkparse.txt | 594 -----
.../Tests/Auth/OpenID/data/n2b64 | 650 -----
.../Tests/Auth/OpenID/data/openid.html | 11 -
.../Auth/OpenID/data/test_discover_openid.html | 11 -
.../Auth/OpenID/data/test_discover_openid2.html | 11 -
.../OpenID/data/test_discover_openid2_xrds.xml | 12 -
.../test_discover_openid2_xrds_no_local_id.xml | 11 -
.../OpenID/data/test_discover_openid_1_and_2.html | 11 -
.../data/test_discover_openid_1_and_2_xrds.xml | 16 -
...t_discover_openid_1_and_2_xrds_bad_delegate.xml | 17 -
.../data/test_discover_openid_and_yadis.html | 12 -
.../data/test_discover_openid_no_delegate.html | 10 -
.../Auth/OpenID/data/test_discover_openid_ssl.xml | 19 -
.../OpenID/data/test_discover_yadis_0entries.xml | 12 -
.../data/test_discover_yadis_2_bad_local_id.xml | 15 -
.../data/test_discover_yadis_2entries_delegate.xml | 22 -
.../data/test_discover_yadis_2entries_idp.xml | 21 -
.../data/test_discover_yadis_another_delegate.xml | 14 -
.../Auth/OpenID/data/test_discover_yadis_idp.xml | 12 -
.../data/test_discover_yadis_idp_delegate.xml | 13 -
.../data/test_discover_yadis_no_delegate.xml | 11 -
.../Tests/Auth/OpenID/data/trustroot.txt | 149 --
.../Tests/Auth/OpenID/data/urinorm.txt | 87 -
.../Tests/Auth/Yadis/DiscoverData.php | 152 --
.../Tests/Auth/Yadis/Discover_Yadis.php | 230 --
.../Tests/Auth/Yadis/ParseHTML.php | 86 -
.../Tests/Auth/Yadis/TestUtil.php | 30 -
.../Tests/Auth/Yadis/XRDS.php | 247 --
.../Tests/Auth/Yadis/XRI.php | 142 --
.../Tests/Auth/Yadis/Yadis.php | 88 -
.../Tests/Auth/Yadis/data/README | 12 -
.../Tests/Auth/Yadis/data/accept.txt | 118 -
.../Tests/Auth/Yadis/data/brian.multi.xrds | 38 -
.../Tests/Auth/Yadis/data/brian.multi_uri.xrds | 16 -
.../Tests/Auth/Yadis/data/brian.xrds | 16 -
.../Tests/Auth/Yadis/data/brian_priority.xrds | 22 -
.../Auth/Yadis/data/delegated-20060809-r1.xrds | 34 -
.../Auth/Yadis/data/delegated-20060809-r2.xrds | 34 -
.../Tests/Auth/Yadis/data/delegated-20060809.xrds | 34 -
.../Tests/Auth/Yadis/data/example-xrds.xml | 14 -
.../Tests/Auth/Yadis/data/no-xrd.xml | 7 -
.../Tests/Auth/Yadis/data/not-xrds.xml | 2 -
.../Tests/Auth/Yadis/data/pip.xrds | 22 -
.../Tests/Auth/Yadis/data/prefixsometimes.xrds | 34 -
.../Tests/Auth/Yadis/data/ref.xrds | 109 -
.../Tests/Auth/Yadis/data/sometimesprefix.xrds | 34 -
.../Tests/Auth/Yadis/data/spoof1.xrds | 25 -
.../Tests/Auth/Yadis/data/spoof2.xrds | 25 -
.../Tests/Auth/Yadis/data/spoof3.xrds | 37 -
.../Tests/Auth/Yadis/data/subsegments.xrds | 58 -
.../Tests/Auth/Yadis/data/test1-discover.txt | 137 --
.../Tests/Auth/Yadis/data/test1-parsehtml.txt | 149 --
.../Tests/Auth/Yadis/data/test1-xrd.xml | 39 -
.../Tests/Auth/Yadis/data/uri_priority.xrds | 16 -
.../openid-php-openid-782224d/Tests/TestDriver.php | 202 --
87 files changed, 17672 deletions(-)
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/AX.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Association.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/AssociationResponse.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/AuthRequest.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/BigMath.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Consumer.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/CryptUtil.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/DiffieHellman.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Discover_OpenID.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Extension.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/HMAC.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/KVForm.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/MemStore.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Message.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Negotiation.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Nonce.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/OpenID_Yadis.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/PAPE.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Parse.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/RPVerify.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/SReg.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Server.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/StoreTest.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/TestUtil.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/TrustRoot.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/URINorm.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/Util.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/VerifyDisco.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhexch
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhpriv
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha1.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha256.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/linkparse.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/n2b64
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/openid.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid2.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid2_xrds.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid2_xrds_no_local_id.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_1_and_2.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_1_and_2_xrds.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_1_and_2_xrds_bad_delegate.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_and_yadis.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_no_delegate.html
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_openid_ssl.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_0entries.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_2_bad_local_id.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_2entries_delegate.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_2entries_idp.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_another_delegate.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_idp.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_idp_delegate.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/test_discover_yadis_no_delegate.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/trustroot.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/OpenID/data/urinorm.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/DiscoverData.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/Discover_Yadis.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/ParseHTML.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/TestUtil.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/XRDS.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/XRI.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/Yadis.php
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/README
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/accept.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/brian.multi.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/brian.multi_uri.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/brian.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/brian_priority.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/delegated-20060809-r1.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/delegated-20060809-r2.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/delegated-20060809.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/example-xrds.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/no-xrd.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/not-xrds.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/pip.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/prefixsometimes.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/ref.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/sometimesprefix.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/spoof1.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/spoof2.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/spoof3.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/subsegments.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/test1-discover.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/test1-parsehtml.txt
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/test1-xrd.xml
delete mode 100644 models/openid-php-openid-782224d/Tests/Auth/Yadis/data/uri_priority.xrds
delete mode 100644 models/openid-php-openid-782224d/Tests/TestDriver.php
(limited to 'models/openid-php-openid-782224d/Tests')
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AX.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/AX.php
deleted file mode 100644
index 0a85ed2f1..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AX.php
+++ /dev/null
@@ -1,792 +0,0 @@
-_newArgs();
- }
-}
-
-class AXMessageTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->bax = new BogusAXMessage();
- }
-
- function test_checkMode()
- {
- $result = $this->bax->_checkMode(array());
- $this->assertTrue(Auth_OpenID_AX::isError($result));
-
- $result = $this->bax->_checkMode(array('mode' => 'fetch_request'));
- $this->assertTrue(Auth_OpenID_AX::isError($result));
-
- // does not raise an exception when the mode is right
- $result = $this->bax->_checkMode(array('mode' => $this->bax->mode));
- $this->assertTrue($result === true);
- }
-
- /*
- * _newArgs generates something that has the correct mode
- */
- function test_checkMode_newArgs()
- {
- $result = $this->bax->_checkMode($this->bax->_newArgs());
- $this->assertTrue($result === true);
- }
-}
-
-class AttrInfoTest extends PHPUnit_Framework_TestCase {
- function test_construct()
- {
- $type_uri = 'a uri';
- $ainfo = Auth_OpenID_AX_AttrInfo::make($type_uri);
-
- $this->assertEquals($type_uri, $ainfo->type_uri);
- $this->assertEquals(1, $ainfo->count);
- $this->assertFalse($ainfo->required);
- $this->assertTrue($ainfo->alias === null);
- }
-}
-
-class ToTypeURIsTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->aliases = new Auth_OpenID_NamespaceMap();
- }
-
- function test_empty()
- {
- foreach (array(null, '') as $empty) {
- $uris = Auth_OpenID_AX_toTypeURIs($this->aliases, $empty);
- $this->assertEquals(array(), $uris);
- }
- }
-
- function test_undefined()
- {
- $result = Auth_OpenID_AX_toTypeURIs($this->aliases,
- 'http://janrain.com/');
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- }
-
- function test_one()
- {
- $uri = 'http://janrain.com/';
- $alias = 'openid_hackers';
- $this->aliases->addAlias($uri, $alias);
- $uris = Auth_OpenID_AX_toTypeURIs($this->aliases, $alias);
- $this->assertEquals(array($uri), $uris);
- }
-
- function test_two()
- {
- $uri1 = 'http://janrain.com/';
- $alias1 = 'openid_hackers';
- $this->aliases->addAlias($uri1, $alias1);
-
- $uri2 = 'http://jyte.com/';
- $alias2 = 'openid_hack';
- $this->aliases->addAlias($uri2, $alias2);
-
- $uris = Auth_OpenID_AX_toTypeURIs($this->aliases,
- implode(',', array($alias1, $alias2)));
- $this->assertEquals(array($uri1, $uri2), $uris);
- }
-}
-
-class ParseAXValuesTest extends PHPUnit_Framework_TestCase {
- function failUnlessAXKeyError($ax_args)
- {
- $msg = new Auth_OpenID_AX_KeyValueMessage();
- $result = $msg->parseExtensionArgs($ax_args);
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- $this->assertTrue($result->message);
- }
-
- function failUnlessAXValues($ax_args, $expected_args)
- {
- $msg = new Auth_OpenID_AX_KeyValueMessage();
- $msg->parseExtensionArgs($ax_args);
- $this->assertEquals($expected_args, $msg->data);
- }
-
- function test_emptyIsValid()
- {
- $this->failUnlessAXValues(array(), array());
- }
-
- function test_invalidAlias()
- {
- $types = array(
- 'Auth_OpenID_AX_KeyValueMessage',
- 'Auth_OpenID_AX_FetchRequest'
- );
-
- $inputs = array(
- array('type.a.b' => 'urn:foo',
- 'count.a.b' => '1'),
- array('type.a,b' => 'urn:foo',
- 'count.a,b' => '1'),
- );
-
- foreach ($types as $typ) {
- foreach ($inputs as $input) {
- $msg = new $typ();
- $result = $msg->parseExtensionArgs($input);
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- }
- }
- }
-
- function test_missingValueForAliasExplodes()
- {
- $this->failUnlessAXKeyError(array('type.foo' => 'urn:foo'));
- }
-
- function test_countPresentButNotValue()
- {
- $this->failUnlessAXKeyError(array('type.foo' => 'urn:foo',
- 'count.foo' => '1'));
- }
-
- function test_invalidCountValue()
- {
- $msg = new Auth_OpenID_AX_FetchRequest();
-
- $result = $msg->parseExtensionArgs(
- array('type.foo' => 'urn:foo',
- 'count.foo' => 'bogus'));
-
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- }
-
- function test_requestUnlimitedValues()
- {
- $msg = new Auth_OpenID_AX_FetchRequest();
-
- $result = $msg->parseExtensionArgs(
- array('mode' => 'fetch_request',
- 'required' => 'foo',
- 'type.foo' => 'urn:foo',
- 'count.foo' => Auth_OpenID_AX_UNLIMITED_VALUES));
-
- $attrs = $msg->iterAttrs();
- $foo = $attrs[0];
-
- $this->assertTrue($foo->count == Auth_OpenID_AX_UNLIMITED_VALUES);
- $this->assertTrue($foo->wantsUnlimitedValues());
- }
-
- function test_longAlias()
- {
- // Spec minimum length is 32 characters. This is a silly test
- // for this library, but it's here for completeness.
- $alias = str_repeat('x', Auth_OpenID_AX_MINIMUM_SUPPORTED_ALIAS_LENGTH);
-
- $msg = new Auth_OpenID_AX_KeyValueMessage();
- $result = $msg->parseExtensionArgs(
- array('type.' . $alias => 'urn:foo',
- 'count.' . $alias => '1',
- 'value.'.$alias.'.1' => 'first')
- );
- $this->assertFalse(Auth_OpenID_AX::isError($result));
- }
-
- function test_countPresentAndIsZero()
- {
- $this->failUnlessAXValues(
- array('type.foo' => 'urn:foo',
- 'count.foo' => '0',
- ), array('urn:foo' => array()));
- }
-
- function test_singletonEmpty()
- {
- $this->failUnlessAXValues(
- array('type.foo' => 'urn:foo',
- 'value.foo' => '',
- ), array('urn:foo' => array()));
- }
-
- function test_doubleAlias()
- {
- $this->failUnlessAXKeyError(
- array('type.foo' => 'urn:foo',
- 'value.foo' => '',
- 'type.bar' => 'urn:foo',
- 'value.bar' => '',
- ));
- }
-
- function test_doubleSingleton()
- {
- $this->failUnlessAXValues(
- array('type.foo' => 'urn:foo',
- 'value.foo' => '',
- 'type.bar' => 'urn:bar',
- 'value.bar' => '',
- ), array('urn:foo' => array(), 'urn:bar' => array()));
- }
-
- function test_singletonValue()
- {
- $this->failUnlessAXValues(
- array('type.foo' => 'urn:foo',
- 'value.foo' => 'Westfall',
- ), array('urn:foo' => array('Westfall')));
- }
-}
-
-class FetchRequestTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->msg = new Auth_OpenID_AX_FetchRequest();
- $this->type_a = 'http://janrain.example.com/a';
- $this->alias_a = 'a';
- }
-
- function test_mode()
- {
- $this->assertEquals($this->msg->mode, 'fetch_request');
- }
-
- function test_construct()
- {
- $this->assertEquals(array(), $this->msg->requested_attributes);
- $this->assertEquals(null, $this->msg->update_url);
-
- $msg = new Auth_OpenID_AX_FetchRequest('hailstorm');
- $this->assertEquals(array(), $msg->requested_attributes);
- $this->assertEquals('hailstorm', $msg->update_url);
- }
-
- function test_add()
- {
- $uri = 'mud://puddle';
-
- // Not yet added:
- $this->assertFalse(in_array($uri, $this->msg->iterTypes()));
-
- $attr = Auth_OpenID_AX_AttrInfo::make($uri);
- $this->msg->add($attr);
-
- // Present after adding
- $this->assertTrue(in_array($uri, $this->msg->iterTypes()));
- }
-
- function test_addTwice()
- {
- $uri = 'lightning://storm';
-
- $attr = Auth_OpenID_AX_AttrInfo::make($uri);
- $this->msg->add($attr);
- $this->assertTrue(Auth_OpenID_AX::isError($this->msg->add($attr)));
- }
-
- function test_getExtensionArgs_empty()
- {
- $expected_args = array(
- 'mode' =>'fetch_request',
- );
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs());
- }
-
- function test_getExtensionArgs_noAlias()
- {
- $attr = Auth_OpenID_AX_AttrInfo::make('type://of.transportation');
-
- $this->msg->add($attr);
- $ax_args = $this->msg->getExtensionArgs();
- $found = false;
- $alias = null;
-
- foreach ($ax_args as $k => $v) {
- if (($v == $attr->type_uri) && (strpos($k, 'type.') === 0)) {
- $alias = substr($k, 5);
- $found = true;
- break;
- }
- }
-
- if (!$found) {
- $this->fail("Didn't find the type definition");
- return;
- }
-
- $this->failUnlessExtensionArgs(array(
- 'type.' . $alias => $attr->type_uri,
- 'if_available' => $alias));
- }
-
- function test_getExtensionArgs_alias_if_available()
- {
- $attr = Auth_OpenID_AX_AttrInfo::make(
- 'type://of.transportation', 1, false,
- 'transport');
-
- $this->msg->add($attr);
- $this->failUnlessExtensionArgs(array(
- 'type.' . $attr->alias => $attr->type_uri,
- 'if_available' => $attr->alias));
- }
-
- function test_getExtensionArgs_alias_req()
- {
- $attr = Auth_OpenID_AX_AttrInfo::make(
- 'type://of.transportation',
- 1, true, 'transport');
-
- $this->msg->add($attr);
- $this->failUnlessExtensionArgs(array(
- 'type.' . $attr->alias => $attr->type_uri,
- 'required' => $attr->alias));
- }
-
- /*
- * Make sure that getExtensionArgs has the expected result
- *
- * This method will fill in the mode.
- */
- function failUnlessExtensionArgs($expected_args)
- {
- $expected_args['mode'] = $this->msg->mode;
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs());
- }
-
- function test_isIterable()
- {
- $this->assertEquals(array(), $this->msg->iterAttrs());
- $this->assertEquals(array(), $this->msg->iterTypes());
- }
-
- function test_getRequiredAttrs_empty()
- {
- $this->assertEquals(array(), $this->msg->getRequiredAttrs());
- }
-
- function test_parseExtensionArgs_extraType()
- {
- $extension_args = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a);
-
- $this->assertTrue(Auth_OpenID_AX::isError(
- $this->msg->parseExtensionArgs($extension_args)));
- }
-
- function test_parseExtensionArgs()
- {
- $extension_args = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'if_available' => $this->alias_a);
-
- $this->msg->parseExtensionArgs($extension_args);
- $this->assertEquals(array($this->type_a), $this->msg->iterTypes());
- $attr_info = Auth_OpenID::arrayGet($this->msg->requested_attributes,
- $this->type_a);
- $this->assertTrue($attr_info);
- $this->assertFalse($attr_info->required);
- $this->assertEquals($this->type_a, $attr_info->type_uri);
- $this->assertEquals($this->alias_a, $attr_info->alias);
- $this->assertEquals(array($attr_info),
- $this->msg->iterAttrs());
- }
-
- function test_extensionArgs_idempotent()
- {
- $extension_args = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'if_available' => $this->alias_a);
-
- $this->msg->parseExtensionArgs($extension_args);
- $this->assertEquals($extension_args, $this->msg->getExtensionArgs());
-
- $attr = $this->msg->requested_attributes[$this->type_a];
- $this->assertFalse($attr->required);
- }
-
- function test_extensionArgs_idempotent_count_required()
- {
- $extension_args = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'count.' . $this->alias_a => '2',
- 'required' => $this->alias_a);
-
- $this->msg->parseExtensionArgs($extension_args);
- $this->assertEquals($extension_args, $this->msg->getExtensionArgs());
-
- $attr = $this->msg->requested_attributes[$this->type_a];
- $this->assertTrue($attr->required);
- }
-
- function test_extensionArgs_count1()
- {
- $extension_args = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'count.' . $this->alias_a => '1',
- 'if_available' => $this->alias_a);
-
- $extension_args_norm = array(
- 'mode' => 'fetch_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'if_available' => $this->alias_a);
-
- $this->msg->parseExtensionArgs($extension_args);
- $this->assertEquals($extension_args_norm, $this->msg->getExtensionArgs());
- }
-
- function test_openidNoRealm()
- {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'checkid_setup',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.update_url' => 'http://different.site/path',
- 'ax.mode' => 'fetch_request',
- ));
- $openid_req = new Auth_OpenID_Request();
- $openid_req->message =& $openid_req_msg;
- $result = Auth_OpenID_AX_FetchRequest::fromOpenIDRequest(
- $openid_req);
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- }
-
- function test_openidUpdateURLVerificationError()
- {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'checkid_setup',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'realm' => 'http://example.com/realm',
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.update_url' => 'http://different.site/path',
- 'ax.mode' => 'fetch_request',
- ));
- $openid_req = new Auth_OpenID_Request();
- $openid_req->message =& $openid_req_msg;
- $result = Auth_OpenID_AX_FetchRequest::fromOpenIDRequest($openid_req);
- $this->assertTrue(Auth_OpenID_AX::isError($result));
- }
-
- function test_openidUpdateURLVerificationSuccess()
- {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'checkid_setup',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'realm' => 'http://example.com/realm',
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.update_url' => 'http://example.com/realm/update_path',
- 'ax.mode' => 'fetch_request',
- ));
- $openid_req = new Auth_OpenID_Request();
- $openid_req->message =& $openid_req_msg;
- $fr = Auth_OpenID_AX_FetchRequest::fromOpenIDRequest($openid_req);
- $this->assertFalse(Auth_OpenID_AX::isError($fr));
- }
-
- function test_openidUpdateURLVerificationSuccessReturnTo()
- {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'checkid_setup',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'return_to' => 'http://example.com/realm',
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.update_url' => 'http://example.com/realm/update_path',
- 'ax.mode' => 'fetch_request',
- ));
- $openid_req = new Auth_OpenID_Request();
- $openid_req->message =& $openid_req_msg;
- $fr = Auth_OpenID_AX_FetchRequest::fromOpenIDRequest($openid_req);
- $this->assertFalse(Auth_OpenID_AX::isError($fr));
- }
-}
-
-class FauxEndpoint {
- function FauxEndpoint() {
- $this->claimed_id = 'http://some.url/';
- }
-}
-
-class FetchResponseTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->msg = new Auth_OpenID_AX_FetchResponse();
- $this->value_a = 'monkeys';
- $this->type_a = 'http://phone.home/';
- $this->alias_a = 'robocop';
- $this->request_update_url = 'http://update.bogus/';
- }
-
- function test_construct()
- {
- $this->assertTrue($this->msg->update_url === null);
- $this->assertEquals(array(), $this->msg->data);
- }
-
- function test_getExtensionArgs_empty()
- {
- $expected_args = array(
- 'mode' => 'fetch_response',
- );
- $req = null;
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs($req));
- }
-
- function test_getExtensionArgs_empty_request()
- {
- $expected_args = array(
- 'mode' => 'fetch_response',
- );
- $req = new Auth_OpenID_AX_FetchRequest();
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs($req));
- }
-
- function test_getExtensionArgs_empty_request_some()
- {
- $uri = 'http://not.found/';
- $alias = 'ext0';
-
- $expected_args = array(
- 'mode' => 'fetch_response',
- 'type.' . $alias => $uri,
- 'count.' . $alias => '0'
- );
- $req = new Auth_OpenID_AX_FetchRequest();
- $req->add(Auth_OpenID_AX_AttrInfo::make('http://not.found/'));
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs($req));
- }
-
- function test_updateUrlInResponse()
- {
- $uri = 'http://not.found/';
- $alias = 'ext0';
-
- $expected_args = array(
- 'mode' => 'fetch_response',
- 'update_url' => $this->request_update_url,
- 'type.' . $alias => $uri,
- 'count.' . $alias => '0'
- );
- $req = new Auth_OpenID_AX_FetchRequest($this->request_update_url);
- $req->add(Auth_OpenID_AX_AttrInfo::make($uri));
- $this->assertEquals($expected_args, $this->msg->getExtensionArgs($req));
- }
-
- function test_getExtensionArgs_some_request()
- {
- $expected_args = array(
- 'mode' => 'fetch_response',
- 'type.' . $this->alias_a => $this->type_a,
- 'value.' . $this->alias_a . '.1' => $this->value_a,
- 'count.' . $this->alias_a => '1'
- );
-
- $req = new Auth_OpenID_AX_FetchRequest();
- $req->add(Auth_OpenID_AX_AttrInfo::make($this->type_a, 1, false, $this->alias_a));
- $this->msg->addValue($this->type_a, $this->value_a);
-
- $result = $this->msg->getExtensionArgs($req);
- $this->assertEquals($expected_args, $result);
- }
-
- function test_getExtensionArgs_some_not_request()
- {
- $req = new Auth_OpenID_AX_FetchRequest();
- $this->msg->addValue($this->type_a, $this->value_a);
- $this->assertTrue(Auth_OpenID_AX::isError($this->msg->getExtensionArgs($req)));
- }
-
- function test_getSingle_success()
- {
- $req = new Auth_OpenID_AX_FetchRequest();
- $this->msg->addValue($this->type_a, $this->value_a);
- $this->assertEquals($this->value_a, $this->msg->getSingle($this->type_a));
- }
-
- function test_getSingle_none()
- {
- $this->assertEquals(null, $this->msg->getSingle($this->type_a));
- }
-
- function test_getSingle_extra()
- {
- $data = array('x', 'y');
- $this->msg->setValues($this->type_a, $data);
- $this->assertTrue(Auth_OpenID_AX::isError($this->msg->getSingle($this->type_a)));
- }
-
- function test_get()
- {
- $this->assertTrue(Auth_OpenID_AX::isError($this->msg->get($this->type_a)));
- }
-
- function test_fromSuccessResponseWithoutExtension()
- {
- $args = array(
- 'mode' => 'id_res',
- 'ns' => Auth_OpenID_OPENID2_NS
- );
- $sf = array();
- foreach (array_keys($args) as $k) {
- array_push($sf, $k);
- }
- $msg = Auth_OpenID_Message::fromOpenIDArgs($args);
- $e = new FauxEndpoint();
- $resp = new Auth_OpenID_SuccessResponse($e, $msg, $sf);
- $ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($resp);
- $this->assertTrue($ax_resp === null);
- }
-
- function test_fromSuccessResponseWithoutData()
- {
- $args = array(
- 'mode' => 'id_res',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.mode' => 'fetch_response',
- );
- $sf = array();
- foreach (array_keys($args) as $k) {
- array_push($sf, $k);
- }
- $msg = Auth_OpenID_Message::fromOpenIDArgs($args);
- $e = new FauxEndpoint();
- $resp = new Auth_OpenID_SuccessResponse($e, $msg, $sf);
- $ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($resp);
- $this->assertTrue($ax_resp === null);
- }
-
- function test_fromSuccessResponse()
- {
- $name = "ziggy";
- $value = "stardust";
- $uri = "http://david.bowie.name/";
- $args = array(
- 'mode' => 'id_res',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'ns.ax' => Auth_OpenID_AX_NS_URI,
- 'ax.mode' => 'fetch_response',
- 'ax.update_url' => 'http://example.com/realm/update_path',
- 'ax.type.'.$name => $uri,
- 'ax.count.'.$name => '1',
- 'ax.value.'.$name.'.1' => $value,
- );
- $sf = array();
- foreach (array_keys($args) as $k) {
- array_push($sf, $k);
- }
- $msg = Auth_OpenID_Message::fromOpenIDArgs($args);
- $e = new FauxEndpoint();
- $resp = new Auth_OpenID_SuccessResponse($e, $msg, $sf);
- $ax_resp = Auth_OpenID_AX_FetchResponse::fromSuccessResponse($resp, false);
- $this->assertFalse($ax_resp === null);
- $this->assertTrue(is_a($ax_resp, 'Auth_OpenID_AX_FetchResponse'));
- $values = $ax_resp->get($uri);
- $this->assertEquals(array($value), $values);
- }
-}
-
-class StoreRequestTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->msg = new Auth_OpenID_AX_StoreRequest();
- $this->type_a = 'http://three.count/';
- $this->alias_a = 'juggling';
- }
-
- function test_construct()
- {
- $this->assertEquals(array(), $this->msg->data);
- }
-
- function test_getExtensionArgs_empty()
- {
- $args = $this->msg->getExtensionArgs();
- $expected_args = array(
- 'mode' => 'store_request',
- );
- $this->assertEquals($expected_args, $args);
- }
-
- function test_getExtensionArgs_nonempty()
- {
- $data = array('foo', 'bar');
- $this->msg->setValues($this->type_a, $data);
- $aliases = new Auth_OpenID_NamespaceMap();
- $aliases->addAlias($this->type_a, $this->alias_a);
- $args = $this->msg->getExtensionArgs($aliases);
- $expected_args = array(
- 'mode' => 'store_request',
- 'type.' . $this->alias_a => $this->type_a,
- 'count.' . $this->alias_a => '2',
- sprintf('value.%s.1', $this->alias_a) => 'foo',
- sprintf('value.%s.2', $this->alias_a) => 'bar',
- );
- $this->assertEquals($expected_args, $args);
- }
-}
-
-class StoreResponseTest extends PHPUnit_Framework_TestCase {
- function test_success()
- {
- $msg = new Auth_OpenID_AX_StoreResponse();
- $this->assertTrue($msg->succeeded());
- $this->assertFalse($msg->error_message);
- $this->assertEquals(array('mode' => 'store_response_success'),
- $msg->getExtensionArgs());
- }
-
- function test_fail_nomsg()
- {
- $msg = new Auth_OpenID_AX_StoreResponse(false);
- $this->assertFalse($msg->succeeded());
- $this->assertFalse($msg->error_message);
- $this->assertEquals(array('mode' => 'store_response_failure'),
- $msg->getExtensionArgs());
- }
-
- function test_fail_msg()
- {
- $reason = 'no reason, really';
- $msg = new Auth_OpenID_AX_StoreResponse(false, $reason);
- $this->assertFalse($msg->succeeded());
- $this->assertEquals($reason, $msg->error_message);
- $this->assertEquals(array('mode' => 'store_response_failure',
- 'error' => $reason), $msg->getExtensionArgs());
- }
-}
-
-class Tests_Auth_OpenID_AX extends PHPUnit_Framework_TestSuite {
- function getName()
- {
- return "Tests_Auth_OpenID_AX";
- }
-
- function Tests_Auth_OpenID_AX()
- {
- $this->addTestSuite('StoreResponseTest');
- $this->addTestSuite('StoreRequestTest');
- $this->addTestSuite('FetchResponseTest');
- $this->addTestSuite('FetchRequestTest');
- $this->addTestSuite('ParseAXValuesTest');
- $this->addTestSuite('ToTypeURIsTest');
- $this->addTestSuite('AttrInfoTest');
- $this->addTestSuite('AXMessageTest');
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Association.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Association.php
deleted file mode 100644
index d65829682..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Association.php
+++ /dev/null
@@ -1,54 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/Association.php';
-
-class Tests_Auth_OpenID_Association extends PHPUnit_Framework_TestCase {
- function test_me()
- {
- $issued = time();
- $lifetime = 600;
- $assoc = new Auth_OpenID_Association('handle', 'secret', $issued,
- $lifetime, 'HMAC-SHA1');
- $s = $assoc->serialize();
- $assoc2 = Auth_OpenID_Association::deserialize(
- 'Auth_OpenID_Association', $s);
-
- if ($assoc2 === null) {
- $this->fail('deserialize returned null');
- } else {
- $this->assertTrue($assoc2->equal($assoc));
- }
- }
- function test_me256()
- {
- if(!Auth_OpenID_HMACSHA256_SUPPORTED) return;
- $issued = time();
- $lifetime = 600;
- $assoc = new Auth_OpenID_Association('handle', 'secret', $issued,
- $lifetime, 'HMAC-SHA256');
- $s = $assoc->serialize();
- $assoc2 = Auth_OpenID_Association::deserialize(
- 'Auth_OpenID_Association', $s);
-
- if ($assoc2 === null) {
- $this->fail('deserialize returned null');
- } else {
- $this->assertTrue($assoc2->equal($assoc));
- }
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AssociationResponse.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/AssociationResponse.php
deleted file mode 100644
index 6902f95a8..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AssociationResponse.php
+++ /dev/null
@@ -1,377 +0,0 @@
- '1000',
- 'assoc_handle' => 'a handle',
- 'assoc_type' => 'a type',
- 'session_type' => 'a session type',
- 'ns' => Auth_OpenID_OPENID2_NS
- );
-
-/**
- * Build an association response message that contains the specified
- * subset of keys. The values come from association_response_values.
- *
- * This is useful for testing for missing keys and other times that we
- * don't care what the values are.
- */
-function mkAssocResponse($keys)
-{
- global $association_response_values;
-
- $args = array();
-
- foreach ($keys as $key) {
- $args[$key] = $association_response_values[$key];
- }
-
- return Auth_OpenID_Message::fromOpenIDArgs($args);
-}
-
-class Tests_Auth_OpenID_AssociationResponse extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->consumer = new Auth_OpenID_GenericConsumer($this->store);
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- }
-
- function failUnlessProtocolError($thing)
- {
- $this->assertTrue(Auth_OpenID::isFailure($thing));
- }
-
- function _run($keys)
- {
- $msg = mkAssocResponse($keys);
- $dumb = null;
- $this->assertTrue(Auth_OpenID::isFailure($this->consumer->_extractAssociation($msg, $dumb)));
- }
-}
-
-/**
- * Test for returning an error upon missing fields in association
- * responses for OpenID 2
- */
-class TestExtractAssociationMissingFieldsOpenID2 extends Tests_Auth_OpenID_AssociationResponse {
-
- function test_noFields_openid2()
- {
- $this->_run(array('ns'));
- }
-
- function test_missingExpires_openid2()
- {
- $this->_run(array('assoc_handle', 'assoc_type', 'session_type', 'ns'));
- }
-
- function test_missingHandle_openid2()
- {
- $this->_run(array('expires_in', 'assoc_type', 'session_type', 'ns'));
- }
-
- function test_missingAssocType_openid2()
- {
- $this->_run(array('expires_in', 'assoc_handle', 'session_type', 'ns'));
- }
-
- function test_missingSessionType_openid2()
- {
- $this->_run(array('expires_in', 'assoc_handle', 'assoc_type', 'ns'));
- }
-}
-
-/**
- * Test for returning an error upon missing fields in association
- * responses for OpenID 2
- */
-class TestExtractAssociationMissingFieldsOpenID1 extends Tests_Auth_OpenID_AssociationResponse {
- function test_noFields_openid1()
- {
- $this->_run(array());
- }
-
- function test_missingExpires_openid1()
- {
- $this->_run(array('assoc_handle', 'assoc_type'));
- }
-
- function test_missingHandle_openid1()
- {
- $this->_run(array('expires_in', 'assoc_type'));
- }
-
- function test_missingAssocType_openid1()
- {
- $this->_run(array('expires_in', 'assoc_handle'));
- }
-}
-
-class DummyAssocationSession {
- function DummyAssocationSession($session_type, $allowed_assoc_types=array())
- {
- $this->session_type = $session_type;
- $this->allowed_assoc_types = $allowed_assoc_types;
- }
-}
-
-class ExtractAssociationSessionTypeMismatch extends Tests_Auth_OpenID_AssociationResponse {
- function _run($requested_session_type, $response_session_type, $openid1=false)
- {
- global $association_response_values;
-
- $assoc_session = new DummyAssocationSession($requested_session_type);
- $keys = array_keys($association_response_values);
- if ($openid1) {
- if (in_array('ns', $keys)) {
- unset($keys[array_search('ns', $keys)]);
- }
- }
-
- $msg = mkAssocResponse($keys);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type',
- $response_session_type);
- $this->assertTrue(
- $this->consumer->_extractAssociation($msg, $assoc_session) === null);
- }
-
- function test_typeMismatchNoEncBlank_openid2()
- {
- $this->_run('no-encryption', '');
- }
-
- function test_typeMismatchDHSHA1NoEnc_openid2()
- {
- $this->_run('DH-SHA1', 'no-encryption');
- }
-
- function test_typeMismatchDHSHA256NoEnc_openid2()
- {
- $this->_run('DH-SHA256', 'no-encryption');
- }
-
- function test_typeMismatchNoEncDHSHA1_openid2()
- {
- $this->_run('no-encryption', 'DH-SHA1');
- }
-
- function test_typeMismatchDHSHA1NoEnc_openid1()
- {
- $this->_run('DH-SHA1', 'DH-SHA256', true);
- }
-
- function test_typeMismatchDHSHA256NoEnc_openid1()
- {
- $this->_run('DH-SHA256', 'DH-SHA1', true);
- }
-
- function test_typeMismatchNoEncDHSHA1_openid1()
- {
- $this->_run('no-encryption', 'DH-SHA1', true);
- }
-}
-
-class TestOpenID1AssociationResponseSessionType extends Tests_Auth_OpenID_AssociationResponse {
- function _run($expected_session_type, $session_type_value)
- {
- // Create a Message with just 'session_type' in it, since
- // that's all this function will use. 'session_type' may be
- // absent if it's set to None.
- $args = array();
- if ($session_type_value !== null) {
- $args['session_type'] = $session_type_value;
- }
- $message = Auth_OpenID_Message::fromOpenIDArgs($args);
- $this->assertTrue($message->isOpenID1());
-
- $actual_session_type = $this->consumer->_getOpenID1SessionType($message);
- $error_message = sprintf('Returned sesion type parameter %s was expected ' .
- 'to yield session type %s, but yielded %s',
- $session_type_value, $expected_session_type,
- $actual_session_type);
- $this->assertEquals(
- $expected_session_type,
- $actual_session_type,
- $error_message);
- }
-
- function test_none()
- {
- $this->_run('no-encryption', null);
- }
-
- function test_empty()
- {
- $this->_run('no-encryption', '');
- }
-
- function test_explicitNoEncryption()
- {
- $this->_run('no-encryption', 'no-encryption');
- }
-
- function test_dhSHA1()
- {
- $this->_run('DH-SHA1', 'DH-SHA1');
- }
-
- // DH-SHA256 is not a valid session type for OpenID1, but this
- // function does not test that. This is mostly just to make sure
- // that it will pass-through stuff that is not explicitly handled,
- // so it will get handled the same way as it is handled for OpenID
- // 2
- function test_dhSHA256()
- {
- $this->_run('DH-SHA256', 'DH-SHA256');
- }
-}
-
-class DummyAssociationSession {
- var $secret = "shh! don't tell!";
- var $extract_secret_called = false;
- var $session_type = null;
- var $allowed_assoc_types = null;
-
- function extractSecret($message)
- {
- $this->extract_secret_called = true;
- return $this->secret;
- }
-}
-
-class TestInvalidFields extends Tests_Auth_OpenID_AssociationResponse {
- function setUp()
- {
- parent::setUp();
- $this->session_type = 'testing-session';
-
- // This must something that works for Association.fromExpiresIn
- $this->assoc_type = 'HMAC-SHA1';
-
- $this->assoc_handle = 'testing-assoc-handle';
-
- // These arguments should all be valid
- $this->assoc_response = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'expires_in' => '1000',
- 'assoc_handle' => $this->assoc_handle,
- 'assoc_type' => $this->assoc_type,
- 'session_type' => $this->session_type,
- 'ns' => Auth_OpenID_OPENID2_NS,
- ));
-
- $this->assoc_session = new DummyAssociationSession();
-
- // Make the session for the response's session type
- $this->assoc_session->session_type = $this->session_type;
- $this->assoc_session->allowed_assoc_types = array($this->assoc_type);
- }
-
- function test_worksWithGoodFields()
- {
- // Handle a full successful association response
- $assoc = $this->consumer->_extractAssociation(
- $this->assoc_response, $this->assoc_session);
- $this->assertTrue($this->assoc_session->extract_secret_called);
- $this->assertEquals($this->assoc_session->secret, $assoc->secret);
- $this->assertEquals(1000, $assoc->lifetime);
- $this->assertEquals($this->assoc_handle, $assoc->handle);
- $this->assertEquals($this->assoc_type, $assoc->assoc_type);
- }
-
- function test_badAssocType()
- {
- // Make sure that the assoc type in the response is not valid
- // for the given session.
- $this->assoc_session->allowed_assoc_types = array();
- $this->assertTrue(
- $this->consumer->_extractAssociation($this->assoc_response,
- $this->assoc_session) === null);
- }
-
- function test_badExpiresIn()
- {
- // Invalid value for expires_in should cause failure
- $this->assoc_response->setArg(Auth_OpenID_OPENID_NS, 'expires_in', 'forever');
- $assoc = $this->consumer->_extractAssociation($this->assoc_response,
- $this->assoc_session);
- $this->assertTrue(Auth_OpenID::isFailure($assoc));
- }
-}
-
-class TestExtractAssociationDiffieHellman extends Tests_Auth_OpenID_AssociationResponse {
- var $secret = 'xxxxxxxxxxxxxxxxxxxx';
-
- function _setUpDH()
- {
- list($sess, $message) = $this->consumer->_createAssociateRequest(
- $this->endpoint, 'HMAC-SHA1', 'DH-SHA1');
-
- // XXX: this is testing _createAssociateRequest
- $this->assertEquals($this->endpoint->compatibilityMode(),
- $message->isOpenID1());
-
- $server_sess = Auth_OpenID_DiffieHellmanSHA1ServerSession::fromMessage($message);
- $server_resp = $server_sess->answer($this->secret);
- $server_resp['assoc_type'] = 'HMAC-SHA1';
- $server_resp['assoc_handle'] = 'handle';
- $server_resp['expires_in'] = '1000';
- $server_resp['session_type'] = 'DH-SHA1';
- return array($sess, Auth_OpenID_Message::fromOpenIDArgs($server_resp));
- }
-
- function test_success()
- {
- list($sess, $server_resp) = $this->_setUpDH();
- $ret = $this->consumer->_extractAssociation($server_resp, $sess);
- $this->assertTrue($ret !== null);
- $this->assertEquals($ret->assoc_type, 'HMAC-SHA1');
- $this->assertEquals($ret->secret, $this->secret);
- $this->assertEquals($ret->handle, 'handle');
- $this->assertEquals($ret->lifetime, 1000);
- }
-
- function test_openid2success()
- {
- // Use openid 2 type in endpoint so _setUpDH checks
- // compatibility mode state properly
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_2_0,
- Auth_OpenID_TYPE_1_1);
- $this->test_success();
- }
-
- /**
- * Can't run this test because the base64 decoder is broken.
- */
- /*
- function test_badDHValues()
- {
- list($sess, $server_resp) = $this->_setUpDH();
- $server_resp->setArg(Auth_OpenID_OPENID_NS, 'enc_mac_key', "\x00\x00\x00");
- $this->assertTrue($this->consumer->_extractAssociation($server_resp, $sess) === null);
- }
- */
-}
-
-global $Tests_Auth_OpenID_AssociationResponse_other;
-$Tests_Auth_OpenID_AssociationResponse_other = array(
- new TestInvalidFields(),
- new TestOpenID1AssociationResponseSessionType(),
- new ExtractAssociationSessionTypeMismatch(),
- new TestExtractAssociationMissingFieldsOpenID1(),
- new TestExtractAssociationMissingFieldsOpenID2()
- );
-
-if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $Tests_Auth_OpenID_AssociationResponse_other[] = new TestExtractAssociationDiffieHellman();
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AuthRequest.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/AuthRequest.php
deleted file mode 100644
index 02ab75dd7..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/AuthRequest.php
+++ /dev/null
@@ -1,299 +0,0 @@
-preferred_namespace;
- }
-
- function getLocalID()
- {
- return $this->local_id;
- }
-
- function isOPIdentifier()
- {
- return $this->is_op_identifier;
- }
-}
-
-class AuthRequest_DummyAssoc {
- var $handle = "assoc-handle";
-}
-
-/**
- * Base for AuthRequest tests for OpenID 1 and 2.
- */
-class TestAuthRequestMixin extends OpenIDTestMixin {
-
- var $preferred_namespace = null;
- var $immediate = false;
- var $expected_mode = 'checkid_setup';
-
- function setUp()
- {
- $this->endpoint = new AuthRequest_DummyEndpoint();
- $this->endpoint->local_id = 'http://server.unittest/joe';
- $this->endpoint->claimed_id = 'http://joe.vanity.example/';
- $this->endpoint->server_url = 'http://server.unittest/';
- $this->endpoint->preferred_namespace = $this->preferred_namespace;
- $this->realm = 'http://example/';
- $this->return_to = 'http://example/return/';
- $this->assoc = new AuthRequest_DummyAssoc();
- $this->authreq = new Auth_OpenID_AuthRequest($this->endpoint, $this->assoc);
- }
-
- function failUnlessAnonymous($msg)
- {
- foreach (array('claimed_id', 'identity') as $key) {
- $this->failIfOpenIDKeyExists($msg, $key);
- }
- }
-
- function failUnlessHasRequiredFields($msg)
- {
- $this->assertEquals($this->preferred_namespace,
- $this->authreq->message->getOpenIDNamespace());
-
- $this->assertEquals($this->preferred_namespace,
- $msg->getOpenIDNamespace());
-
- $this->failUnlessOpenIDValueEquals($msg, 'mode',
- $this->expected_mode);
-
- // Implement these in subclasses because they depend on
- // protocol differences!
- $this->failUnlessHasRealm($msg);
- $this->failUnlessIdentifiersPresent($msg);
- }
-
- // TESTS
-
- function test_checkNoAssocHandle()
- {
- $this->authreq->assoc = null;
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
-
- $this->failIfOpenIDKeyExists($msg, 'assoc_handle');
- }
-
- function test_checkWithAssocHandle()
- {
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
-
- $this->failUnlessOpenIDValueEquals($msg, 'assoc_handle',
- $this->assoc->handle);
- }
-
- function test_addExtensionArg()
- {
- $this->authreq->addExtensionArg('bag:', 'color', 'brown');
- $this->authreq->addExtensionArg('bag:', 'material', 'paper');
- $this->assertTrue($this->authreq->message->namespaces->contains('bag:'));
- $this->assertEquals($this->authreq->message->getArgs('bag:'),
- array('color' => 'brown',
- 'material' => 'paper'));
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
-
- // XXX: this depends on the way that Message assigns
- // namespaces. Really it doesn't care that it has alias "0",
- // but that is tested anyway
- $post_args = $msg->toPostArgs();
- $this->assertEquals('brown', $post_args['openid.ext0.color']);
- $this->assertEquals('paper', $post_args['openid.ext0.material']);
- }
-
- function test_standard()
- {
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
-
- $this->failUnlessHasIdentifiers(
- $msg, $this->endpoint->local_id,
- $this->endpoint->claimed_id);
- }
-}
-
-class TestAuthRequestOpenID2 extends TestAuthRequestMixin {
- var $preferred_namespace = Auth_OpenID_OPENID2_NS;
-
- function failUnlessHasRealm($msg)
- {
- // check presence of proper realm key and absence of the wrong
- // one.
- $this->failUnlessOpenIDValueEquals($msg, 'realm', $this->realm);
- $this->failIfOpenIDKeyExists($msg, 'trust_root');
- }
-
- function failUnlessIdentifiersPresent($msg)
- {
- $identity_present = $msg->hasKey(Auth_OpenID_OPENID_NS, 'identity');
- $claimed_present = $msg->hasKey(Auth_OpenID_OPENID_NS, 'claimed_id');
-
- $this->assertEquals($claimed_present, $identity_present);
- }
-
- function failUnlessHasIdentifiers($msg, $op_specific_id, $claimed_id)
- {
- $this->failUnlessOpenIDValueEquals($msg, 'identity', $op_specific_id);
- $this->failUnlessOpenIDValueEquals($msg, 'claimed_id', $claimed_id);
- }
-
- // TESTS
-
- function test_markup_checkidImmediate()
- {
- $result = $this->authreq->formMarkup($this->realm,
- null, true);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_markup_returnToArgs()
- {
- $this->authreq->return_to_args = array('extra' => 'args');
- $result = $this->authreq->formMarkup($this->realm,
- null, false);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_setAnonymousWorksForOpenID2()
- {
- // OpenID AuthRequests should be able to set 'anonymous' to true.
- $this->assertTrue($this->authreq->message->isOpenID2());
- $this->assertTrue($this->authreq->setAnonymous(true));
- $this->assertTrue($this->authreq->setAnonymous(false));
- }
-
- function test_userAnonymousIgnoresIdentfier()
- {
- $this->authreq->setAnonymous(true);
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
- $this->failUnlessHasRequiredFields($msg);
- $this->failUnlessAnonymous($msg);
- }
-
- function test_opAnonymousIgnoresIdentifier()
- {
- $this->endpoint->is_op_identifier = true;
- $this->authreq->setAnonymous(true);
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
- $this->failUnlessHasRequiredFields($msg);
- $this->failUnlessAnonymous($msg);
- }
-
- function test_opIdentifierSendsIdentifierSelect()
- {
- $this->endpoint->is_op_identifier = true;
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
- $this->failUnlessHasRequiredFields($msg);
- $this->failUnlessHasIdentifiers($msg,
- Auth_OpenID_IDENTIFIER_SELECT,
- Auth_OpenID_IDENTIFIER_SELECT);
- }
-}
-
-class TestAuthRequestOpenID1 extends TestAuthRequestMixin {
- var $preferred_namespace = Auth_OpenID_OPENID1_NS;
-
- function setUpEndpoint()
- {
- parent::setUpEndpoint();
- $this->endpoint->preferred_namespace = Auth_OpenID_OPENID1_NS;
- }
-
- function failUnlessHasIdentifiers($msg, $op_specific_id, $claimed_id)
- {
- // Make sure claimed_is is *absent* in request.
- $this->failUnlessOpenIDValueEquals($msg, 'identity', $op_specific_id);
- $this->failIfOpenIDKeyExists($msg, 'claimed_id');
- }
-
- function failUnlessIdentifiersPresent($msg)
- {
- $this->failIfOpenIDKeyExists($msg, 'claimed_id');
- $this->assertTrue($msg->hasKey(Auth_OpenID_OPENID_NS, 'identity'));
- }
-
- function failUnlessHasRealm($msg)
- {
- // check presence of proper realm key and absence of the wrong
- // one.
- $this->failUnlessOpenIDValueEquals($msg, 'trust_root', $this->realm);
- $this->failIfOpenIDKeyExists($msg, 'realm');
- }
-
- // TESTS
-
- function test_markup_missingReturnTo()
- {
- $result = $this->authreq->formMarkup($this->realm,
- null, false);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_setAnonymousFailsForOpenID1()
- {
- // OpenID 1 requests MUST NOT be able to set anonymous to True
- $this->assertTrue($this->authreq->message->isOpenID1());
- $this->assertFalse($this->authreq->setAnonymous(true));
- $this->assertTrue($this->authreq->setAnonymous(false));
- }
-
- function test_identifierSelect()
- {
- // Identfier select SHOULD NOT be sent, but this pathway is in
- // here in case some special discovery stuff is done to
- // trigger it with OpenID 1. If it is triggered, it will send
- // identifier_select just like OpenID 2.
- $this->endpoint->is_op_identifier = true;
- $msg = $this->authreq->getMessage($this->realm, $this->return_to,
- $this->immediate);
- $this->failUnlessHasRequiredFields($msg);
- $this->assertEquals(Auth_OpenID_IDENTIFIER_SELECT,
- $msg->getArg(Auth_OpenID_OPENID1_NS,
- 'identity'));
- }
-}
-
-class TestAuthRequestOpenID1Immediate extends TestAuthRequestOpenID1 {
- var $immediate = true;
- var $expected_mode = 'checkid_immediate';
-}
-
-class TestAuthRequestOpenID2Immediate extends TestAuthRequestOpenID2 {
- var $immediate = true;
- var $expected_mode = 'checkid_immediate';
-}
-
-class Tests_Auth_OpenID_AuthRequest extends PHPUnit_Framework_TestSuite {
-
- function getName()
- {
- return "Tests_Auth_OpenID_AuthRequest";
- }
-
- function Tests_Auth_OpenID_AuthRequest()
- {
- $this->addTestSuite('TestAuthRequestOpenID1');
- $this->addTestSuite('TestAuthRequestOpenID1Immediate');
- $this->addTestSuite('TestAuthRequestOpenID2');
- $this->addTestSuite('TestAuthRequestOpenID2Immediate');
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/BigMath.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/BigMath.php
deleted file mode 100644
index acab4d918..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/BigMath.php
+++ /dev/null
@@ -1,234 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/BigMath.php';
-require_once 'Tests/Auth/OpenID/TestUtil.php';
-
-class Tests_Auth_OpenID_BinLongConvertRnd extends PHPUnit_Framework_TestCase {
- var $lib;
- var $max;
-
- function Tests_Auth_OpenID_BinLongConvertRnd($lib, $max)
- {
- $this->lib =& $lib;
- $this->max = $max;
- }
-
- function runTest()
- {
- $n = $this->lib->init(0);
- foreach (range(0, 9) as $i) {
- $rnd = $this->lib->rand($this->max);
- $n = $this->lib->add($n, $rnd);
- }
- $s = $this->lib->longToBinary($n);
- $this->assertTrue(is_string($s));
- $n_prime = $this->lib->binaryToLong($s);
- $this->assertEquals($this->lib->cmp($n, $n_prime), 0);
- }
-}
-
-class Tests_Auth_OpenID_BinLongConvert extends PHPUnit_Framework_TestCase {
- var $lib;
- var $bin;
- var $lng;
-
- function Tests_Auth_OpenID_BinLongConvert($lib, $bin, $lng)
- {
- $this->lib =& $lib;
- $this->bin = $bin;
- $this->lng = $lng;
- }
-
- function runTest()
- {
- $n_prime = $this->lib->binaryToLong($this->bin);
- $s_prime = $this->lib->longToBinary($this->lng);
- $this->assertEquals($this->lib->cmp($this->lng, $n_prime), 0);
- $this->assertTrue($this->bin == $s_prime);
- }
-}
-
-class Tests_Auth_OpenID_Base64ToLong extends PHPUnit_Framework_TestCase {
- var $num;
- var $b64;
- var $lib;
-
- function Tests_Auth_OpenID_Base64ToLong($lib, $b64, $num)
- {
- $this->lib = $lib;
- $this->b64 = $b64;
- $this->num = $num;
- }
-
- function runTest()
- {
- $actual = $this->lib->base64ToLong($this->b64);
- $this->assertTrue($this->lib->cmp($this->num, $actual) == 0);
- }
-}
-
-class Tests_Auth_OpenID_LongToBase64 extends Tests_Auth_OpenID_Base64ToLong {
- function Tests_Auth_OpenID_LongToBase64($lib, $b64, $num)
- {
- $this->lib = $lib;
- $this->b64 = $b64;
- $this->num = $num;
- }
-
- function runTest()
- {
- $actual = $this->lib->longToBase64($this->num);
- $this->assertEquals($this->b64, $actual);
- }
-}
-
-class Tests_Auth_OpenID_Rand extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_Rand($lib)
- {
- $this->lib =& $lib;
- }
-
- function runTest()
- {
- $stop = $this->lib->pow(2, 128);
- $a = $this->lib->rand($stop);
- $b = $this->lib->rand($stop);
-
- $this->assertFalse($this->lib->cmp($b, $a) == 0, "Same: $a $b");
-
- $n = $this->lib->init(Tests_Auth_OpenID_maxint());
- $n = $this->lib->add($n, 1);
-
- // Make sure that we can generate random numbers that are
- // larger than platform int size
- $result = $this->lib->rand($n);
-
- // What can we say about the result?
- }
-}
-
-/**
- * Computes the maximum integer value for this PHP installation.
- *
- * @return int $max_int_value The maximum integer value for this
- * PHP installation
- */
-function Tests_Auth_OpenID_maxint()
-{
- /* assumes largest integer is of form 2^n - 1 */
- $to_test = pow(2, 16);
- while (1) {
- $last = $to_test;
- $to_test = 2 * $to_test;
- if (($to_test < $last) || (!is_int($to_test))) {
- return($last + ($last - 1));
- }
- }
-}
-
-
-class Tests_Auth_OpenID_BigMath extends PHPUnit_Framework_TestSuite {
- function _parseBase64Data()
- {
- $lines = Tests_Auth_OpenID_readlines('n2b64');
-
- $data = array();
- foreach ($lines as $line) {
- $line = trim($line);
- if (!$line) {
- continue;
- }
- list($b64, $ascii) = explode(' ', $line);
- $data[$b64] = $ascii;
- }
- return $data;
- }
-
- function _addB64Tests()
- {
- $lib = Auth_OpenID_getMathLib();
- $count = defined('Tests_Auth_OpenID_thorough') ? -1 : 2;
- $data = $this->_parseBase64Data();
- foreach ($data as $b64 => $num_s) {
- // Only test the first few unless thorough is defined
- if (strlen($num_s) > 5) {
- if ($count == 0) {
- break;
- } else {
- $count -= 1;
- }
- }
- $num = $lib->init($num_s);
- $test = new Tests_Auth_OpenID_Base64ToLong($lib, $b64, $num);
- $test->setName("B64->Long $num_s");
- $this->addTest($test);
-
- $test = new Tests_Auth_OpenID_LongToBase64($lib, $b64, $num);
- $test->setName("Long->B64 $num_s");
- $this->addTest($test);
- }
- }
-
- function _addBinLongTests()
- {
- $lib =& Auth_OpenID_getMathLib();
- $max = Tests_Auth_OpenID_maxint();
- $upper = defined('Tests_Auth_OpenID_thorough') ? 499 : 3;
-
- foreach (range(0, $upper) as $iteration) {
- $test = new Tests_Auth_OpenID_BinLongConvertRnd($lib, $max);
- $test->setName("BinLongConvertRnd " . strval($iteration));
- $this->addTest($test);
- }
-
- $cases = array(
- array("\x00", 0),
- array("\x01", 1),
- array("\x7F", 127),
- array("\x00\x80", 128),
- array("\x00\x81", 129),
- array("\x00\xFF", 255),
- array("\x00\x80\x00", 32768),
- array("OpenID is cool",
- "1611215304203901150134421257416556")
- );
-
- foreach ($cases as $case) {
- list($bin, $lng_m) = $case;
- $lng = $lib->init($lng_m);
- $test = new Tests_Auth_OpenID_BinLongConvert($lib, $bin, $lng);
- $test->setName('BinLongConvert ' . bin2hex($bin));
- $this->addTest($test);
- }
-
- }
-
- function Tests_Auth_OpenID_BigMath($name)
- {
- $this->setName($name);
-
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- return;
- }
-
- $this->_addB64Tests();
- $this->_addBinLongTests();
- $test = new Tests_Auth_OpenID_Rand(Auth_OpenID_getMathLib());
- $test->setName('Big number rand');
- $this->addTest($test);
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Consumer.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Consumer.php
deleted file mode 100644
index 761f9f2a6..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Consumer.php
+++ /dev/null
@@ -1,2553 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/CryptUtil.php';
-require_once 'Auth/Yadis/HTTPFetcher.php';
-require_once 'Auth/OpenID/DiffieHellman.php';
-require_once 'Auth/OpenID/FileStore.php';
-require_once 'Auth/OpenID/KVForm.php';
-require_once 'Auth/OpenID/Consumer.php';
-require_once 'Auth/OpenID/Server.php';
-require_once 'Auth/OpenID/Nonce.php';
-require_once 'Auth/OpenID/SReg.php';
-require_once 'Auth/OpenID/Message.php';
-require_once 'Tests/Auth/OpenID/MemStore.php';
-
-/*
- * Convenience function to create a SuccessResponse with the given
- * arguments, all signed.
- */
-function mkSuccess($endpoint, $q)
-{
- $signed_list = array();
- foreach (array_keys($q) as $k) {
- $signed_list[] = 'openid.' . $k;
- }
- return new Auth_OpenID_SuccessResponse($endpoint,
- Auth_OpenID_Message::fromOpenIDArgs($q),
- $signed_list);
-}
-
-class FastConsumerSession extends Auth_OpenID_DiffieHellmanSHA1ConsumerSession {
- function FastConsumerSession($dh = null)
- {
- if ($dh === null) {
- $dh = new Auth_OpenID_DiffieHellman(100389557, 2);
- }
-
- $this->dh = $dh;
- }
-}
-
-function setConsumerSession($con)
-{
- $con->session_types = array('DH-SHA1' => 'FastConsumerSession');
-}
-
-global $_Auth_OpenID_assocs;
-$_Auth_OpenID_assocs = array(
- array('another 20-byte key.', 'Snarky'),
- array(str_repeat("\x00", 20), 'Zeros'),
- );
-
-function Auth_OpenID_parse($qs)
-{
- $result = array();
- $parts = explode("&", $qs);
- foreach ($parts as $pair) {
- list($key, $value) = explode("=", $pair, 2);
- assert(!array_key_exists($key, $result));
- $result[urldecode($key)] = urldecode($value);
- }
- return $result;
-}
-
-function Auth_OpenID_associate($qs, $assoc_secret, $assoc_handle)
-{
- $query_data = Auth_OpenID_parse($qs);
-
- assert($query_data['openid.mode'] == 'associate');
- assert($query_data['openid.assoc_type'] == 'HMAC-SHA1');
-
- $reply_dict = array(
- 'assoc_type' => 'HMAC-SHA1',
- 'assoc_handle' => $assoc_handle,
- 'expires_in' => '600',
- );
-
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- assert(count($query_data) == 2);
- $message = Auth_OpenID_Message::fromPostArgs($query_data);
- $session = Auth_OpenID_PlainTextServerSession::fromMessage($message);
- } else {
- assert((count($query_data) == 6) || (count($query_data) == 4));
- assert($query_data['openid.mode'] == 'associate');
- assert($query_data['openid.session_type'] == 'DH-SHA1');
-
- $message = Auth_OpenID_Message::fromPostArgs($query_data);
-
- $session = Auth_OpenID_DiffieHellmanSHA1ServerSession::fromMessage($message);
- $reply_dict['session_type'] = 'DH-SHA1';
-
- }
-
- $reply_dict = array_merge($reply_dict, $session->answer($assoc_secret));
- return Auth_OpenID_KVForm::fromArray($reply_dict);
-}
-
-class Auth_OpenID_TestFetcher extends Auth_Yadis_HTTPFetcher {
- function Auth_OpenID_TestFetcher($user_url, $user_page,
- $assoc_secret, $assoc_handle)
- {
- $this->get_responses = array($user_url =>
- new Auth_Yadis_HTTPResponse($user_url,
- 200,
- array(),
- $user_page));
- $this->assoc_secret = $assoc_secret;
- $this->assoc_handle = $assoc_handle;
- $this->num_assocs = 0;
- }
-
- function response($url, $body)
- {
- if ($body === null) {
- return new Auth_Yadis_HTTPResponse($url, 404, array(), 'Not found');
- } else {
- return new Auth_Yadis_HTTPResponse($url, 200, array(), $body);
- }
- }
-
- function get($url)
- {
- if (array_key_exists($url, $this->get_responses)) {
- return $this->get_responses[$url];
- } else {
- return $this->response($url, null);
- }
- }
-
- function _checkAuth($url, $body)
- {
- $query_data = Auth_OpenID_parse($body);
- $expected = array(
- 'openid.mode' => 'check_authentication',
- 'openid.signed' => 'assoc_handle,sig,signed',
- 'openid.sig' => 'fake',
- 'openid.assoc_handle' => $this->assoc_handle,
- );
-
- if ($query_data == $expected) {
- return new Auth_Yadis_HTTPResponse($url, 200, array(), "is_valid:true\n");
- } else {
- return new Auth_Yadis_HTTPResponse($url, 400, array(),
- "error:bad check_authentication query\n");
- }
- }
-
- function post($url, $body)
- {
- if (strpos($body, 'openid.mode=associate') !== false) {
- $response = Auth_OpenID_associate($body, $this->assoc_secret,
- $this->assoc_handle);
- $this->num_assocs++;
- return $this->response($url, $response);
- } elseif (strpos($body, 'openid.mode=check_authentication') !== false) {
- return $this->_checkAuth($url, $body);
- }
-
- return $this->response($url, null);
- }
-}
-
-global $_Auth_OpenID_user_page_pat;
-$_Auth_OpenID_user_page_pat = "
-
- A user page
- %s
-
-
- blah blah
-
-";
-
-global $_Auth_OpenID_server_url;
-$_Auth_OpenID_server_url = "http://server.example.com/";
-
-global $_Auth_OpenID_consumer_url;
-$_Auth_OpenID_consumer_url = "http://consumer.example.com/";
-
-class Tests_Auth_OpenID_Consumer extends PHPUnit_Framework_TestCase {
-
- function _run($consumer, $user_url, $mode, $delegate_url,
- $fetcher, $store, $immediate)
- {
- global $_Auth_OpenID_consumer_url,
- $_Auth_OpenID_server_url;
-
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- setConsumerSession($consumer);
- }
-
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->claimed_id = $user_url;
- $endpoint->server_url = $_Auth_OpenID_server_url;
- $endpoint->local_id = $delegate_url;
- $endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
-
- $result = $consumer->begin($endpoint);
-
- $return_to = $_Auth_OpenID_consumer_url;
- $trust_root = $_Auth_OpenID_consumer_url;
- $redirect_url = $result->redirectURL($trust_root, $return_to,
- $immediate);
-
- $parsed = parse_url($redirect_url);
- $qs = $parsed['query'];
- $q = Auth_OpenID_parse($qs);
- $new_return_to = $q['openid.return_to'];
- unset($q['openid.return_to']);
-
- $expected = array(
- 'openid.mode' => $mode,
- 'openid.identity' => $delegate_url,
- 'openid.trust_root' => $trust_root,
- );
-
- if ($consumer->_use_assocs) {
- $expected['openid.assoc_handle'] = $fetcher->assoc_handle;
- }
-
- $this->assertEquals($expected, $q);
- $this->assertEquals(0, strpos($redirect_url, $_Auth_OpenID_server_url));
- $this->assertEquals(0, strpos($new_return_to, $return_to));
-
- $parsed = parse_url($new_return_to);
- $query = Auth_OpenID_parse($parsed['query']);
-
- $query = array_merge($query, array(
- 'openid.mode'=> 'id_res',
- 'openid.return_to'=> $new_return_to,
- 'openid.identity'=> $delegate_url,
- 'openid.assoc_handle'=> $fetcher->assoc_handle,
- ));
-
- if (!$consumer->_use_assocs) {
- $query['openid.signed'] =
- 'assoc_handle,mode,signed,identity';
- $query['openid.assoc_handle'] = $fetcher->assoc_handle;
- $query['openid.sig'] = 'fake';
- }
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- if ($consumer->_use_assocs) {
- $assoc = $store->getAssociation($_Auth_OpenID_server_url,
- $fetcher->assoc_handle);
- $message = $assoc->signMessage($message);
- }
-
- $result = $consumer->complete($message, $result->endpoint, $new_return_to);
-
- $this->assertEquals(Auth_OpenID_SUCCESS, $result->status);
- $this->assertEquals($result->identity_url, $user_url);
- }
-
- function _test_success($user_url, $delegate_url, $links, $immediate = false)
- {
- global $_Auth_OpenID_filestore_base_dir,
- $_Auth_OpenID_server_url,
- $_Auth_OpenID_user_page_pat,
- $_Auth_OpenID_assocs;
-
- $store = new Tests_Auth_OpenID_MemStore();
-
- if ($immediate) {
- $mode = 'checkid_immediate';
- } else {
- $mode = 'checkid_setup';
- }
-
- $user_page = sprintf($_Auth_OpenID_user_page_pat, $links);
- $fetcher = new Auth_OpenID_TestFetcher($user_url, $user_page,
- $_Auth_OpenID_assocs[0][0],
- $_Auth_OpenID_assocs[0][1]);
-
- $consumer = new Auth_OpenID_GenericConsumer($store);
- $consumer->fetcher =& $fetcher;
-
- $expected_num_assocs = 0;
- $this->assertEquals($expected_num_assocs, $fetcher->num_assocs);
- $this->_run($consumer, $user_url, $mode, $delegate_url,
- $fetcher, $store, $immediate);
-
- if ($consumer->_use_assocs) {
- $expected_num_assocs += 1;
- }
-
- $this->assertEquals($expected_num_assocs, $fetcher->num_assocs);
-
- // Test that doing it again uses the existing association
- $this->_run($consumer, $user_url, $mode, $delegate_url,
- $fetcher, $store, $immediate);
-
- $this->assertEquals($expected_num_assocs, $fetcher->num_assocs);
-
- // Another association is created if we remove the existing one
- $store->removeAssociation($_Auth_OpenID_server_url,
- $fetcher->assoc_handle);
-
- $this->_run($consumer, $user_url, $mode, $delegate_url,
- $fetcher, $store, $immediate);
-
- if ($consumer->_use_assocs) {
- $expected_num_assocs += 1;
- }
-
- $this->assertEquals($expected_num_assocs, $fetcher->num_assocs);
-
- // Test that doing it again uses the existing association
- $this->_run($consumer, $user_url, $mode, $delegate_url,
- $fetcher, $store, $immediate);
-
- $this->assertEquals($expected_num_assocs, $fetcher->num_assocs);
- }
-
- function test_success()
- {
- global $_Auth_OpenID_server_url;
-
- $user_url = 'http://www.example.com/user.html';
- $links = sprintf(' ',
- $_Auth_OpenID_server_url);
-
- $delegate_url = 'http://consumer.example.com/user';
- $delegate_links = sprintf(' '.
- ' ',
- $_Auth_OpenID_server_url, $delegate_url);
-
- $this->_test_success($user_url, $user_url, $links);
- $this->_test_success($user_url, $user_url, $links, true);
- $this->_test_success($user_url, $delegate_url, $delegate_links);
- $this->_test_success($user_url, $delegate_url, $delegate_links, true);
- }
-}
-
-class ConfigurableConsumer extends Auth_OpenID_GenericConsumer {
- var $return_to_check_disabled = false;
-
- function disableReturnToChecking() {
- $this->return_to_check_disabled = true;
- }
-
- function complete($message, $endpoint, $return_to) {
- if ($this->return_to_check_disabled) {
- $return_to = null;
- }
-
- return parent::complete($message, $endpoint, $return_to);
- }
-
- function _checkReturnTo($unused, $unused2) {
- if ($this->return_to_check_disabled) {
- return true;
- } else {
- return parent::_checkReturnTo($unused, $unused2);
- }
- }
-}
-
-class _TestIdRes extends PHPUnit_Framework_TestCase {
- var $consumer_class = 'ConfigurableConsumer';
-
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $cl = $this->consumer_class;
- $this->consumer = new $cl($this->store);
- $this->return_to = "http://some.host/path";
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
-
- $this->server_id = "sirod";
- $this->server_url = "serlie";
- $this->consumer_id = "consu";
-
- $this->endpoint->claimed_id = $this->consumer_id;
- $this->endpoint->server_url = $this->server_url;
- $this->endpoint->local_id = $this->server_id;
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
- }
-}
-
-class Tests_Auth_OpenID_Consumer_TestSetupNeeded extends _TestIdRes {
- function failUnlessSetupNeeded($expected_setup_url, $message)
- {
- if ($this->consumer._checkSetupNeeded($message)) {
- $this->assertEquals($expected_setup_url,
- $message->getArg(Auth_OpenID_OPENID_NS,
- 'user_setup_url'));
- } else {
- $this->fail("Expected to find an immediate-mode response");
- }
- }
-
- function test_setupNeededOpenID1()
- {
- // The minimum conditions necessary to trigger Setup Needed
- $setup_url = 'http://unittest/setup-here';
- $message = Auth_OpenID_Message::fromPostArgs(array(
- 'opaenid.mode' => 'id_res',
- 'openid.user_setup_url' => $setup_url
- ));
- $this->assertTrue($message->isOpenID1());
- $this->failUnlessSetupNeeded($setup_url, $message);
- }
-
- function test_setupNeededOpenID1_extra()
- {
- // Extra stuff along with setup_url still trigger Setup Needed
- $setup_url = 'http://unittest/setup-here';
- $message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.mode' => 'id_res',
- 'openid.user_setup_url' => $setup_url,
- 'openid.identity' => 'bogus'
- ));
- $this->assertTrue($message->isOpenID1());
- $this->failUnlessSetupNeeded($setup_url, $message);
- }
-
- function test_noSetupNeededOpenID1()
- {
- // When the user_setup_url is missing on an OpenID 1 message,
- // we assume that it's not a cancel response to
- // checkid_immediate
- $message = Auth_OpenID_Message::fromOpenIDArgs(array('mode' => 'id_res'));
- $this->assertTrue($message->isOpenID1());
-
- // No SetupNeededError raised
- $this->consumer->_checkSetupNeeded($message);
- }
-
- function test_setupNeededOpenID2()
- {
- $message = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'setup_needed',
- 'ns' => Auth_OpenID_OPENID2_NS
- ));
- $this->assertTrue($message->isOpenID2());
- $response = $this->consumer->complete($message, null, null);
- $this->assertEquals('setup_needed', $response->status);
- $this->assertEquals(null, $response->setup_url);
- }
-
- function test_setupNeededDoesntWorkForOpenID1()
- {
- $message = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'setup_needed'));
-
- $this->assertFalse($this->consumer._checkSetupNeeded($message));
-
- $response = $this->consumer->complete($message, null, null);
- $this->assertEquals('failure', $response->status);
- $this->assertTrue(strpos($response->message, 'Invalid openid.mode') === 0);
- }
-
- function test_noSetupNeededOpenID2()
- {
- $message = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'id_res',
- 'game' => 'puerto_rico',
- 'ns' => Auth_OpenID_OPENID2_NS
- ));
- $this->assertTrue($message->isOpenID2());
-
- $this->assertFalse($this->consumer._checkSetupNeeded($message));
- }
-}
-
-class IdResCheckForFieldsTest extends _TestIdRes {
- function setUp() {
- # Argh.
- $v = null;
- $this->consumer = new Auth_OpenID_GenericConsumer($v);
- }
-
- function successTest($openid_args, $signed_list) {
- $message = Auth_OpenID_Message::fromOpenIDArgs($openid_args);
- $message->setArg(Auth_OpenID_OPENID_NS, 'signed', implode(',', $signed_list));
- $result = $this->consumer->_idResCheckForFields($message);
- $this->assertFalse(Auth_OpenID::isFailure($result));
- }
-
- function test_openid1Success() {
- $this->successTest(
- array('return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- ),
- array('return_to', 'identity'));
- }
-
- function test_openid2Success() {
- $this->successTest(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'op_endpoint' =>'my favourite server',
- 'response_nonce' =>'use only once',
- ),
- array('return_to', 'response_nonce', 'assoc_handle', 'op_endpoint'));
- }
-
- function test_openid2Success_identifiers() {
- $this->successTest(
- array('ns' =>Auth_OpenID_OPENID2_NS,
- 'return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'claimed_id' =>'i claim to be me',
- 'identity' =>'my server knows me as me',
- 'op_endpoint' =>'my favourite server',
- 'response_nonce' =>'use only once',
- ),
- array('return_to', 'response_nonce', 'identity',
- 'claimed_id', 'assoc_handle', 'op_endpoint'));
- }
-
- function endswith($str, $it) {
- $it_len = strlen($it);
- $total = strlen($str);
- return (strpos($str, $it) === $total - $it_len);
- }
-
- function missingFieldTest($openid_args) {
- $message = Auth_OpenID_Message::fromOpenIDArgs($openid_args);
- $result = $this->consumer->_idResCheckForFields($message);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- $this->assertTrue(strpos($result->message, 'Missing required') === 0);
- }
-
- function missingSignedTest($openid_args) {
- $message = Auth_OpenID_Message::fromOpenIDArgs($openid_args);
- $result = $this->consumer->_idResCheckForFields($message);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- if (Auth_OpenID::isFailure($result)) {
- $this->assertTrue($this->endswith($result->message, 'not signed'),
- $result->message);
- }
- }
-
- function test_openid1Missing_returnToSig() {
- $this->missingSignedTest(
- array('return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- 'signed' => 'identity,assoc_handle'));
- }
-
- function test_openid2Missing_opEndpointSig() {
- $this->missingSignedTest(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- 'op_endpoint' => 'the endpoint',
- 'signed' => 'identity,return_to,assoc_handle'));
- }
-
- function test_openid1Missing_identitySig() {
- $this->missingSignedTest(
- array('return_to' =>'return',
- 'assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- 'signed' => 'eturn_to'));
- }
-
- function test_openid1MissingReturnTo() {
- $this->missingFieldTest(
- array('assoc_handle' =>'assoc handle',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- 'signed' => 'return_to,identity'));
- }
-
- function test_openid1MissingAssocHandle() {
- $this->missingFieldTest(
- array('return_to' =>'return',
- 'sig' =>'a signature',
- 'identity' =>'someone',
- 'signed' => 'return_to,identity'
- ));
- }
-}
-
-define('E_CHECK_AUTH_HAPPENED', 'checkauth occurred');
-define('E_MOCK_FETCHER_EXCEPTION', 'mock fetcher exception');
-define('E_ASSERTION_ERROR', 'assertion error');
-
-class _CheckAuthDetectingConsumer extends ConfigurableConsumer {
- function _verifyDiscoveryResults($message, $endpoint)
- {
- return $endpoint;
- }
-
- function _idResCheckNonce($message, $endpoint)
- {
- return true;
- }
-
- function _checkAuth($query, $server_url)
- {
- __raiseError(E_CHECK_AUTH_HAPPENED);
- }
-}
-
-global $GOODSIG;
-$GOODSIG = "[A Good Signature]";
-
-class GoodAssociation {
- var $expiresIn = 3600;
- var $handle = "-blah-";
-
- function getExpiresIn()
- {
- return $this->expiresIn;
- }
-
- function checkMessageSignature($message)
- {
- global $GOODSIG;
- return $message->getArg(Auth_OpenID_OPENID_NS, 'sig') == $GOODSIG;
- }
-}
-
-class GoodAssocStore extends Tests_Auth_OpenID_MemStore {
- function getAssociation($server_url, $handle = null)
- {
- return new GoodAssociation();
- }
-}
-
-class TestIdResCheckSignature extends _TestIdRes {
- function setUp()
- {
- global $GOODSIG;
-
- parent::setUp();
- $this->assoc = new GoodAssociation();
- $this->assoc->handle = "{not_dumb}";
- $this->store->storeAssociation($this->endpoint->server_url, $this->assoc);
-
- $this->message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.mode'=> 'id_res',
- 'openid.identity'=> '=example',
- 'openid.sig'=> $GOODSIG,
- 'openid.assoc_handle'=> $this->assoc->handle,
- 'openid.signed'=> 'mode,identity,assoc_handle,signed',
- 'frobboz'=> 'banzit'));
- }
-
- function test_sign()
- {
- // assoc_handle to assoc with good sig
- $this->consumer->_idResCheckSignature($this->message,
- $this->endpoint->server_url);
- }
-
- function test_signFailsWithBadSig()
- {
- $this->message.setArg(Auth_OpenID_OPENID_NS, 'sig', 'BAD SIGNATURE');
- $result = $this->consumer->_idResCheckSignature($this->message, $this->endpoint->server_url);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-}
-
-class StatelessConsumer1 extends ConfigurableConsumer {
- function _processCheckAuthResponse($response, $server_url)
- {
- return true;
- }
-
- function _makeKVPost($args, $server_url)
- {
- return array();
- }
-}
-
-class Tests_Auth_OpenID_Stateless1 extends _TestIdRes {
- var $consumer_class = "StatelessConsumer1";
-
- function setUp()
- {
- global $GOODSIG;
-
- parent::setUp();
- $this->assoc = new GoodAssociation();
- $this->assoc->handle = "{not_dumb}";
- $this->store->storeAssociation($this->endpoint->server_url, $this->assoc);
-
- $this->message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.mode'=> 'id_res',
- 'openid.identity'=> '=example',
- 'openid.sig'=> $GOODSIG,
- 'openid.assoc_handle'=> $this->assoc->handle,
- 'openid.signed'=> 'mode,identity,assoc_handle,signed',
- 'frobboz'=> 'banzit'));
- }
-
- function test_stateless()
- {
- // assoc_handle missing assoc, consumer._checkAuth returns
- // goodthings
- $this->message->setArg(Auth_OpenID_OPENID_NS, "assoc_handle", "dumbHandle");
- $this->consumer->_idResCheckSignature($this->message,
- $this->endpoint->server_url);
- }
-}
-
-class StatelessConsumer2 extends ConfigurableConsumer {
- function _checkAuth($_, $__)
- {
- return false;
- }
-}
-
-class Tests_Auth_OpenID_Stateless2 extends _TestIdRes {
- var $consumer_class = "StatelessConsumer2";
-
- function setUp()
- {
- global $GOODSIG;
-
- parent::setUp();
- $this->assoc = new GoodAssociation();
- $this->assoc->handle = "{not_dumb}";
- $this->store->storeAssociation($this->endpoint->server_url, $this->assoc);
-
- $this->message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.mode'=> 'id_res',
- 'openid.identity'=> '=example',
- 'openid.sig'=> $GOODSIG,
- 'openid.assoc_handle'=> $this->assoc->handle,
- 'openid.signed'=> 'mode,identity,assoc_handle,signed',
- 'frobboz'=> 'banzit'));
- }
-
- function test_statelessRaisesError()
- {
- // assoc_handle missing assoc, consumer._checkAuth returns
- // goodthings
- $this->message->setArg(Auth_OpenID_OPENID_NS, "assoc_handle",
- "dumbHandle");
- $result = $this->consumer->_idResCheckSignature($this->message,
- $this->endpoint->server_url);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-}
-
-class Tests_Auth_OpenID_Consumer_CheckNonceTest extends _TestIdRes {
- function setUp()
- {
- parent::setUp();
- $this->consumer->openid1_nonce_query_arg_name = 'nonce';
- }
-
- function test_openid1Success()
- {
- // use consumer-generated nonce
- $nonce_value = Auth_OpenID_mkNonce();
- $this->return_to = sprintf('http://rt.unittest/?nonce=%s',
- $nonce_value);
- $this->response = Auth_OpenID_Message::fromOpenIDArgs(
- array('return_to' => $this->return_to));
- $this->response->setArg(Auth_OpenID_BARE_NS, 'nonce', $nonce_value);
-
- $result = $this->consumer->_idResCheckNonce($this->response, $this->endpoint);
- $this->assertFalse(Auth_OpenID::isFailure($result));
- }
-
- function test_openid1Missing()
- {
- // use consumer-generated nonce
- $this->response = Auth_OpenID_Message::fromOpenIDArgs(array());
- $n = $this->consumer->_idResGetNonceOpenID1($this->response, $this->endpoint);
- $this->assertTrue($n === null);
- }
-
- function test_consumerNonceOpenID2()
- {
- // OpenID 2 does not use consumer-generated nonce
- $this->return_to = sprintf('http://rt.unittest/?nonce=%s',
- Auth_OpenID_mkNonce());
- $this->response = Auth_OpenID_Message::fromOpenIDArgs(
- array('return_to' => $this->return_to,
- 'ns' => Auth_OpenID_OPENID2_NS));
- $result = $this->consumer->_idResCheckNonce($this->response, $this->endpoint);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_serverNonce()
- {
- // use server-generated nonce
- $this->response = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'response_nonce' => Auth_OpenID_mkNonce()));
- $this->consumer->_idResCheckNonce($this->response, $this->endpoint);
- }
-
- function test_serverNonceOpenID1()
- {
- // OpenID 1 does not use server-generated nonce
- $this->response = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID1_NS,
- 'return_to'=> 'http://return.to/',
- 'response_nonce'=> Auth_OpenID_mkNonce()));
- $result = $this->consumer->_idResCheckNonce($this->response, $this->endpoint);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_badNonce()
- {
- // remove the nonce from the store
- $nonce = Auth_OpenID_mkNonce();
- list($timestamp, $salt) = Auth_OpenID_splitNonce($nonce);
-
- $this->store->useNonce($this->server_url, $timestamp, $salt);
-
- $response = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'response_nonce' => $nonce,
- 'ns' => Auth_OpenID_OPENID2_NS
- ));
-
- $result = $this->consumer->_idResCheckNonce($response,
- $this->endpoint);
-
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_tamperedNonce()
- {
- // Malformed nonce
- $query = array('response_nonce' => 'malformed',
- 'ns' => Auth_OpenID_OPENID2_NS);
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $result = $this->consumer->_idResCheckNonce($message,
- $this->endpoint);
-
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_missingNonce()
- {
- // no nonce parameter on the return_to
- $query = array('openid.return_to' => $this->return_to);
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $result = $this->consumer->_idResCheckNonce($message,
- $this->endpoint);
-
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-}
-
-class Tests_Auth_OpenID_Consumer_TestCheckAuthTriggered extends _TestIdRes {
- var $consumer_class = '_CheckAuthDetectingConsumer';
-
- function _doIdRes($message, $endpoint, $return_to)
- {
- return $this->consumer->_doIdRes($message, $endpoint, $return_to);
- }
-
- function test_checkAuthTriggered()
- {
- $query = array('openid.return_to' => $this->return_to,
- 'openid.identity' => $this->server_id,
- 'openid.assoc_handle' =>'not_found',
- 'openid.sig' => 'bogus',
- 'openid.signed' => 'identity,return_to');
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->disableReturnToChecking();
-
- $result = $this->_doIdRes($message, $this->endpoint, null);
-
- $error = __getError();
-
- if ($error === null) {
- $this->fail('_checkAuth did not happen.');
- }
- }
-
- function test_checkAuthTriggeredWithAssoc()
- {
- // Store an association for this server that does not match
- // the handle that is in the query
- $issued = time();
- $lifetime = 1000;
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secret', $issued, $lifetime, 'HMAC-SHA1');
- $this->store->storeAssociation($this->server_url, $assoc);
-
- $query = array(
- 'openid.return_to' => $this->return_to,
- 'openid.identity' => $this->server_id,
- 'openid.assoc_handle' => 'not_found',
- 'openid.sig' => 'bogus',
- 'openid.signed' => 'return_to,identity');
-
- $this->consumer->disableReturnToChecking();
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $result = $this->_doIdRes($message, $this->endpoint, null);
- $error = __getError();
-
- if ($error === null) {
- $this->fail('_checkAuth did not happen.');
- }
- }
-
- function test_expiredAssoc()
- {
- // Store an expired association for the server with the handle
- // that is in the query
- $issued = time() - 10;
- $lifetime = 0;
- $handle = 'handle';
- $assoc = new Auth_OpenID_Association(
- $handle, 'secret', $issued, $lifetime, 'HMAC-SHA1');
- $this->assertTrue($assoc->getExpiresIn() <= 0);
- $this->store->storeAssociation($this->server_url, $assoc);
-
- $query = array(
- 'openid.return_to' => $this->return_to,
- 'openid.identity' => $this->server_id,
- 'openid.sig' => 'bogus',
- 'openid.signed' => 'identity,return_to',
- 'openid.assoc_handle' => $handle);
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->disableReturnToChecking();
-
- $info = $this->_doIdRes($message, $this->endpoint, null);
-
- $this->assertEquals('failure', $info->status);
-
- $this->assertTrue(strpos($info->message, 'expired') !== false);
- }
-
- function test_newerAssoc()
- {
- // Store an expired association for the server with the handle
- // that is in the query
- $lifetime = 1000;
-
- $good_issued = time() - 10;
- $good_handle = 'handle';
- $good_assoc = new Auth_OpenID_Association(
- $good_handle, 'secret', $good_issued, $lifetime, 'HMAC-SHA1');
- $this->store->storeAssociation($this->server_url, $good_assoc);
-
- $bad_issued = time() - 5;
- $bad_handle = 'handle2';
- $bad_assoc = new Auth_OpenID_Association(
- $bad_handle, 'secret', $bad_issued, $lifetime, 'HMAC-SHA1');
- $this->store->storeAssociation($this->server_url, $bad_assoc);
-
- $query = array(
- 'openid.return_to' => $this->return_to,
- 'openid.identity' => $this->server_id,
- 'openid.assoc_handle' => $good_handle);
-
- $this->consumer->disableReturnToChecking();
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $message = $good_assoc->signMessage($message);
-
- $info = $this->_doIdRes($message, $this->endpoint, null);
-
- $this->assertEquals($info->status, 'success');
- $this->assertEquals($this->consumer_id, $info->identity_url);
- }
-}
-
-class _MockFetcher {
- function _MockFetcher($response = null)
- {
- // response is (code, url, body)
- $this->response = $response;
- $this->fetches = array();
- }
-
- function post($url, $body)
- {
- $this->fetches[] = array($url, $body, array());
- return $this->response;
- }
-
- function get($url)
- {
- $this->fetches[] = array($url, null, array());
- return $this->response;
- }
-}
-
-class Tests_Auth_OpenID_Complete extends _TestIdRes {
- function test_cancel()
- {
- $query = array('openid.mode' => 'cancel');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->disableReturnToChecking();
-
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_CANCEL);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- }
-
- function test_cancel_with_return_to() {
- $message = Auth_OpenID_Message::fromPostArgs(array('openid.mode' => 'cancel'));
- $r = $this->consumer->complete($message, $this->endpoint, $this->return_to);
- $this->assertEquals($r->status, Auth_OpenID_CANCEL);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- }
-
- function test_errorWithNoOptionalKeys()
- {
- $msg = 'an error message';
- $contact = 'some contact info here';
- $message = Auth_OpenID_Message::fromPostArgs(array('openid.mode'=> 'error',
- 'openid.error'=> $msg,
- 'openid.contact'=> $contact));
-
- $this->consumer->disableReturnToChecking();
-
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- $this->assertTrue($r->contact == $contact);
- $this->assertTrue($r->reference === null);
- $this->assertEquals($r->message, $msg);
- }
-
- function test_errorWithOptionalKeys()
- {
- $msg = 'an error message';
- $contact = 'me';
- $reference = 'support ticket';
- $message = Auth_OpenID_Message::fromPostArgs(array('openid.mode'=> 'error',
- 'openid.error'=> $msg, 'openid.reference'=> $reference,
- 'openid.contact'=> $contact, 'openid.ns'=> Auth_OpenID_OPENID2_NS
- ));
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- $this->assertTrue($r->contact == $contact);
- $this->assertTrue($r->reference == $reference);
- $this->assertEquals($r->message, $msg);
- }
-
- function test_error()
- {
- $msg = 'an error message';
- $query = array('openid.mode' =>'error',
- 'openid.error' => $msg);
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->disableReturnToChecking();
-
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- $this->assertEquals($r->message, $msg);
- }
-
- function test_noMode()
- {
- $query = array();
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- $this->assertTrue($r->identity_url == $this->endpoint->claimed_id);
- }
-
- function test_idResMissingField()
- {
- $query = array('openid.mode' => 'id_res');
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertTrue(Auth_openID::isFailure($r));
- }
-}
-
-class _VerifiedError extends Auth_OpenID_FailureResponse {
-}
-
-class Consumer_idResURLMismatch extends ConfigurableConsumer {
- function _discoverAndVerify($to_match)
- {
- return new _VerifiedError(null, 'verified error');
- }
-}
-
-class Tests_idResURLMismatch extends _TestIdRes {
- var $consumer_class = 'Consumer_idResURLMismatch';
-
- function test_idResURLMismatch()
- {
- $query = array('openid.mode' => 'id_res',
- 'openid.return_to' => 'return_to (just anything)',
- 'openid.identity' => 'something wrong (not this->consumer_id)',
- 'openid.assoc_handle' => 'does not matter',
- 'openid.signed' => 'identity,return_to',
- 'openid.sig' => 'bogus');
-
- $this->consumer->disableReturnToChecking();
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertTrue(is_a($r, '_VerifiedError'));
- }
-}
-
-class SetupNeededConsumer extends Auth_OpenID_GenericConsumer {
- function _checkSetupNeeded($message)
- {
- return true;
- }
-}
-
-class Tests_Auth_OpenID_SetupNeeded extends _TestIdRes {
- function test_setupNeededIdRes()
- {
- $message = Auth_OpenID_Message::fromOpenIDArgs(array('mode'=> 'id_res'));
- $response = $this->consumer->complete($message, null, null);
- $this->assertEquals(Auth_OpenID_SETUP_NEEDED,
- $response->status);
- }
-}
-
-class TempConsumer extends ConfigurableConsumer {
- function _verifyDiscoveryResults($message, $endpoint)
- {
- return $endpoint;
- }
-}
-
-class TestCompleteMissingSig extends PHPUnit_Framework_TestCase {
-
- function setUp()
- {
- global $GOODSIG;
-
- $this->store = new GoodAssocStore();
- $this->consumer = new ConfigurableConsumer($this->store);
- $this->server_url = "http://idp.unittest/";
-
- $claimed_id = 'bogus.claimed';
-
- $this->message = Auth_OpenID_Message::fromOpenIDArgs(
- array('mode'=> 'id_res',
- 'return_to'=> 'return_to (just anything)',
- 'identity'=> $claimed_id,
- 'assoc_handle'=> 'does not matter',
- 'sig'=> $GOODSIG,
- 'response_nonce'=> Auth_OpenID_mkNonce(),
- 'signed'=> 'identity,return_to,response_nonce,assoc_handle,claimed_id,op_endpoint',
- 'claimed_id'=> $claimed_id,
- 'op_endpoint'=> $this->server_url,
- 'ns' => Auth_OpenID_OPENID2_NS));
-
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->server_url = $this->server_url;
- $this->endpoint->claimed_id = $claimed_id;
- $this->consumer->disableReturnToChecking();
- }
-
- function test_idResMissingNoSigs()
- {
- $c = new TempConsumer($this->store);
- $c->disableReturnToChecking();
- $r = $c->complete($this->message, $this->endpoint, null);
- $this->failUnlessSuccess($r);
- }
-
- function test_idResNoIdentity()
- {
- $this->message->delArg(Auth_OpenID_OPENID_NS, 'identity');
- $this->message->delArg(Auth_OpenID_OPENID_NS, 'claimed_id');
- $this->endpoint->claimed_id = null;
- $this->message->setArg(Auth_OpenID_OPENID_NS,
- 'signed', 'return_to,response_nonce,assoc_handle,op_endpoint');
- $r = $this->consumer->complete($this->message, $this->endpoint, null);
- $this->failUnlessSuccess($r);
- }
-
- function test_idResMissingIdentitySig()
- {
- $this->message->setArg(Auth_OpenID_OPENID_NS,
- 'signed',
- 'return_to,response_nonce,assoc_handle,claimed_id,op_endpoint');
- $r = $this->consumer->complete($this->message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- }
-
- function test_idResMissingReturnToSig()
- {
- $this->message->setArg(Auth_OpenID_OPENID_NS,
- 'signed',
- 'identity,response_nonce,assoc_handle,claimed_id');
- $r = $this->consumer->complete($this->message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- }
-
- function test_idResMissingAssocHandleSig()
- {
- $this->message->setArg(Auth_OpenID_OPENID_NS, 'signed',
- 'identity,response_nonce,return_to,claimed_id');
- $r = $this->consumer->complete($this->message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- }
-
- function test_idResMissingClaimedIDSig()
- {
- $this->message->setArg(Auth_OpenID_OPENID_NS, 'signed',
- 'identity,response_nonce,return_to,assoc_handle');
- $r = $this->consumer->complete($this->message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- }
-
- function failUnlessSuccess($response)
- {
- if ($response->status != Auth_OpenID_SUCCESS) {
- $this->fail(sprintf("Non-successful response: %s", $response->status));
- }
- }
-}
-
-class TestReturnToArgs extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $store = null;
- $this->consumer = new Auth_OpenID_GenericConsumer($store);
- }
-
- function test_returnToArgsUnexpectedArg()
- {
- $query = array(
- 'openid.mode' => 'id_res',
- 'openid.return_to' => 'http://example.com/',
- 'foo' => 'bar');
-
- // no return value, success is assumed if there are no
- // exceptions.
- $this->assertTrue(Auth_OpenID::isFailure(
- $this->consumer->_verifyReturnToArgs($query)));
- }
-
- function test_returnToArgsOkay()
- {
- $query = array(
- 'openid.mode'=> 'id_res',
- 'openid.return_to'=> 'http://example.com/?foo=bar',
- 'foo'=> 'bar'
- );
- // no return value, success is assumed if there are no exceptions.
- $result = $this->consumer->_verifyReturnToArgs($query);
-
- $this->assertFalse(Auth_OpenID::isFailure($result));
- $this->assertTrue($result);
- }
-
- function test_returnToMismatch()
- {
- $query = array(
- 'openid.mode' => 'id_res',
- 'openid.return_to' => 'http://example.com/?foo=bar');
-
- // fail, query has no key 'foo'.
- $result = $this->consumer->_verifyReturnToArgs($query);
- $this->assertTrue(Auth_OpenID::isFailure($result));
-
- $query['foo'] = 'baz';
- // fail, values for 'foo' do not match.
- $result = $this->consumer->_verifyReturnToArgs($query);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_noReturnTo()
- {
- $query = array('openid.mode'=> 'id_res');
- $result = $this->consumer->_verifyReturnToArgs($query);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_completeBadReturnTo()
- {
- // Test GenericConsumer.complete()'s handling of bad return_to
- // values.
- $return_to = "http://some.url/path?foo=bar";
-
- // Scheme, authority, and path differences are checked by
- // GenericConsumer._checkReturnTo. Query args checked by
- // GenericConsumer._verifyReturnToArgs.
- $bad_return_tos = array(
- // Scheme only
- "https://some.url/path?foo=bar",
- // Authority only
- "http://some.url.invalid/path?foo=bar",
- // Path only
- "http://some.url/path_extra?foo=bar",
- // Query args differ
- "http://some.url/path?foo=bar2",
- "http://some.url/path?foo2=bar"
- );
-
- $m = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $m->setArg(Auth_OpenID_OPENID_NS, 'mode', 'cancel');
- $m->setArg(Auth_OpenID_BARE_NS, 'foo', 'bar');
- $endpoint = null;
-
- foreach ($bad_return_tos as $bad) {
- $m->setArg(Auth_OpenID_OPENID_NS, 'return_to', $bad);
- $this->assertFalse($this->consumer->_checkReturnTo($m, $return_to));
- }
- }
-
- function test_completeGoodReturnTo()
- {
- // Test GenericConsumer.complete()'s handling of good
- // return_to values.
- $return_to = "http://some.url/path";
-
- $good_return_tos = array(
- array($return_to,
- array()),
- array($return_to . "?another=arg",
- array(array(
- array(Auth_OpenID_BARE_NS, 'another'),
- 'arg'))),
- array($return_to . "?another=arg#fragment",
- array(array(
- array(Auth_OpenID_BARE_NS, 'another'),
- 'arg'))),
- array("HTTP://some.url/path",array()),
- array("http://some.URL/path",array()),
- array("http://some.url:80/path",array()),
- array("http://some.url/./path",array())
- );
-
- $endpoint = null;
-
- foreach ($good_return_tos as $pair) {
- list($good_return_to, $extra) = $pair;
- $m = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $m->setArg(Auth_OpenID_OPENID_NS, 'mode', 'cancel');
-
- for ($i = 0; $i < count($extra); $i++) {
- list($ckey, $value) = $extra[$i];
- $ns = $ckey[0];
- $key = $ckey[1];
- $m->setArg($ns, $key, $value);
- }
-
- $m->setArg(Auth_OpenID_OPENID_NS, 'return_to', $good_return_to);
- $result = $this->consumer->complete($m, $endpoint, $return_to);
- $this->assertTrue(is_a($result, 'Auth_OpenID_CancelResponse'));
- }
- }
-}
-
-class Tests_Auth_OpenID_CheckAuthResponse extends _TestIdRes {
- function _createAssoc()
- {
- $issued = time();
- $lifetime = 1000;
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secret', $issued, $lifetime, 'HMAC-SHA1');
- $store =& $this->consumer->store;
- $store->storeAssociation($this->server_url, $assoc);
- $assoc2 = $store->getAssociation($this->server_url);
- $this->assertEquals($assoc, $assoc2);
- }
-
- function test_goodResponse()
- {
- // successful response to check_authentication
- $response = array('is_valid' => 'true');
- $message = Auth_OpenID_Message::fromOpenIDArgs($response);
- $r = $this->consumer->_processCheckAuthResponse($message, $this->server_url);
- $this->assertTrue($r);
- }
-
- function test_missingAnswer()
- {
- // check_authentication returns false when the server sends no
- // answer
- $response = array();
- $message = Auth_OpenID_Message::fromPostArgs($response);
- $r = $this->consumer->_processCheckAuthResponse($message, $this->server_url);
- $this->assertFalse($r);
- }
-
- function test_badResponse()
- {
- // check_authentication returns false when is_valid is false
- $response = array('is_valid' => 'false');
- $message = Auth_OpenID_Message::fromOpenIDArgs($response);
-
- $r = $this->consumer->_processCheckAuthResponse($message, $this->server_url);
- $this->assertFalse($r);
- }
-
- function test_badResponseInvalidate()
- {
- // Make sure that the handle is invalidated when is_valid is
- // false
- $this->_createAssoc();
- $response = array('is_valid' => 'false',
- 'invalidate_handle' => 'handle');
-
- $message = Auth_OpenID_Message::fromOpenIDArgs($response);
-
- $r = $this->consumer->_processCheckAuthResponse($message,
- $this->server_url);
- $this->assertFalse($r);
- $this->assertTrue(
- $this->consumer->store->getAssociation($this->server_url) === null);
- }
-
- function test_invalidateMissing()
- {
- // invalidate_handle with a handle that is not present
- $response = array('is_valid' => 'true',
- 'invalidate_handle' => 'missing');
-
- $message = Auth_OpenID_Message::fromOpenIDArgs($response);
-
- $r = $this->consumer->_processCheckAuthResponse($message, $this->server_url);
- $this->assertTrue($r);
- }
-
- function test_invalidatePresent()
- {
- // invalidate_handle with a handle that exists"""
- $this->_createAssoc();
- $response = array('is_valid' => 'true',
- 'invalidate_handle' => 'handle');
-
- $message = Auth_OpenID_Message::fromOpenIDArgs($response);
-
- $r = $this->consumer->_processCheckAuthResponse($message, $this->server_url);
- $this->assertTrue($r);
- $this->assertTrue(
- $this->consumer->store->getAssociation($this->server_url) === null);
- }
-}
-
-class _IdResFetchFailingConsumer extends Auth_OpenID_GenericConsumer {
- var $message = 'fetch failed';
-
- function _doIdRes($message, $endpoint)
- {
- return new Auth_OpenID_FailureResponse($endpoint,
- $this->message);
- }
-}
-
-class Tests_Auth_OpenID_FetchErrorInIdRes extends _TestIdRes {
- var $consumer_class = '_IdResFetchFailingConsumer';
-
- function test_idResFailure()
- {
- $query = array('openid.mode' => 'id_res');
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $r = $this->consumer->complete($message, $this->endpoint, null);
- $this->assertEquals($r->status, Auth_OpenID_FAILURE);
- $this->assertEquals($r->identity_url, $this->consumer_id);
- $this->assertEquals($this->consumer->message, $r->message);
- }
-}
-
-class _ExceptionRaisingMockFetcher {
- function get($url)
- {
- __raiseError(E_MOCK_FETCHER_EXCEPTION);
- }
-
- function post($url, $body)
- {
- __raiseError(E_MOCK_FETCHER_EXCEPTION);
-
- return new Auth_Yadis_HTTPResponse($url, 400,
- array(), '');
- }
-}
-
-class _BadArgCheckingConsumer extends Auth_OpenID_GenericConsumer {
- function _makeKVPost($message, $tmp)
- {
- $args = $message->toPostArgs();
-
- if ($args != array(
- 'openid.mode' => 'check_authentication',
- 'openid.signed' => 'foo')) {
- __raiseError(E_ASSERTION_ERROR);
- }
- return null;
- }
-}
-
-class Tests_Auth_OpenID_Consumer_TestCheckAuth extends _TestIdRes {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->consumer = new Auth_OpenID_GenericConsumer($this->store);
- $this->fetcher = new _MockFetcher();
- $this->consumer->fetcher =& $this->fetcher;
- }
-
- function test_checkauth_error()
- {
- global $_Auth_OpenID_server_url;
- $this->fetcher->response = new Auth_Yadis_HTTPResponse("http://some_url",
- 404,
- array(),
- "blah:blah\n");
- $query = array('openid.signed' => 'stuff, things');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $r = $this->consumer->_checkAuth($message, $_Auth_OpenID_server_url);
- if ($r !== false) {
- $this->fail("Expected _checkAuth result to be false");
- }
- }
-
- function test_bad_args()
- {
- $query = array('openid.signed' => 'foo',
- 'closid.foo' => 'something');
-
- $consumer = new _BadArgCheckingConsumer($this->store);
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->assertFalse($consumer->_checkAuth($message, 'does://not.matter'));
- }
-
- function test_signedList()
- {
- $signed = 'identity,mode,ns.sreg,sreg.email';
- $query = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode'=> 'id_res',
- 'sig'=> 'rabbits',
- 'identity'=> '=example',
- 'assoc_handle'=> 'munchkins',
- 'ns.sreg' => 'urn:sreg',
- 'sreg.email' => 'bogus@example.com',
- 'signed'=> $signed,
- 'foo'=> 'bar'));
-
- $args = $this->consumer->_createCheckAuthRequest($query);
- $this->assertTrue($args->isOpenID1());
- $signed_list = explode(',',$signed);
- foreach ($signed_list as $k) {
- $this->assertTrue($args->getAliasedArg($k));
- }
- }
-
-
- function test_112()
- {
- $args = array('openid.assoc_handle' => 'fa1f5ff0-cde4-11dc-a183-3714bfd55ca8',
- 'openid.claimed_id' => 'http://binkley.lan/user/test01',
- 'openid.identity' => 'http://test01.binkley.lan/',
- 'openid.mode' => 'id_res',
- 'openid.ns' => 'http://specs.openid.net/auth/2.0',
- 'openid.ns.pape' => 'http://specs.openid.net/extensions/pape/1.0',
- 'openid.op_endpoint' => 'http://binkley.lan/server',
- 'openid.pape.auth_policies' => 'none',
- 'openid.pape.auth_time' => '2008-01-28T20 =>42 =>36Z',
- 'openid.pape.nist_auth_level' => '0',
- 'openid.response_nonce' => '2008-01-28T21 =>07 =>04Z99Q=',
- 'openid.return_to' => 'http://binkley.lan =>8001/process?janrain_nonce=2008-01-28T21%3A07%3A02Z0tMIKx',
- 'openid.sig' => 'YJlWH4U6SroB1HoPkmEKx9AyGGg=',
- 'openid.signed' => 'assoc_handle,identity,response_nonce,return_to,claimed_id,op_endpoint,pape.auth_time,ns.pape,pape.nist_auth_level,pape.auth_policies'
- );
- $this->assertEquals(Auth_OpenID_OPENID2_NS, $args['openid.ns']);
- $incoming = Auth_OpenID_Message::fromPostArgs($args);
- $this->assertTrue($incoming->isOpenID2());
- $car = $this->consumer->_createCheckAuthRequest($incoming);
- $expected_args = $args;
- $expected_args['openid.mode'] = 'check_authentication';
- $expected = Auth_OpenID_Message::fromPostArgs($expected_args);
- $this->assertTrue($expected->isOpenID2());
- $this->assertEquals($expected, $car);
- $this->assertEquals($expected_args, $car->toPostArgs());
- }
-}
-
-class Tests_Auth_OpenID_Consumer_TestFetchAssoc extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->fetcher = new _MockFetcher();
- $this->consumer = new Auth_OpenID_GenericConsumer($this->store);
- $this->consumer->fetcher =& $this->fetcher;
- }
-
- function test_kvpost_error()
- {
- $this->fetcher->response = new Auth_Yadis_HTTPResponse("http://some_url",
- 404,
- array(),
- "blah:blah\n");
- $query = array('openid.mode' => 'associate');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $r = $this->consumer->_makeKVPost($message,
- "http://server_url");
- if ($r !== null) {
- $this->fail("Expected _makeKVPost result to be null");
- }
- }
-
- function test_error_404()
- {
- // 404 from a kv post raises HTTPFetchingError
- $this->fetcher->response = new Auth_Yadis_HTTPResponse(
- "http://some_url", 404, array('Hea'=> 'der'), 'blah:blah\n');
-
- $result = $this->consumer->_makeKVPost(
- Auth_OpenID_Message::fromPostArgs(array('mode'=>'associate')),
- "http://server_url");
-
- $this->assertTrue($result === null);
- }
-
- function test_error_exception()
- {
- $this->consumer->fetcher = new _ExceptionRaisingMockFetcher();
-
- $query = array('openid.mode' => 'associate');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->_makeKVPost($message,
- "http://server_url");
-
- if (__getError() !== E_MOCK_FETCHER_EXCEPTION) {
- $this->fail("Expected ExceptionRaisingMockFetcher to " .
- "raise E_MOCK_FETCHER_EXCEPTION");
- }
-
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->server_url = 'some://url';
-
- // exception fetching returns no association
- $this->assertEquals($this->consumer->_getAssociation($endpoint),
- null);
-
- $query = array('openid.signed' => '');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $this->consumer->_checkAuth($message,
- 'some://url');
-
- if (__getError() !== E_MOCK_FETCHER_EXCEPTION) {
- $this->fail("Expected ExceptionRaisingMockFetcher to " .
- "raise E_MOCK_FETCHER_EXCEPTION (_checkAuth)");
- }
- }
-}
-
-class Tests_Auth_OpenID_AuthRequestHTMLMarkup extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->claimed_id = 'identity_url';
-
- $this->request = new Auth_OpenID_AuthRequest($this->endpoint, null);
- }
-
- function test_htmlMarkup()
- {
- $html = $this->request->htmlMarkup('http://realm.com/',
- 'http://realm.com/return_to');
- $this->assertTrue(strpos($html,"") !== false);
- $this->assertTrue(strpos($html,"") !== false);
- $this->assertTrue(strpos($html,"assertTrue(strpos($html,"") !== false);
- $this->assertTrue(strpos($html,"") !== false);
- }
-}
-
-class Tests_Auth_OpenID_SuccessResponse extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->claimed_id = 'identity_url';
- }
-
- function test_extensionResponse()
- {
- $uri = "http://bogus.unittest/1.0";
-
- $query = array(
- 'openid.ns.unittest' => $uri,
- 'openid.unittest.one' => '1',
- 'openid.unittest.two' =>'2',
- 'openid.sreg.nickname' => 'j3h',
- 'openid.return_to' => 'return_to');
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $resp = new Auth_OpenID_SuccessResponse($this->endpoint, $message);
-
- $utargs = $resp->extensionResponse($uri, false);
- $this->assertEquals($utargs, array('one' => '1', 'two' => '2'));
- $sregargs = $resp->extensionResponse(Auth_OpenID_SREG_NS_URI, false);
- $this->assertEquals($sregargs, array('nickname' => 'j3h'));
- }
-
- function test_extensionResponseSigned()
- {
- $args = array(
- 'ns.sreg' => 'urn:sreg',
- 'ns.unittest' => 'urn:unittest',
- 'unittest.one' => '1',
- 'unittest.two' => '2',
- 'sreg.nickname' => 'j3h',
- 'sreg.dob' => 'yesterday',
- 'return_to' => 'return_to',
- 'signed' => 'sreg.nickname,unittest.one,sreg.dob');
-
- $signed_list = array('openid.sreg.nickname',
- 'openid.unittest.one',
- 'openid.sreg.dob',
- 'openid.ns.sreg');
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs($args);
- $resp = new Auth_OpenID_SuccessResponse($this->endpoint, $msg, $signed_list);
-
- // All args in this NS are signed, so expect all.
- $sregargs = $resp->extensionResponse('urn:sreg', true);
- $this->assertEquals($sregargs,
- array('nickname' => 'j3h',
- 'dob' => 'yesterday'));
-
- // Not all args in this NS are signed, so expect null when
- // asking for them.
- $utargs = $resp->extensionResponse('urn:unittest', true);
- $this->assertEquals($utargs, null);
- }
-
- function test_noReturnTo()
- {
- $message = Auth_OpenID_Message::fromPostArgs(array());
- $resp = new Auth_OpenID_SuccessResponse($this->endpoint, $message);
- $this->assertTrue($resp->getReturnTo() === null);
- }
-
- function test_returnTo()
- {
- $query = array('openid.return_to' => 'return_to');
- $message = Auth_OpenID_Message::fromPostArgs($query);
-
- $resp = new Auth_OpenID_SuccessResponse($this->endpoint,
- $message, array('openid.return_to'));
-
- $this->assertEquals($resp->getReturnTo(), 'return_to');
- }
-}
-
-class _StubConsumer {
- function _StubConsumer()
- {
- $this->assoc = null;
- $this->response = null;
- $this->endpoint = null;
- $this->fetcher = new _MockFetcher();
- }
-
- function begin($service)
- {
- $auth_req = new Auth_OpenID_AuthRequest($service, $this->assoc);
- $this->endpoint = $service;
- return $auth_req;
- }
-
- function complete($message, $endpoint, $return_to)
- {
- return $this->response;
- }
-}
-
-class Tests_Auth_OpenID_DiscoFailure extends PHPUnit_Framework_TestCase {
- var $consumerClass = null;
-
- function setUp()
- {
- foreach ($_SESSION as $k => $v) {
- unset($_SESSION[$k]);
- }
-
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->claimed_id = 'http://identity.url/';
- $this->endpoint->claimed_id = $this->claimed_id;
- $this->store = null;
- $this->session = new Auth_Yadis_PHPSession();
- $cls = $this->consumerClass;
- $this->consumer = new $cls($this->store, $this->session);
- $this->consumer->consumer = new _StubConsumer();
- $this->discovery = new Auth_Yadis_Discovery($this->session,
- $this->claimed_id,
- $this->consumer->session_key_prefix);
- }
-}
-
-class Consumer_completeEmptySession extends Auth_OpenID_GenericConsumer {
- var $test_case = null;
- var $text = "failed complete";
-
- function complete($message, $endpoint, $return_to)
- {
- $this->test_case->assertTrue($endpoint === null);
- return new Auth_OpenID_FailureResponse($endpoint, $this->text);
- }
-}
-
-class Tests_Auth_OpenID_ConsumerTest2 extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- foreach ($_SESSION as $k => $v) {
- unset($_SESSION[$k]);
- }
-
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->claimed_id = 'http://identity.url/';
- $this->endpoint->claimed_id = $this->claimed_id;
- $this->store = null;
- $this->session = new Auth_Yadis_PHPSession();
- $this->consumer = new Auth_OpenID_Consumer($this->store, $this->session);
- $this->consumer->consumer = new _StubConsumer();
- $this->discovery = new Auth_Yadis_Discovery($this->session,
- $this->claimed_id,
- $this->consumer->session_key_prefix);
- }
-
- function test_beginWithoutDiscovery()
- {
- // Does this really test anything non-trivial?
- $result = $this->consumer->beginWithoutDiscovery($this->endpoint);
-
- // The result is an auth request
- $this->assertTrue(strtolower(get_class($result)) ==
- 'auth_openid_authrequest');
-
- $loader = new Auth_OpenID_ServiceEndpointLoader();
-
- // Side-effect of calling beginWithoutDiscovery is setting the
- // session value to the endpoint attribute of the result
- $this->assertTrue(
- $loader->fromSession(
- $this->session->get($this->consumer->_token_key)) ==
- $result->endpoint);
-
- // The endpoint that we passed in is the endpoint on the
- // auth_request
- $this->assertTrue($result->endpoint == $this->endpoint);
- }
-
- function test_completeEmptySession()
- {
- $this->consumer->consumer = new Consumer_completeEmptySession($this->store);
- $this->consumer->consumer->test_case =& $this;
-
- $response = $this->consumer->complete(null);
- $this->assertTrue(Auth_OpenID::isFailure($response));
- $this->assertEquals($this->consumer->consumer->text, $response->message);
- $this->assertTrue($response->identity_url === null);
- }
-
- function _doResp($auth_req, $exp_resp)
- {
- // complete a transaction, using the expected response from
- // the generic consumer.
- $this->consumer->consumer->response = $exp_resp;
-
- // endpoint is stored in the session
- // $this->assertTrue($this->session->data);
- $this->assertTrue($_SESSION);
- $resp = $this->consumer->complete(null);
-
- // All responses should have the same identity URL, and the
- // session should be cleaned out
- if ($this->endpoint->claimed_id != Auth_OpenID_IDENTIFIER_SELECT) {
- $this->assertTrue($resp->identity_url == $this->claimed_id);
- }
-
- $this->assertFalse(in_array($this->consumer->_token_key,
- $_SESSION)); // this->session->data));
-
- // Expected status response
- $this->assertEquals($resp->status, $exp_resp->status);
-
- return $resp;
- }
-
- function _doRespNoDisco($exp_resp)
- {
- // Set up a transaction without discovery
- $auth_req = $this->consumer->beginWithoutDiscovery($this->endpoint);
- $resp = $this->_doResp($auth_req, $exp_resp);
- // There should be nothing left in the session once we have
- // completed.
- $this->assertFalse($this->session->contents());
- return $resp;
- }
-
- /*
- * Be sure that the session gets cleaned up when the response is
- * successful and has a different URL than the one in the request.
- */
- function test_successDifferentURL()
- {
- // Set up a request endpoint describing an IDP URL
- $this->identity_url = 'http://idp.url/';
- $this->endpoint->claimed_id = $this->endpoint->local_id = Auth_OpenID_IDENTIFIER_SELECT;
-
- // Use a response endpoint with a different URL (asserted by
- // the IDP)
- $resp_endpoint = new Auth_OpenID_ServiceEndpoint();
- $resp_endpoint->claimed_id = "http://user.url/";
-
- $resp = $this->_doRespDisco(
- true,
- mkSuccess($resp_endpoint, array()));
- $this->assertTrue($this->discovery->getManager(true) === null);
- }
-
- function test_noDiscoCompleteSuccessWithToken()
- {
- $message = Auth_OpenID_Message::fromPostArgs(array());
- $this->_doRespNoDisco(new Auth_OpenID_SuccessResponse($this->endpoint,
- $message));
- }
-
- function test_noDiscoCompleteCancelWithToken()
- {
- $this->_doRespNoDisco(new Auth_OpenID_CancelResponse($this->endpoint));
- }
-
- function test_noDiscoCompleteFailure()
- {
- $msg = 'failed!';
- $resp = $this->_doRespNoDisco(new Auth_OpenID_FailureResponse($this->endpoint, $msg));
- $this->assertTrue($resp->message == $msg);
- }
-
- function test_noDiscoCompleteSetupNeeded()
- {
- $setup_url = 'http://setup.url/';
- $resp = $this->_doRespNoDisco(
- new Auth_OpenID_SetupNeededResponse($this->endpoint, $setup_url));
- $this->assertTrue($resp->setup_url == $setup_url);
- }
-
- // To test that discovery is cleaned up, we need to initialize a
- // Yadis manager, and have it put its values in the session.
- function _doRespDisco($is_clean, $exp_resp)
- {
- // Set up and execute a transaction, with discovery
- $this->discovery->createManager(array($this->endpoint),
- $this->claimed_id);
- $auth_req = $this->consumer->begin($this->claimed_id);
- $resp = $this->_doResp($auth_req, $exp_resp);
-
- $manager = $this->discovery->getManager();
- if ($is_clean) {
- $this->assertTrue($this->discovery->getManager() === null);
- } else {
- $this->assertFalse($this->discovery->getManager() === null);
- }
-
- return $resp;
- }
-
- // Cancel and success DO clean up the discovery process
- function test_completeSuccess()
- {
- $message = Auth_OpenID_Message::fromPostArgs(array());
- $this->_doRespDisco(true,
- new Auth_OpenID_SuccessResponse($this->endpoint,
- $message));
- }
-
- function test_completeCancel()
- {
- $this->_doRespDisco(true,
- new Auth_OpenID_CancelResponse($this->endpoint));
- }
-
- // Failure and setup_needed don't clean up the discovery process
- function test_completeFailure()
- {
- $msg = 'failed!';
- $resp = $this->_doRespDisco(false,
- new Auth_OpenID_FailureResponse($this->endpoint, $msg));
- $this->assertTrue($resp->message == $msg);
- }
-
- function test_completeSetupNeeded()
- {
- $setup_url = 'http://setup.url/';
- $resp = $this->_doRespDisco(false,
- new Auth_OpenID_SetupNeededResponse($this->endpoint, $setup_url));
- $this->assertTrue($resp->status == Auth_OpenID_SETUP_NEEDED);
- $this->assertTrue($resp->setup_url == $setup_url);
- }
-
- function test_begin()
- {
- $this->discovery->createManager(array($this->endpoint),
- $this->claimed_id);
- // Should not raise an exception
- $auth_req = $this->consumer->begin($this->claimed_id);
- $this->assertTrue(strtolower(get_class($auth_req)) === 'auth_openid_authrequest');
- $this->assertTrue($auth_req->endpoint == $this->endpoint);
- $this->assertTrue($auth_req->endpoint == $this->consumer->consumer->endpoint);
- $this->assertTrue($auth_req->assoc == $this->consumer->consumer->assoc);
- }
-}
-
-class IDPDrivenTest_Consumer1 extends ConfigurableConsumer {
- var $iverified = array();
- var $endpoint = null;
- var $failure_cb = null;
- var $check_endpoint = null;
-
- function _idResCheckNonce($message, $endpoint)
- {
- return true;
- }
-
- function _verifyDiscoveryResults($identifier, $endpoint)
- {
- call_user_func($this->failure_cb,
- $endpoint === $this->check_endpoint);
- $this->iverified[] = $this->endpoint;
- return $this->endpoint;
- }
-}
-
-class IDPDrivenTest_Consumer2 extends ConfigurableConsumer {
- function verifyDiscoveryResults($identifier, $endp)
- {
- return new Auth_OpenID_FailureResponse(null,
- "Bogus");
- }
-}
-
-class IDPDrivenTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new GoodAssocStore();
- $this->consumer = new ConfigurableConsumer($this->store);
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->server_url = "http://idp.unittest/";
- }
-
- function test_idpDrivenBegin()
- {
- // Testing here that the token-handling doesn't explode...
- $this->assertTrue($this->consumer->begin($this->endpoint) !== null);
- }
-
- function test_idpDrivenComplete()
- {
- global $GOODSIG;
-
- $this->consumer = new IDPDrivenTest_Consumer1($this->store);
- $this->consumer->failure_cb = array($this, "assertTrue");
- $this->consumer->check_endpoint =& $this->endpoint;
-
- $identifier = '=directed_identifier';
- $message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.identity'=> '=directed_identifier',
- 'openid.return_to'=> 'x',
- 'openid.assoc_handle'=> 'z',
- 'openid.signed'=> 'identity,return_to',
- 'openid.sig'=> $GOODSIG));
-
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->claimed_id = $identifier;
- $endpoint->server_url = $this->endpoint->server_url;
- $endpoint->local_id = $identifier;
-
- $this->consumer->disableReturnToChecking();
-
- $this->consumer->endpoint =& $endpoint;
- $response = $this->consumer->_doIdRes($message, $this->endpoint, null);
-
- $this->failUnlessSuccess($response);
-
- $this->assertEquals($response->identity_url, "=directed_identifier");
-
- // assert that discovery attempt happens and returns good
- $this->assertEquals($this->consumer->iverified, array($endpoint));
- }
-
- function test_idpDrivenCompleteFraud()
- {
- global $GOODSIG;
-
- $this->consumer = new IDPDrivenTest_Consumer2($this->store);
-
- // crap with an identifier that doesn't match discovery info
- $message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.identity'=> '=directed_identifier',
- 'openid.return_to'=> 'x',
- 'openid.assoc_handle'=> 'z',
- 'openid.signed'=> 'identity,return_to',
- 'openid.sig'=> $GOODSIG));
-
- $this->consumer->disableReturnToChecking();
-
- $result = $this->consumer->_doIdRes($message, $this->endpoint, null);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function failUnlessSuccess($response)
- {
- if ($response->status != Auth_OpenID_SUCCESS) {
- $this->fail("Non-successful response (status is ".$response->status.")");
- }
- }
-}
-
-global $__test_otherServer_text;
-$__test_otherServer_text = "__test_otherServer";
-class TestDiscoveryVerification_test_otherServer extends Auth_OpenID_GenericConsumer {
- function _discoverAndVerify($to_match)
- {
- global $__test_otherServer_text;
- return new Auth_OpenID_FailureResponse(null, $__test_otherServer_text);
- }
-}
-
-class TestDiscoveryVerification extends PHPUnit_Framework_TestCase {
- var $services = array();
-
- function discoveryFunc($identifier)
- {
- return array($identifier, $this->services);
- }
-
- function setUp()
- {
- $this->store = new GoodAssocStore();
- $this->consumer = new Auth_OpenID_GenericConsumer($this->store);
- $this->consumer->discoverMethod = array($this,
- 'discoveryFunc');
-
- $this->identifier = "http://idp.unittest/1337";
- $this->server_url = "http://endpoint.unittest/";
-
- $this->message = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.ns'=> Auth_OpenID_OPENID2_NS,
- 'openid.identity'=> $this->identifier,
- 'openid.claimed_id'=> $this->identifier,
- 'openid.op_endpoint'=> $this->server_url));
-
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->server_url = $this->server_url;
- }
-
- function test_theGoodStuff()
- {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
- $endpoint->claimed_id = $this->identifier;
- $endpoint->server_url = $this->server_url;
- $endpoint->local_id = $this->identifier;
- $this->services = array($endpoint);
- $r = $this->consumer->_verifyDiscoveryResults($this->message, $endpoint);
-
- $this->assertEquals($r, $endpoint);
- }
-
- function test_otherServer()
- {
- global $__test_otherServer_text;
-
- // setup
- $this->consumer = new TestDiscoveryVerification_test_otherServer($this->store);
- $this->consumer->discoverMethod = array($this,
- 'discoveryFunc');
-
- // a set of things without the stuff
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
- $endpoint->claimed_id = $this->identifier;
- $endpoint->server_url = "http://the-MOON.unittest/";
- $endpoint->local_id = $this->identifier;
- $this->services = array($endpoint);
-
- $result = $this->consumer->_verifyDiscoveryResults(
- $this->message, $endpoint);
-
- $this->assertTrue(Auth_OpenID::isFailure($result));
- $this->assertTrue(strpos($result->message, $__test_otherServer_text) !== false);
- }
-
- function test_foreignDelegate()
- {
- global $__test_otherServer_text;
-
- // setup
- $this->consumer = new TestDiscoveryVerification_test_otherServer($this->store);
- $this->consumer->discoverMethod = array($this,
- 'discoveryFunc');
-
- // a set of things with the server stuff but other delegate
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
- $endpoint->claimed_id = $this->identifier;
- $endpoint->server_url = $this->server_url;
- $endpoint->local_id = "http://unittest/juan-carlos";
-
- $result = $this->consumer->_verifyDiscoveryResults(
- $this->message, $endpoint);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- $this->assertTrue(strpos($result->message, $__test_otherServer_text) !== false);
- }
-
- function test_nothingDiscovered()
- {
- // a set of no things.
- $this->services = array();
- $result = $this->consumer->_verifyDiscoveryResults(
- $this->message, $this->endpoint);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-}
-
-class DummyEndpoint {
- var $use_compatibility = false;
-
- function compatibilityMode()
- {
- return $this->use_compatibility;
- }
-}
-
-class TestCreateAssociationRequest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->endpoint = new DummyEndpoint();
- $s = null;
- $this->consumer = new Auth_OpenID_GenericConsumer($s);
- $this->assoc_type = 'HMAC-SHA1';
- }
-
- function test_noEncryptionSendsType()
- {
- $session_type = 'no-encryption';
- list($session, $args) = $this->consumer->_createAssociateRequest(
- $this->endpoint, $this->assoc_type, $session_type);
-
- $this->assertTrue(is_a($session, 'Auth_OpenID_PlainTextConsumerSession'));
-
- $expected = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'session_type'=>$session_type,
- 'mode'=>'associate',
- 'assoc_type'=>$this->assoc_type));
-
- $this->assertEquals($expected->toPostArgs(),
- $args->toPostArgs());
- }
-
- function test_noEncryptionSendsTypeHMACSHA256()
- {
- if (!Auth_OpenID_HMACSHA256_SUPPORTED) {
- $this->pass();
- return;
- }
-
- $session_type = 'no-encryption';
- $this->assoc_type = 'HMAC-SHA256';
-
- list($session, $args) = $this->consumer->_createAssociateRequest(
- $this->endpoint, $this->assoc_type, $session_type);
-
- $this->assertTrue(is_a($session, 'Auth_OpenID_PlainTextConsumerSession'));
-
- $expected = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'session_type'=>$session_type,
- 'mode'=>'associate',
- 'assoc_type'=>$this->assoc_type));
-
- $this->assertEquals($expected->toPostArgs(),
- $args->toPostArgs());
-
- $response = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'session_type'=>$session_type,
- 'assoc_type'=>$this->assoc_type,
- 'expires_in' => '10000000000',
- 'mac_key' => 'ZM9v',
- 'assoc_handle' => 'turnme'
- )
- );
-
- $assoc = $this->consumer->_extractAssociation($response, $session);
-
- $this->assertTrue($assoc !== null);
- $this->assertTrue(is_a($assoc, 'Auth_OpenID_Association'));
- $this->assertTrue($assoc->assoc_type = $this->assoc_type);
- $this->assertTrue($assoc->session_type = $session_type);
- }
-
- function test_noEncryptionCompatibility()
- {
- $this->endpoint->use_compatibility = true;
- $session_type = 'no-encryption';
- list($session, $args) = $this->consumer->_createAssociateRequest(
- $this->endpoint, $this->assoc_type, $session_type);
-
- $this->assertTrue(is_a($session, 'Auth_OpenID_PlainTextConsumerSession'));
- $this->assertEquals(Auth_OpenID_Message::fromOpenIDArgs(array('mode'=>'associate',
- 'assoc_type'=>$this->assoc_type)),
- $args);
- }
-
- function test_dhSHA1Compatibility()
- {
- // Set the consumer's session type to a fast session since we
- // need it here.
- setConsumerSession($this->consumer);
-
- $this->endpoint->use_compatibility = true;
- $session_type = 'DH-SHA1';
- list($session, $args) = $this->consumer->_createAssociateRequest(
- $this->endpoint, $this->assoc_type, $session_type);
-
- $this->assertTrue(is_a($session,
- 'Auth_OpenID_DiffieHellmanSHA1ConsumerSession'));
-
- // This is a random base-64 value, so just check that it's
- // present.
- $this->assertTrue($args->hasKey(Auth_OpenID_OPENID1_NS, 'dh_consumer_public'));
- $args->delArg(Auth_OpenID_OPENID1_NS, 'dh_consumer_public');
-
- // OK, session_type is set here and not for no-encryption
- // compatibility
- $expected = Auth_OpenID_Message::fromOpenIDArgs(array('mode'=>'associate',
- 'session_type'=>'DH-SHA1',
- 'assoc_type'=>$this->assoc_type,
- 'dh_modulus'=> 'BfvStQ==',
- 'dh_gen'=> 'Ag=='));
-
- $this->assertEquals($expected->toPostArgs(),
- $args->toPostArgs());
- }
-}
-
-class TestDiffieHellmanResponseParameters extends PHPUnit_Framework_TestCase {
- var $session_cls = null;
- var $message_namespace = null;
-
- function setUp()
- {
- // Pre-compute DH with small prime so tests run quickly.
- $this->server_dh = new Auth_OpenID_DiffieHellman(100389557, 2);
- $this->consumer_dh = new Auth_OpenID_DiffieHellman(100389557, 2);
-
- $lib = Auth_OpenID_getMathLib();
-
- $cls = $this->session_cls;
- $this->consumer_session = new $cls($this->consumer_dh);
-
- // base64(btwoc(g ^ xb mod p))
- $this->dh_server_public = $lib->longToBase64($this->server_dh->public);
-
- $this->secret = Auth_OpenID_CryptUtil::randomString(
- $this->consumer_session->secret_size);
-
- $this->enc_mac_key = base64_encode(
- $this->server_dh->xorSecret($this->consumer_dh->public,
- $this->secret,
- $this->consumer_session->hash_func));
-
- $this->msg = new Auth_OpenID_Message($this->message_namespace);
- }
-
- function testExtractSecret()
- {
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'dh_server_public',
- $this->dh_server_public);
-
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'enc_mac_key',
- $this->enc_mac_key);
-
- $extracted = $this->consumer_session->extractSecret($this->msg);
- $this->assertEquals($extracted, $this->secret);
- }
-
- function testAbsentServerPublic()
- {
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'enc_mac_key',
- $this->enc_mac_key);
-
- $this->assertTrue($this->consumer_session->extractSecret($this->msg) === null);
- }
-
- function testAbsentMacKey()
- {
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'dh_server_public',
- $this->dh_server_public);
-
- $this->assertTrue($this->consumer_session->extractSecret($this->msg) === null);
- }
-
- /*
- function testInvalidBase64Public()
- {
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'dh_server_public',
- 'n o t b a s e 6 4.');
-
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'enc_mac_key',
- $this->enc_mac_key);
-
- $this->assertTrue($this->consumer_session->extractSecret($this->msg) === null);
- }
-
- function testInvalidBase64MacKey()
- {
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'dh_server_public',
- $this->dh_server_public);
-
- $this->msg->setArg(Auth_OpenID_OPENID_NS, 'enc_mac_key',
- 'n o t base 64');
-
- $this->assertTrue($this->consumer_session->extractSecret($this->msg) === null);
- }
- */
-}
-
-class TestOpenID1SHA1 extends TestDiffieHellmanResponseParameters {
- var $session_cls = 'Auth_OpenID_DiffieHellmanSHA1ConsumerSession';
- var $message_namespace = Auth_OpenID_OPENID1_NS;
-}
-
-class TestOpenID2SHA1 extends TestDiffieHellmanResponseParameters {
- var $session_cls = 'Auth_OpenID_DiffieHellmanSHA1ConsumerSession';
- var $message_namespace = Auth_OpenID_OPENID2_NS;
-}
-
-if (!defined('Auth_OpenID_NO_MATH_SUPPORT') &&
- Auth_OpenID_SHA256_SUPPORTED) {
- class TestOpenID2SHA256 extends TestDiffieHellmanResponseParameters {
- var $session_cls = 'Auth_OpenID_DiffieHellmanSHA256ConsumerSession';
- var $message_namespace = Auth_OpenID_OPENID2_NS;
- }
-}
-
-class Tests_Auth_OpenID_KVPost extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->server_url = 'http://unittest/bogus';
- }
-
- function test_200()
- {
- $response = new Auth_Yadis_HTTPResponse();
- $response->status = 200;
- $response->body = "foo:bar\nbaz:quux\n";
- $r = Auth_OpenID_GenericConsumer::_httpResponseToMessage($response, $this->server_url);
- $expected_msg = Auth_OpenID_Message::fromOpenIDArgs(array('foo' => 'bar', 'baz' => 'quux'));
- $this->assertEquals($expected_msg, $r);
- }
-
- function test_400()
- {
- $response = new Auth_Yadis_HTTPResponse();
- $response->status = 400;
- $response->body = "error:bonk\nerror_code:7\n";
- $result = Auth_OpenID_GenericConsumer::_httpResponseToMessage($response, $this->server_url);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerErrorContainer'));
- $this->assertEquals($result->error_text, 'bonk');
- $this->assertEquals($result->error_code, '7');
- }
-
- function test_500()
- {
- // 500 as an example of any non-200, non-400 code.
- $response = new Auth_Yadis_HTTPResponse();
- $response->status = 500;
- $response->body = "foo:bar\nbaz:quux\n";
- $result = Auth_OpenID_GenericConsumer::_httpResponseToMessage($response, $this->server_url);
- $this->assertTrue($result === null);
- }
-}
-
-// Add other test cases to be run.
-global $Tests_Auth_OpenID_Consumer_other;
-$Tests_Auth_OpenID_Consumer_other = array(
- // new Tests_Auth_OpenID_Consumer_TestSetupNeeded(),
- new Tests_Auth_OpenID_AuthRequestHTMLMarkup(),
- new Tests_Auth_OpenID_Consumer_TestCheckAuth(),
- new Tests_Auth_OpenID_Consumer_TestCheckAuthTriggered(),
- new Tests_Auth_OpenID_Consumer_TestFetchAssoc(),
- new Tests_Auth_OpenID_Consumer_CheckNonceTest(),
- new Tests_Auth_OpenID_Complete(),
- new Tests_Auth_OpenID_SuccessResponse(),
- new Tests_Auth_OpenID_CheckAuthResponse(),
- new Tests_Auth_OpenID_FetchErrorInIdRes(),
- new Tests_Auth_OpenID_ConsumerTest2(),
- new Tests_Auth_OpenID_Stateless1(),
- new Tests_Auth_OpenID_Stateless2(),
- new TestCompleteMissingSig(),
- new TestReturnToArgs(),
- new IDPDrivenTest(),
- new TestDiscoveryVerification(),
- new Tests_Auth_OpenID_KVPost(),
- new Tests_idResURLMismatch(),
- new IdResCheckForFieldsTest(),
- );
-
-if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $Tests_Auth_OpenID_Consumer_other[] = new TestCreateAssociationRequest();
- $Tests_Auth_OpenID_Consumer_other[] = new TestOpenID1SHA1();
- $Tests_Auth_OpenID_Consumer_other[] = new TestOpenID2SHA1();
-}
-
-if (!defined('Auth_OpenID_NO_MATH_SUPPORT') &&
- Auth_OpenID_SHA256_SUPPORTED) {
- $Tests_Auth_OpenID_Consumer_other[] = new TestOpenID2SHA256();
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/CryptUtil.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/CryptUtil.php
deleted file mode 100644
index 29022d2e1..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/CryptUtil.php
+++ /dev/null
@@ -1,54 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID.php';
-require_once 'Auth/OpenID/CryptUtil.php';
-
-class Tests_Auth_OpenID_CryptUtil extends PHPUnit_Framework_TestCase {
- function test_length()
- {
- $cases = array(1, 10, 255);
- foreach ($cases as $length) {
- $data = Auth_OpenID_CryptUtil::getBytes($length);
- $this->assertEquals(Auth_OpenID::bytes($data), $length);
- }
- }
-
- function test_different()
- {
- $num_iterations = 100;
- $data_length = 20;
-
- $data = Auth_OpenID_CryptUtil::getBytes($num_iterations);
- for ($i = 0; $i < $num_iterations; $i++) {
- $last = $data;
- $data = Auth_OpenID_CryptUtil::getBytes($data_length);
- $this->assertFalse($data == $last);
- }
- }
-
- function test_cryptrand()
- {
- // It's possible, but HIGHLY unlikely that a correct
- // implementation will fail by returning the same number twice
-
- $s = Auth_OpenID_CryptUtil::getBytes(32);
- $t = Auth_OpenID_CryptUtil::getBytes(32);
- $this->assertEquals(Auth_OpenID::bytes($s), 32);
- $this->assertEquals(Auth_OpenID::bytes($t), 32);
- $this->assertFalse($s == $t);
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/DiffieHellman.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/DiffieHellman.php
deleted file mode 100644
index 524c011b7..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/DiffieHellman.php
+++ /dev/null
@@ -1,159 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/DiffieHellman.php';
-require_once 'Tests/Auth/OpenID/TestUtil.php';
-
-class Tests_Auth_OpenID_DiffieHellman_CheckCases extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_DiffieHellman_CheckCases($cases, $n)
- {
- $this->cases = $cases;
- $this->n = $n;
- }
-
- function runTest()
- {
- $this->assertEquals($this->n, count($this->cases));
- }
-}
-
-class Tests_Auth_OpenID_DiffieHellman_Private extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_DiffieHellman_Private($name, $input, $expected)
- {
- $this->setName("$name");
- $this->input = $input;
- $this->expected = $expected;
- }
-
- function runTest()
- {
- $lib =& Auth_OpenID_getMathLib();
- $dh = new Auth_OpenID_DiffieHellman(null, null, $this->input);
- $this->assertEquals($lib->cmp($this->expected, $dh->getPublicKey()), 0);
- }
-}
-
-class Tests_Auth_OpenID_DiffieHellman_Exch extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_DiffieHellman_Exch($name, $p1, $p2, $shared)
- {
- $this->setName("$name");
- $this->p1 = $p1;
- $this->p2 = $p2;
- $this->shared = $shared;
- }
-
- function runTest()
- {
- $lib = Auth_OpenID_getMathLib();
- $shared = $lib->init($this->shared);
- $dh1 = new Auth_OpenID_DiffieHellman(null, null, $this->p1);
- $dh2 = new Auth_OpenID_DiffieHellman(null, null, $this->p2);
- $sh1 = $dh1->getSharedSecret($dh2->getPublicKey());
- $sh2 = $dh2->getSharedSecret($dh1->getPublicKey());
- $this->assertEquals($lib->cmp($shared, $sh1), 0);
- $this->assertEquals($lib->cmp($shared, $sh2), 0);
- }
-}
-
-class Tests_Auth_OpenID_DiffieHellman extends PHPUnit_Framework_TestSuite {
- function _readPrivateTestCases()
- {
- $lines = Tests_Auth_OpenID_readlines('dhpriv');
- $cases = array();
- foreach ($lines as $line) {
- $case = array();
- if (!preg_match('/^(\d+) (\d+)\n$/', $line, $case)) {
- trigger_error("Bad test input: $line", E_USER_ERROR);
- }
-
- $c = count($case);
- if ($c != 3) {
- trigger_error("Wrong number of elements in parsed case: $c",
- E_USER_ERROR);
- }
-
- array_shift($case);
- $cases[] = $case;
- }
-
- return $cases;
- }
-
- function _readExchTestCases()
- {
- $lines = Tests_Auth_OpenID_readlines('dhexch');
- $cases = array();
- foreach ($lines as $line) {
- $case = array();
- if (!preg_match('/^(\d+) (\d+) (\d+)\n$/', $line, $case)) {
- trigger_error("Bad test input: $line", E_USER_ERROR);
- }
-
- $c = count($case);
- if ($c != 4) {
- trigger_error("Wrong number of elements in parsed case: $c",
- E_USER_ERROR);
- }
-
- array_shift($case);
- $cases[] = $case;
- }
- return $cases;
- }
-
- function Tests_Auth_OpenID_DiffieHellman($name)
- {
- $this->setName($name);
-
- $priv_cases = Tests_Auth_OpenID_DiffieHellman::_readPrivateTestCases();
- $sanity = new Tests_Auth_OpenID_DiffieHellman_CheckCases(
- $priv_cases, 29);
- $sanity->setName('Check parsing of priv test data');
- $this->addTest($sanity);
-
- $exch_cases = Tests_Auth_OpenID_DiffieHellman::_readExchTestCases();
- $sanity = new Tests_Auth_OpenID_DiffieHellman_CheckCases(
- $exch_cases, 25);
- $sanity->setName('Check parsing of exch test data');
- $this->addTest($sanity);
-
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- if (defined('Tests_Auth_OpenID_thorough')) {
- $npriv = count($priv_cases);
- $nexch = count($exch_cases);
- } else {
- $npriv = 1;
- $nexch = 3;
- }
-
- for ($i = 0; $i < $npriv; $i++) {
- list($input, $expected) = $priv_cases[$i];
- $one = new Tests_Auth_OpenID_DiffieHellman_Private(
- "DHPriv $i", $input, $expected);
- $this->addTest($one);
- }
-
- for ($i = 0; $i < $nexch; $i++) {
- $case = $exch_cases[$i];
- $one = new Tests_Auth_OpenID_DiffieHellman_Exch(
- $i, $case[0], $case[1], $case[2]);
- $this->addTest($one);
- }
- }
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Discover_OpenID.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Discover_OpenID.php
deleted file mode 100644
index 740548d10..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Discover_OpenID.php
+++ /dev/null
@@ -1,781 +0,0 @@
-responses = $responses;
- }
-
- function get($url)
- {
- $response = array_pop($this->responses);
- assert($response[1] == $url);
- return $response;
- }
-}
-
-class Tests_Auth_OpenID_ServiceEndpoint extends PHPUnit_Framework_TestCase {
- function setUp() {
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- }
-
- function test_getDisplayIdentifier_noFragment() {
- $urls = array("http://foo.bar.com/something",
- "http://foo.bar.com/something?else=what¬hing=0",
- "https://smoker.myopenid.com/"
- );
-
- foreach ($urls as $url) {
- $this->endpoint->claimed_id = $url;
- $this->assertEquals($url, $this->endpoint->getDisplayIdentifier());
- }
- }
-
- function test_getDisplayIdentifier_withFragment() {
- $urls = array("http://foo.bar.com/something#fragged",
- "http://foo.bar.com/something?else=what¬hing=0#ow",
- "https://smoker.myopenid.com/#myentirelife"
- );
-
- foreach ($urls as $url) {
- $this->endpoint->claimed_id = $url;
- $split = explode('#', $url);
- $this->assertEquals($split[0],
- $this->endpoint->getDisplayIdentifier());
- }
- }
-}
-
-class Tests_Auth_OpenID_DiscoveryFailure extends PHPUnit_Framework_TestCase {
-
- function Tests_Auth_OpenID_DiscoveryFailure($responses)
- {
- // Response is ($code, $url, $body).
- $this->cases = array(
- array(null, 'http://network.error/', ''),
- array(404, 'http://not.found/', ''),
- array(400, 'http://bad.request/', ''),
- array(500, 'http://server.error/', ''),
- array(200, 'http://header.found/', 200,
- array('x-xrds-location' => 'http://xrds.missing/')),
- array(404, 'http://xrds.missing/', ''));
-
- $this->url = $responses[0]->final_url;
- $this->responses = $responses;
- $this->fetcher = new _SimpleMockFetcher($this->responses);
- }
-
- function runTest()
- {
- foreach ($this->cases as $case) {
- list($status, $url, $body) = $case;
- $expected_status = $status;
-
- $result = Auth_OpenID_discover($this->url, $this->fetcher);
- list($id_url, $svclist) = $result;
-
- $this->assertEquals($svclist, array());
- }
- }
-}
-
-### Tests for raising/catching exceptions from the fetcher through the
-### discover function
-
-class _ErrorRaisingFetcher {
- // Just raise an exception when fetch is called
-
- function _ErrorRaisingFetcher($thing_to_raise)
- {
- $this->thing_to_raise = $thing_to_raise;
- }
-
- function post($body = null)
- {
- __raiseError($this->thing_to_raise);
- }
-
- function get($url)
- {
- __raiseError($this->thing_to_raise);
- }
-}
-
-define('E_AUTH_OPENID_EXCEPTION', 'e_exception');
-define('E_AUTH_OPENID_DIDFETCH', 'e_didfetch');
-define('E_AUTH_OPENID_VALUE_ERROR', 'e_valueerror');
-define('E_AUTH_OPENID_RUNTIME_ERROR', 'e_runtimeerror');
-define('E_AUTH_OPENID_OI', 'e_oi');
-
-class Tests_Auth_OpenID_Discover_FetchException extends PHPUnit_Framework_TestCase {
- // Make sure exceptions get passed through discover function from
- // fetcher.
-
- function Tests_Auth_OpenID_Discover_FetchException($exc)
- {
- $this->cases = array(E_AUTH_OPENID_EXCEPTION,
- E_AUTH_OPENID_DIDFETCH,
- E_AUTH_OPENID_VALUE_ERROR,
- E_AUTH_OPENID_RUNTIME_ERROR,
- E_AUTH_OPENID_OI);
- }
-
- function runTest()
- {
- foreach ($this->cases as $thing_to_raise) {
- $fetcher = ErrorRaisingFetcher($thing_to_raise);
- Auth_OpenID_discover('http://doesnt.matter/', $fetcher);
- $exc = __getError();
-
- if ($exc !== $thing_to_raise) {
- $this->fail('FetchException expected %s to be raised',
- $thing_to_raise);
- }
- }
- }
-}
-
-
-// Tests for openid.consumer.discover.discover
-
-class _DiscoveryMockFetcher extends Auth_Yadis_HTTPFetcher {
- function _DiscoveryMockFetcher($documents)
- {
- $this->redirect = null;
- $this->documents = $documents;
- $this->fetchlog = array();
- }
-
- function supportsSSL()
- {
- return true;
- }
-
- function post($url, $body = null, $headers = null)
- {
- return $this->get($url, $headers, $body);
- }
-
- function get($url, $headers = null, $body = null)
- {
- $this->fetchlog[] = array($url, $body, $headers);
-
- if ($this->redirect) {
- $final_url = $this->redirect;
- } else {
- $final_url = $url;
- }
-
- if (array_key_exists($url, $this->documents)) {
- list($ctype, $body) = $this->documents[$url];
- $status = 200;
- } else {
- $status = 404;
- $ctype = 'text/plain';
- $body = '';
- }
-
- return new Auth_Yadis_HTTPResponse($final_url, $status,
- array('content-type' => $ctype), $body);
- }
-}
-
-class _DiscoveryBase extends PHPUnit_Framework_TestCase {
- var $id_url = "http://someuser.unittest/";
- var $fetcherClass = '_DiscoveryMockFetcher';
-
- function _checkService($s,
- $server_url,
- $claimed_id=null,
- $local_id=null,
- $canonical_id=null,
- $types=null,
- $used_yadis=false,
- $display_identifier=null)
- {
- $this->assertEquals($server_url, $s->server_url);
- if ($types == array('2.0 OP')) {
- $this->assertFalse($claimed_id);
- $this->assertFalse($local_id);
- $this->assertFalse($s->claimed_id);
- $this->assertFalse($s->local_id);
- $this->assertFalse($s->getLocalID());
- $this->assertFalse($s->compatibilityMode());
- $this->assertTrue($s->isOPIdentifier());
- $this->assertEquals($s->preferredNamespace(),
- Auth_OpenID_OPENID2_NS);
- } else {
- $this->assertEquals($claimed_id, $s->claimed_id);
- $this->assertEquals($local_id, $s->getLocalID());
- }
-
- if ($used_yadis) {
- $this->assertTrue($s->used_yadis, "Expected to use Yadis");
- } else {
- $this->assertFalse($s->used_yadis,
- "Expected to use old-style discovery");
- }
-
- $openid_types = array(
- '1.1' => Auth_OpenID_TYPE_1_1,
- '1.0' => Auth_OpenID_TYPE_1_0,
- '2.0' => Auth_OpenID_TYPE_2_0,
- '2.0 OP' => Auth_OpenID_TYPE_2_0_IDP);
-
- $type_uris = array();
- foreach ($types as $t) {
- $type_uris[] = $openid_types[$t];
- }
-
- $this->assertEquals($type_uris, $s->type_uris);
- $this->assertEquals($canonical_id, $s->canonicalID);
-
- if ($s->canonicalID) {
- $this->assertTrue($s->getDisplayIdentifier() != $claimed_id);
- $this->assertTrue($s->getDisplayIdentifier() !== null);
- $this->assertEquals($display_identifier, $s->getDisplayIdentifier());
- $this->assertEquals($s->claimed_id, $s->canonicalID);
- }
-
- $this->assertEquals($s->display_identifier ? $s->display_identifier : $s->claimed_id,
- $s->getDisplayIdentifier());
- }
-
- function setUp()
- {
- $cls = $this->fetcherClass;
- // D is for Dumb.
- $d = array();
- $this->fetcher = new $cls($d);
- }
-}
-
-class Tests_Auth_OpenID_Discover_OpenID extends _DiscoveryBase {
- function _discover($content_type, $data,
- $expected_services, $expected_id=null)
- {
- if ($expected_id === null) {
- $expected_id = $this->id_url;
- }
-
- $this->fetcher->documents[$this->id_url] = array($content_type, $data);
- list($id_url, $services) = Auth_OpenID_discover($this->id_url,
- $this->fetcher);
- $this->assertEquals($expected_services, count($services));
- $this->assertEquals($expected_id, $id_url);
- return $services;
- }
-
- function test_404()
- {
- list($url, $services) = Auth_OpenID_discover($this->id_url . '/404',
- $this->fetcher);
- $this->assertTrue($services == array());
- }
-
- function test_noOpenID()
- {
- $services = $this->_discover('text/plain',
- "junk",
- 0);
-
- $services = $this->_discover(
- 'text/html',
- Tests_Auth_OpenID_readdata('test_discover_openid_no_delegate.html'),
- 1);
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- $this->id_url,
- null,
- array('1.1'),
- false);
- }
-
- function test_html1()
- {
- $services = $this->_discover('text/html',
- Tests_Auth_OpenID_readdata('test_discover_openid.html'),
- 1);
-
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array('1.1'),
- false,
- $this->id_url);
- }
-
- /*
- * Ensure that the Claimed Identifier does not have a fragment if
- * one is supplied in the User Input.
- */
- function test_html1Fragment()
- {
- $data = Tests_Auth_OpenID_readdata('openid.html');
- $content_type = 'text/html';
- $expected_services = 1;
-
- $this->fetcher->documents[$this->id_url] = array($content_type, $data);
- $expected_id = $this->id_url;
- $this->id_url = $this->id_url . '#fragment';
- list($id_url, $services) = Auth_OpenID_discover($this->id_url, $this->fetcher);
- $this->assertEquals($expected_services, count($services));
- $this->assertEquals($expected_id, $id_url);
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- $expected_id,
- 'http://smoker.myopenid.com/',
- null,
- array('1.1'),
- false,
- $this->id_url);
- }
-
- function test_html2()
- {
- $services = $this->_discover('text/html',
- Tests_Auth_OpenID_readdata('test_discover_openid2.html'),
- 1);
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array('2.0'),
- false,
- $this->id_url);
- }
-
- function test_html1And2()
- {
- $services = $this->_discover('text/html',
- Tests_Auth_OpenID_readdata('test_discover_openid_1_and_2.html'),
- 2);
-
- $types = array('2.0', '1.1');
-
- for ($i = 0; $i < count($types); $i++) {
- $t = $types[$i];
- $s = $services[$i];
-
- $this->_checkService(
- $s,
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array($t),
- false,
- $this->id_url);
- }
- }
-
- function test_yadisEmpty()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_0entries.xml'),
- 0);
- }
-
- function test_htmlEmptyYadis()
- {
- // HTML document has discovery information, but points to an
- // empty Yadis document.
-
- // The XRDS document pointed to by "openid_and_yadis.html"
- $this->fetcher->documents[$this->id_url . 'xrds'] =
- array('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_0entries.xml'));
-
- $services = $this->_discover('text/html',
- Tests_Auth_OpenID_readdata('test_discover_openid_and_yadis.html'),
- 1);
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array('1.1'),
- false,
- $this->id_url);
- }
-
- function test_yadis1NoDelegate()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_no_delegate.xml'),
- 1);
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- $this->id_url,
- null,
- array('1.0'),
- true,
- $this->id_url);
- }
-
- function test_yadis2NoLocalID()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid2_xrds_no_local_id.xml'),
- 1);
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- $this->id_url,
- null,
- array('2.0'),
- true,
- $this->id_url);
- }
-
- function test_yadis2()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid2_xrds.xml'),
- 1);
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array('2.0'),
- true,
- $this->id_url);
- }
-
- function test_yadis2OP()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_idp.xml'),
- 1);
-
- $this->_checkService($services[0],
- "http://www.myopenid.com/server",
- null,
- null,
- null,
- array('2.0 OP'),
- true,
- $this->id_url);
- }
-
- function test_yadis2OPDelegate()
- {
- // The delegate tag isn't meaningful for OP entries.
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_idp_delegate.xml'),
- 1);
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- null, null, null,
- array('2.0 OP'),
- true,
- $this->id_url);
- }
-
- function test_yadis2BadLocalID()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_yadis_2_bad_local_id.xml'),
- 0);
- }
-
- function test_yadis1And2()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid_1_and_2_xrds.xml'),
- 1);
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- $this->id_url,
- 'http://smoker.myopenid.com/',
- null,
- array('2.0', '1.1'),
- true);
- }
-
- function test_yadis1And2BadLocalID()
- {
- $services = $this->_discover('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid_1_and_2_xrds_bad_delegate.xml'),
- 0);
- }
-}
-
-class _MockFetcherForXRIProxy extends Auth_Yadis_HTTPFetcher {
-
- function _MockFetcherForXRIProxy($documents)
- {
- $this->documents = $documents;
- $this->fetchlog = array();
- }
-
- function get($url, $headers=null)
- {
- return $this->fetch($url, $headers);
- }
-
- function post($url, $body)
- {
- return $this->fetch($url, $body);
- }
-
- function fetch($url, $body=null, $headers=null)
- {
- $this->fetchlog[] = array($url, $body, $headers);
-
- $u = parse_url($url);
- $proxy_host = $u['host'];
- $xri = $u['path'];
- $query = Auth_OpenID::arrayGet($u, 'query');
-
- if ((!$headers) && (!$query)) {
- trigger_error('Error in mock XRI fetcher: no headers or query');
- }
-
- if (Auth_Yadis_startswith($xri, '/')) {
- $xri = substr($xri, 1);
- }
-
- if (array_key_exists($xri, $this->documents)) {
- list($ctype, $body) = $this->documents[$xri];
- $status = 200;
- } else {
- $status = 404;
- $ctype = 'text/plain';
- $body = '';
- }
-
- return new Auth_Yadis_HTTPResponse($url, $status,
- array('content-type' => $ctype),
- $body);
- }
-}
-
-class TestXRIDiscovery extends _DiscoveryBase {
- var $fetcherClass = '_MockFetcherForXRIProxy';
-
- function setUp() {
- parent::setUp();
-
- $this->fetcher->documents = array('=smoker' => array('application/xrds+xml',
- Tests_Auth_OpenID_readdata('yadis_2entries_delegate.xml')),
- '=smoker*bad' => array('application/xrds+xml',
- Tests_Auth_OpenID_readdata('yadis_another_delegate.xml')));
- }
-
- function test_xri() {
- list($user_xri, $services) = Auth_OpenID_discoverXRI('=smoker');
-
- $this->_checkService(
- $services[0],
- "http://www.myopenid.com/server",
- Auth_Yadis_XRI("=!1000"),
- 'http://smoker.myopenid.com/',
- Auth_Yadis_XRI("=!1000"),
- array('1.0'),
- true,
- '=smoker');
-
- $this->_checkService(
- $services[1],
- "http://www.livejournal.com/openid/server.bml",
- Auth_Yadis_XRI("=!1000"),
- 'http://frank.livejournal.com/',
- Auth_Yadis_XRI("=!1000"),
- array('1.0'),
- true,
- '=smoker');
- }
-
- function test_xriNoCanonicalID() {
- list($user_xri, $services) = Auth_OpenID_discoverXRI('=smoker*bad');
- $this->assertFalse($services);
- }
-
- function test_useCanonicalID() {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->claimed_id = Auth_Yadis_XRI("=!1000");
- $endpoint->canonicalID = Auth_Yadis_XRI("=!1000");
- $htis->assertEquals($endpoint->getLocalID(), Auth_Yadis_XRI("=!1000"));
- }
-}
-
-class Tests_Auth_OpenID_DiscoverSession {
- function Tests_Auth_OpenID_DiscoverSession()
- {
- $this->data = array();
- }
-
- function set($name, $value)
- {
- $this->data[$name] = $value;
- }
-
- function get($name, $default=null)
- {
- if (array_key_exists($name, $this->data)) {
- return $this->data[$name];
- } else {
- return $default;
- }
- }
-
- function del($name)
- {
- unset($this->data[$name]);
- }
-}
-
-global $__Tests_BOGUS_SERVICE;
-$__Tests_BOGUS_SERVICE = new Auth_OpenID_ServiceEndpoint();
-$__Tests_BOGUS_SERVICE->claimed_id = "=really.bogus.endpoint";
-
-function __serviceCheck_discover_cb($url, $fetcher)
-{
- global $__Tests_BOGUS_SERVICE;
- return array($url, array($__Tests_BOGUS_SERVICE));
-}
-
-class _FetcherWithSSL extends _DiscoveryMockFetcher {
- function supportsSSL()
- {
- return true;
- }
-}
-
-class _FetcherWithoutSSL extends _DiscoveryMockFetcher {
- function supportsSSL()
- {
- return false;
- }
-}
-
-class _NonFetcher extends _DiscoveryMockFetcher {
- var $used = false;
-
- function _NonFetcher()
- {
- $a = array();
- parent::_DiscoveryMockFetcher($a);
- }
-
- function supportsSSL()
- {
- return false;
- }
-
- function get($url, $headers)
- {
- $this->used = true;
- }
-}
-
-class Tests_Auth_OpenID_SSLSupport extends PHPUnit_Framework_TestCase {
- function test_discoverDropSSL()
- {
- // In the absence of SSL support, the discovery process should
- // drop endpoints whose server URLs are HTTPS.
- $id_url = 'http://bogus/';
-
- $d = array(
- $id_url => array('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid_ssl.xml'))
- );
-
- $f = new _FetcherWithoutSSL($d);
-
- $result = Auth_OpenID_discover($id_url, $f);
-
- list($url, $services) = $result;
-
- $this->assertTrue($url == $id_url);
- $this->assertTrue(count($services) == 1);
-
- $e = $services[0];
- $this->assertTrue($e->server_url == 'http://nossl.vroom.unittest/server');
- }
-
- function test_discoverRetainSSL()
- {
- // In the presence of SSL support, the discovery process
- // should NOT drop endpoints whose server URLs are HTTPS.
-
- // In the absence of SSL support, the discovery process should
- // drop endpoints whose server URLs are HTTPS.
- $id_url = 'http://bogus/';
-
- $d = array(
- $id_url => array('application/xrds+xml',
- Tests_Auth_OpenID_readdata('test_discover_openid_ssl.xml'))
- );
-
- $f = new _FetcherWithSSL($d);
-
- $result = Auth_OpenID_discover($id_url, $f);
-
- list($url, $services) = $result;
-
- $this->assertTrue($url == $id_url);
- $this->assertTrue(count($services) == 2);
-
- $e = $services[0];
- $this->assertTrue($e->server_url == 'http://nossl.vroom.unittest/server');
-
- $e = $services[1];
- $this->assertTrue($e->server_url == 'https://ssl.vroom.unittest/server');
- }
-
- function test_discoverSSL()
- {
- // The consumer code should not attempt to perform discovery
- // on an HTTPS identity URL in the absence of SSL support.
-
- $id_url = 'https://unsupported/';
-
- $f = new _NonFetcher();
-
- $result = Auth_OpenID_discover($id_url, $f);
-
- $this->assertTrue($result == array($id_url, array()));
- $this->assertFalse($f->used);
- }
-}
-
-global $Tests_Auth_OpenID_Discover_OpenID_other;
-$Tests_Auth_OpenID_Discover_OpenID_other = array(
- new Tests_Auth_OpenID_SSLSupport()
- );
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Extension.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Extension.php
deleted file mode 100644
index 35eb2f274..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Extension.php
+++ /dev/null
@@ -1,44 +0,0 @@
-toMessage($oid1_msg);
- $namespaces = $oid1_msg->namespaces;
-
- $this->assertTrue($namespaces->isImplicit($ext->ns_uri));
- $this->assertEquals($ext->ns_uri,
- $namespaces->getNamespaceURI($ext->ns_alias));
- $this->assertEquals($ext->ns_alias,
- $namespaces->getAlias($ext->ns_uri));
- }
-
- function test_OpenID2()
- {
- $oid2_msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $ext = new _ExtensionTest_DummyExtension();
- $ext->toMessage($oid2_msg);
- $namespaces = $oid2_msg->namespaces;
- $this->assertFalse($namespaces->isImplicit($ext->ns_uri));
- $this->assertEquals($ext->ns_uri,
- $namespaces->getNamespaceURI($ext->ns_alias));
- $this->assertEquals($ext->ns_alias,
- $namespaces->getAlias($ext->ns_uri));
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/HMAC.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/HMAC.php
deleted file mode 100644
index 742396666..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/HMAC.php
+++ /dev/null
@@ -1,165 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/HMAC.php';
-require_once 'Tests/Auth/OpenID/TestUtil.php';
-
-class Tests_Auth_OpenID_HMAC_TestCase extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_HMAC_TestCase(
- $name, $key, $data, $expected, $hmac_func)
- {
-
- $this->setName($name);
- $this->key = $key;
- $this->data = $data;
- $this->expected = $expected;
- $this->hmac_func = $hmac_func;
- }
-
- function runTest()
- {
- $actual = call_user_func($this->hmac_func, $this->key, $this->data);
- $this->assertEquals(bin2hex($this->expected), bin2hex($actual));
- }
-}
-
-class Tests_Auth_OpenID_HMAC extends PHPUnit_Framework_TestSuite {
- function _strConvert($s)
- {
- $repeat_pat = '/^0x([a-f0-9]{2}) repeated (\d+) times$/';
- if (preg_match($repeat_pat, $s, $match)) {
- $c = chr(hexdec($match[1]));
- $n = $match[2];
- $data = '';
- for ($i = 0; $i < $n; $i++) {
- $data .= $c;
- }
- } elseif (substr($s, 0, 2) == "0x") {
- $data = pack('H*', substr($s, 2, strlen($s) - 1));
- } elseif (preg_match('/^"(.*)"$/', $s, $match)) {
- $data = $match[1];
- } else {
- trigger_error("Bad data format: $s", E_USER_ERROR);
- }
- return $data;
- }
-
- function _readTestCases($test_file_name, $digest_len)
- {
- $lines = Tests_Auth_OpenID_readlines($test_file_name);
- $cases = array();
- $case = array();
- foreach ($lines as $line) {
- if ($line{0} == "#") {
- continue;
- }
-
- // Blank line separates test cases
- if ($line == "\n") {
- $cases[] = $case;
- $case = array();
- } else {
- $match = array();
- $pat = '/^([a-z0-9_-]+) =\s+(.*?)\n$/';
- if (!preg_match($pat, $line, $match)) {
- trigger_error("Bad test input: $line", E_USER_ERROR);
- }
-
- $c = count($match);
- if ($c != 3) {
- trigger_error(
- "Wrong number of elements in parsed case: $c",
- E_USER_ERROR);
- return false;
- }
-
- $key = $match[1];
- $value = $match[2];
- $case[$key] = $value;
- }
- }
-
- if (count($case)) {
- $cases[] = $case;
- }
-
- $final = array();
-
- // Normalize strings and check data integrity
- foreach ($cases as $case) {
- $clean = array();
- $clean["key"] =
- Tests_Auth_OpenID_HMAC::_strConvert($case["key"]);
- if (defined(@$case["key_len"])) {
- if (Auth_OpenID::bytes($clean["key"]) != $case["key_len"]) {
- trigger_error("Bad key length", E_USER_ERROR);
- }
- }
-
- $clean["data"] =
- Tests_Auth_OpenID_HMAC::_strConvert($case["data"]);
- if (defined(@$case["data_len"])) {
- if (Auth_OpenID::bytes($clean["data"]) != $case["data_len"]) {
- trigger_error("Bad data length", E_USER_ERROR);
- }
- }
-
- $clean["digest"] =
- Tests_Auth_OpenID_HMAC::_strConvert($case["digest"]);
- if (Auth_OpenID::bytes($clean["digest"]) != $digest_len) {
- $l = Auth_OpenID::bytes($clean["digest"]);
- trigger_error("Bad digest length: $l", E_USER_ERROR);
- }
-
- $clean['test_case'] = $case['test_case'];
-
- $final[] = $clean;
- }
- return $final;
- }
-
- function Tests_Auth_OpenID_HMAC($name)
- {
- $this->setName($name);
- $hash_test_defs = array(array(
- 'Auth_OpenID_HMACSHA1', 'hmac-sha1.txt', 20));
- if (Auth_OpenID_HMACSHA256_SUPPORTED) {
- $hash_test_defs[] =
- array('Auth_OpenID_HMACSHA256', 'hmac-sha256.txt', 32);
- }
- foreach ($hash_test_defs as $params) {
- list($hash_func, $filename, $hash_len) = $params;
- $cases = $this->_readTestCases($filename, $hash_len);
- foreach ($cases as $case) {
- $test = new Tests_Auth_OpenID_HMAC_TestCase(
- $case['test_case'],
- $case['key'],
- $case['data'],
- $case['digest'],
- $hash_func);
-
- $digest = $case['digest'];
- $this->_addTestByValue($test);
- }
- }
- }
-
- function _addTestByValue($test) {
- $this->addTest($test);
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/KVForm.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/KVForm.php
deleted file mode 100644
index 904f2c8ee..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/KVForm.php
+++ /dev/null
@@ -1,260 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/KVForm.php';
-
-global $_Tests_Auth_OpenID_kverrors;
-$_Tests_Auth_OpenID_kverrors = null;
-
-/**
- * Keep a list of the logged errors
- */
-function Tests_Auth_OpenID_kvHandleError($errno, $errmsg)
-{
- global $_Tests_Auth_OpenID_kverrors;
- $_Tests_Auth_OpenID_kverrors[] = $errmsg;
-}
-
-
-class Tests_Auth_OpenID_KVForm_TestCase extends PHPUnit_Framework_TestCase {
- var $errs;
-
- function runTest()
- {
- // Re-set the number of logged errors
- global $_Tests_Auth_OpenID_kverrors;
- $_Tests_Auth_OpenID_kverrors = array();
-
- set_error_handler("Tests_Auth_OpenID_kvHandleError");
-
- $this->_runTest();
-
- // Check to make sure we have the expected number of logged errors
- //$this->assertEquals($this->errs, count($_Tests_Auth_OpenID_kverrors));
-
- restore_error_handler();
- }
-
- function _runTest()
- {
- trigger_error('Must be overridden', E_USER_ERROR);
- }
-}
-
-class Tests_Auth_OpenID_KVForm_TestCase_Parse
-extends Tests_Auth_OpenID_KVForm_TestCase {
- function Tests_Auth_OpenID_KVForm_TestCase_Parse(
- $arr, $str, $lossy, $errs)
- {
-
- $this->arr = $arr;
- $this->str = $str;
- $this->lossy = $lossy;
- $this->errs = $errs;
- }
-
- function _runTest()
- {
- // Do one parse, after which arrayToKV and kvToArray should be
- // inverses.
- $parsed1 = Auth_OpenID_KVForm::toArray($this->str);
- $serial1 = Auth_OpenID_KVForm::fromArray($this->arr);
-
- if ($this->lossy == "neither" || $this->lossy == "str") {
- $this->assertEquals($this->arr, $parsed1, "str was lossy");
- }
-
- if ($this->lossy == "neither" || $this->lossy == "arr") {
- $this->assertEquals($this->str, $serial1, "array was lossy");
- }
-
- $parsed2 = Auth_OpenID_KVForm::toArray($serial1);
- $serial2 = Auth_OpenID_KVForm::fromArray($parsed1);
-
- // Round-trip both
- $parsed3 = Auth_OpenID_KVForm::toArray($serial2);
- $serial3 = Auth_OpenID_KVForm::fromArray($parsed2);
-
- $this->assertEquals($serial2, $serial3, "serialized forms differ");
-
- // Check to make sure that they're inverses.
- $this->assertEquals($parsed2, $parsed3, "parsed forms differ");
-
- }
-}
-
-class Tests_Auth_OpenID_KVForm_TestCase_Null
-extends Tests_Auth_OpenID_KVForm_TestCase {
- function Tests_Auth_OpenID_KVForm_TestCase_Null($arr, $errs)
- {
- $this->arr = $arr;
- $this->errs = $errs;
- }
-
- function _runTest()
- {
- $serialized = Auth_OpenID_KVForm::fromArray($this->arr);
- $this->assertTrue($serialized === null,
- 'serialization unexpectedly succeeded');
- }
-}
-
-class Tests_Auth_OpenID_KVForm extends PHPUnit_Framework_TestSuite {
- function Tests_Auth_OpenID_KVForm($name)
- {
- $this->setName($name);
- $testdata_list = array(
- array("name" => "simple",
- "str" => "college:harvey mudd\n",
- "arr" => array("college" => "harvey mudd"),
- ),
- array("name" => "empty",
- "str" => "",
- "arr" => array(),
- ),
- array("name" => "empty (just newline)",
- "str" => "\n",
- "arr" => array(),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "empty (double newline)",
- "str" => "\n\n",
- "arr" => array(),
- "lossy" => "str",
- "errors" => 2,
- ),
- array("name" => "empty (no colon)",
- "str" => "East is least\n",
- "arr" => array(),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "two keys",
- "str" => "city:claremont\nstate:CA\n",
- "arr" => array('city' => 'claremont',
- 'state' => 'CA'),
- ),
- array("name" => "real life",
- "str" => "is_valid:true\ninvalidate_handle:" .
- "{HMAC-SHA1:2398410938412093}\n",
- "arr" => array('is_valid' => 'true',
- 'invalidate_handle' =>
- '{HMAC-SHA1:2398410938412093}'),
- ),
- array("name" => "empty key and value",
- "str" => ":\n",
- "arr" => array(''=>''),
- ),
- array("name" => "empty key, not value",
- "str" => ":missing key\n",
- "arr" => array(''=>'missing key'),
- ),
- array("name" => "whitespace at front of key",
- "str" => " street:foothill blvd\n",
- "arr" => array('street'=>'foothill blvd'),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "whitespace at front of value",
- "str" => "major: computer science\n",
- "arr" => array('major'=>'computer science'),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "whitespace around key and value",
- "str" => " dorm : east \n",
- "arr" => array('dorm'=>'east'),
- "lossy" => "str",
- "errors" => 2,
- ),
- array("name" => "missing trailing newline",
- "str" => "e^(i*pi)+1:0",
- "arr" => array('e^(i*pi)+1'=>'0'),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "missing trailing newline (two key)",
- "str" => "east:west\nnorth:south",
- "arr" => array('east'=>'west',
- 'north'=>'south'),
- "lossy" => "str",
- "errors" => 1,
- ),
- array("name" => "colon in key",
- "arr" => array("k:k" => 'v'),
- "errors" => 1,
- ),
- array("name" => "newline in key",
- "arr" => array("k\nk" => 'v'),
- "errors" => 1,
- ),
- array("name" => "newline in value",
- "arr" => array('k' => "v\nv"),
- "errors" => 1,
- ),
- array("name" => "array whitespace",
- "arr" => array(" k " => "v"),
- "lossy" => "both",
- "str" => " k :v\n",
- "errors" => 2,
- ),
- array("name" => "array ordering 1",
- "arr" => array("a" => "x",
- "b" => "x",
- "c" => "x"),
- "str" => "a:x\nb:x\nc:x\n",
- ),
- array("name" => "array ordering 2",
- "arr" => array("a" => "x",
- "c" => "x",
- "b" => "x"),
- "str" => "a:x\nc:x\nb:x\n",
- ),
- );
-
- foreach ($testdata_list as $testdata) {
- if (isset($testdata['str'])) {
- $str = $testdata['str'];
- } else {
- $str = null;
- }
-
- $arr = $testdata["arr"];
-
- if (isset($testdata['errors'])) {
- $errs = $testdata["errors"];
- } else {
- $errs = 0;
- }
-
- if (is_null($str)) {
- $test = new Tests_Auth_OpenID_KVForm_TestCase_Null($arr, $errs);
- } else {
- if (isset($testdata['lossy'])) {
- $lossy = $testdata["lossy"];
- } else {
- $lossy = 'neither';
- }
- $test = new Tests_Auth_OpenID_KVForm_TestCase_Parse(
- $arr, $str, $lossy, $errs);
- }
- $test->setName($testdata["name"]);
- $this->addTest($test);
- }
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/MemStore.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/MemStore.php
deleted file mode 100644
index 772471963..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/MemStore.php
+++ /dev/null
@@ -1,176 +0,0 @@
-assocs = array();
- }
-
- function set($assoc)
- {
- $this->assocs[$assoc->handle] = $assoc;
- }
-
- function get($handle)
- {
- return Auth_OpenID::arrayGet($this->assocs, $handle);
- }
-
- function remove($handle)
- {
- if (array_key_exists($handle, $this->assocs)) {
- unset($this->assocs[$handle]);
- return true;
- } else {
- return false;
- }
- }
-
- /*
- * Returns association with the oldest issued date.
- *
- * or null if there are no associations.
- */
- function best()
- {
- $best = null;
- foreach ($this->assocs as $handle => $assoc) {
- if (($best === null) || ($best->issued < $assoc->issued)) {
- $best = $assoc;
- }
- }
- return $best;
- }
-
- /*
- * Remove expired associations.
- *
- * @return (removed associations, remaining associations)
- */
- function cleanup()
- {
- $remove = array();
- foreach ($this->assocs as $handle => $assoc) {
- if ($assoc->getExpiresIn() == 0) {
- $remove[] = $handle;
- }
- }
-
- foreach ($remove as $handle) {
- unset($this->assocs[$handle]);
- }
-
- return array(count($remove), count($this->assocs));
- }
-}
-
-/*
- * In-process memory store.
- *
- * Use for single long-running processes. No persistence supplied.
- */
-class Tests_Auth_OpenID_MemStore extends Auth_OpenID_OpenIDStore {
- function Tests_Auth_OpenID_MemStore()
- {
- $this->server_assocs = array();
- $this->nonces = array();
- }
-
- function &_getServerAssocs($server_url)
- {
- if (!array_key_exists($server_url, $this->server_assocs)) {
- $this->server_assocs[$server_url] = new ServerAssocs();
- }
-
- return $this->server_assocs[$server_url];
- }
-
- function storeAssociation($server_url, $assoc)
- {
- $assocs =& $this->_getServerAssocs($server_url);
- $assocs->set($assoc);
- }
-
- function getAssociation($server_url, $handle=null)
- {
- $assocs =& $this->_getServerAssocs($server_url);
- if ($handle === null) {
- return $assocs->best();
- } else {
- return $assocs->get($handle);
- }
- }
-
- function removeAssociation($server_url, $handle)
- {
- $assocs =& $this->_getServerAssocs($server_url);
- return $assocs->remove($handle);
- }
-
- function useNonce($server_url, $timestamp, $salt)
- {
- global $Auth_OpenID_SKEW;
-
- if (abs($timestamp - time()) > $Auth_OpenID_SKEW) {
- return false;
- }
-
- $anonce = array($server_url, intval($timestamp), $salt);
-
- if (in_array($anonce, $this->nonces)) {
- return false;
- } else {
- array_push($this->nonces, $anonce);
- return true;
- }
- }
-
- function cleanupNonces()
- {
- global $Auth_OpenID_SKEW;
-
- $now = time();
- $expired = array();
- foreach ($this->nonces as $anonce) {
- if (abs($anonce[1] - $now) > $Auth_OpenID_SKEW) {
- // removing items while iterating over the set could
- // be bad.
- $expired[] = $anonce;
- }
- }
-
- foreach ($expired as $anonce) {
- unset($this->nonces[array_search($anonce, $this->nonces)]);
- }
-
- return count($expired);
- }
-
- function cleanupAssociations()
- {
- $remove_urls = array();
- $removed_assocs = 0;
- foreach ($this->server_assocs as $server_url => $assocs) {
- list($removed, $remaining) = $assocs->cleanup();
- $removed_assocs += $removed;
- if (!$remaining) {
- $remove_urls[] = $server_url;
- }
- }
-
- // Remove entries from server_assocs that had none remaining.
- foreach ($remove_urls as $server_url) {
- unset($this->server_assocs[$server_url]);
- }
-
- return $removed_assocs;
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Message.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Message.php
deleted file mode 100644
index 0205fc45f..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Message.php
+++ /dev/null
@@ -1,1251 +0,0 @@
-assertEquals($this->msg->getArg($ns, $key), $expected);
- if ($expected === null) {
- $this->assertEquals(
- $this->msg->getArg($ns, $key, $a_default), $a_default);
- $result = $this->msg->getArg($ns, $key, Auth_OpenID_NO_DEFAULT);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- } else {
- $this->assertEquals(
- $this->msg->getArg($ns, $key, $a_default), $expected);
- $this->assertEquals(
- $this->msg->getArg($ns, $key, Auth_OpenID_NO_DEFAULT),
- $expected);
- }
- }
-}
-
-class Tests_Auth_OpenID_EmptyMessage extends MessageTest {
- function setUp()
- {
- $this->msg = new Auth_OpenID_Message();
- }
-
- function test_toPostArgs()
- {
- $this->assertEquals($this->msg->toPostArgs(), array());
- }
-
- function test_toArgs()
- {
- $this->assertEquals($this->msg->toArgs(), array());
- }
-
- function test_toKVForm()
- {
- $this->assertEquals($this->msg->toKVForm(), '');
- }
-
- function test_toURLEncoded()
- {
- $this->assertEquals($this->msg->toURLEncoded(), '');
- }
-
- function test_toURL()
- {
- $base_url = 'http://base.url/';
- $this->assertEquals($this->msg->toURL($base_url), $base_url);
- }
-
- function test_getOpenID()
- {
- $this->assertEquals($this->msg->getOpenIDNamespace(), null);
- }
-
- function test_getKeyOpenID()
- {
- $key = $this->msg->getKey(Auth_OpenID_OPENID_NS, 'foo');
- $this->assertTrue(Auth_OpenID::isFailure($key));
-
- $this->msg->setOpenIDNamespace(Auth_OpenID_OPENID1_NS, false);
- $key = $this->msg->getKey(Auth_OpenID_OPENID_NS, 'foo');
- $this->assertEquals('openid.foo', $key);
- }
-
- function test_getKeyBARE()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_BARE_NS, 'foo'), 'foo');
- }
-
- function test_getKeyNS1()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_OPENID1_NS, 'foo'), null);
- }
-
- function test_getKeyNS2()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_OPENID2_NS, 'foo'), null);
- }
-
- function test_getKeyNS3()
- {
- $this->assertEquals($this->msg->getKey('urn:nothing-significant', 'foo'),
- null);
- }
-
- function test_hasKey()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID_NS, 'foo'), false);
- }
-
- function test_hasKeyBARE()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_BARE_NS, 'foo'), false);
- }
-
- function test_hasKeyNS1()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID1_NS, 'foo'), false);
- }
-
- function test_hasKeyNS2()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID2_NS, 'foo'), false);
- }
-
- function test_hasKeyNS3()
- {
- $this->assertEquals($this->msg->hasKey('urn:nothing-significant', 'foo'),
- false);
- }
-
- function test_getArg()
- {
- $result = $this->msg->getArg(Auth_OpenID_OPENID_NS, 'foo');
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_getArgs()
- {
- $result = $this->msg->getArgs(Auth_OpenID_OPENID_NS);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function test_getArgsBARE()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_BARE_NS), array());
- }
-
- function test_getArgsNS1()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID1_NS), array());
- }
-
- function test_getArgsNS2()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID2_NS), array());
- }
-
- function test_getArgsNS3()
- {
- $this->assertEquals($this->msg->getArgs('urn:nothing-significant'), array());
- }
-
- function test_updateArgs()
- {
- $result= $this->msg->updateArgs(Auth_OpenID_OPENID_NS,
- array('does not' => 'matter'));
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function _test_updateArgsNS($ns)
- {
- $update_args = array(
- 'Camper van Beethoven' => 'David Lowery',
- 'Magnolia Electric Co.' => 'Jason Molina');
-
- $this->assertEquals($this->msg->getArgs($ns), array());
- $this->msg->updateArgs($ns, $update_args);
- $this->assertEquals($this->msg->getArgs($ns), $update_args);
- }
-
- function test_updateArgsBARE()
- {
- $this->_test_updateArgsNS(Auth_OpenID_BARE_NS);
- }
-
- function test_updateArgsNS1()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_updateArgsNS2()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_updateArgsNS3()
- {
- $this->_test_updateArgsNS('urn:nothing-significant');
- }
-
- function test_setArg()
- {
- $result = $this->msg->setArg(Auth_OpenID_OPENID_NS,
- 'does not', 'matter');
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function _test_setArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $value = 'David Lowery';
- $this->assertEquals($this->msg->getArg($ns, $key), null);
- $this->msg->setArg($ns, $key, $value);
- $this->assertEquals($this->msg->getArg($ns, $key), $value);
- }
-
- function test_setArgBARE()
- {
- $this->_test_setArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_setArgNS1()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_setArgNS2()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_setArgNS3()
- {
- $this->_test_setArgNS('urn:nothing-significant');
- }
-
- function test_delArg()
- {
- $result = $this->msg->delArg(Auth_OpenID_OPENID_NS, 'does not');
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-
- function _test_delArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $this->assertEquals($this->msg->delArg($ns, $key), false);
- }
-
- function test_delArgBARE()
- {
- $this->_test_delArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_delArgNS1()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_delArgNS2()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_delArgNS3()
- {
- $this->_test_delArgNS('urn:nothing-significant');
- }
-
- function test_isOpenID1()
- {
- $this->assertFalse($this->msg->isOpenID1());
- }
-
- function test_isOpenID2()
- {
- $this->assertFalse($this->msg->isOpenID2());
- }
-
- function test_args()
- {
- $this->_argTest(Auth_OpenID_BARE_NS, 'foo');
- $this->_argTest(Auth_OpenID_OPENID1_NS, 'foo');
- $this->_argTest(Auth_OpenID_OPENID2_NS, 'foo');
- $this->_argTest('urn:nothing-significant', 'foo');
- }
-}
-
-class Tests_Auth_OpenID_OpenID1Message extends MessageTest {
- function setUp()
- {
- $this->msg = Auth_OpenID_Message::fromPostArgs(array('openid.mode' => 'error',
- 'openid.error' => 'unit test'));
- }
-
- function test_toPostArgs()
- {
- $this->assertEquals($this->msg->toPostArgs(),
- array('openid.mode' => 'error',
- 'openid.error' => 'unit test'));
- }
-
- function test_toArgs()
- {
- $this->assertEquals($this->msg->toArgs(),
- array('mode' => 'error',
- 'error' => 'unit test'));
- }
-
- function test_toKVForm()
- {
- $this->assertEquals($this->msg->toKVForm(),
- "error:unit test\nmode:error\n");
- }
-
- function test_toURLEncoded()
- {
- $this->assertEquals($this->msg->toURLEncoded(),
- 'openid.error=unit+test&openid.mode=error');
- }
-
- function test_toURL()
- {
- $base_url = 'http://base.url/';
- $actual = $this->msg->toURL($base_url);
- $actual_base = substr($actual, 0, strlen($base_url));
- $this->assertEquals($actual_base, $base_url);
- $this->assertEquals($actual[strlen($base_url)], '?');
- $query = substr($actual, strlen($base_url) + 1);
-
- $parsed = Auth_OpenID::parse_str($query);
-
- $this->assertEquals($parsed, array('openid.mode' => 'error',
- 'openid.error' => 'unit test'));
- }
-
- function test_getOpenID()
- {
- $this->assertEquals($this->msg->getOpenIDNamespace(),
- Auth_OpenID_OPENID1_NS);
- $this->assertTrue($this->msg->namespaces->isImplicit(Auth_OpenID_OPENID1_NS));
- }
-
- function test_getKeyOpenID()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_OPENID_NS, 'mode'),
- 'openid.mode');
- }
-
- function test_getKeyBARE()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_BARE_NS, 'mode'), 'mode');
- }
-
- function test_getKeyNS1()
- {
- $this->assertEquals(
- $this->msg->getKey(Auth_OpenID_OPENID1_NS, 'mode'), 'openid.mode');
- }
-
- function test_getKeyNS2()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_OPENID2_NS, 'mode'), null);
- }
-
- function test_getKeyNS3()
- {
- $this->assertEquals(
- $this->msg->getKey('urn:nothing-significant', 'mode'), null);
- }
-
- function test_hasKey()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID_NS, 'mode'), true);
- }
-
- function test_hasKeyBARE()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_BARE_NS, 'mode'), false);
- }
-
- function test_hasKeyNS1()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID1_NS, 'mode'), true);
- }
-
- function test_hasKeyNS2()
- {
- $this->assertEquals(
- $this->msg->hasKey(Auth_OpenID_OPENID2_NS, 'mode'), false);
- }
-
- function test_hasKeyNS3()
- {
- $this->assertEquals(
- $this->msg->hasKey('urn:nothing-significant', 'mode'), false);
- }
-
- function test_getArgs()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID_NS),
- array('mode' => 'error',
- 'error' => 'unit test'));
- }
-
- function test_getArgsBARE()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_BARE_NS), array());
- }
-
- function test_getArgsNS1()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID1_NS),
- array('mode' => 'error',
- 'error' => 'unit test'));
- }
-
- function test_getArgsNS2()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID2_NS), array());
- }
-
- function test_getArgsNS3()
- {
- $this->assertEquals($this->msg->getArgs('urn:nothing-significant'), array());
- }
-
- function _test_updateArgsNS($ns, $before=null)
- {
- if ($before === null) {
- $before = array();
- }
-
- $update_args = array(
- 'Camper van Beethoven' => 'David Lowery',
- 'Magnolia Electric Co.' => 'Jason Molina');
-
- $this->assertEquals($this->msg->getArgs($ns), $before);
- $this->msg->updateArgs($ns, $update_args);
- $after = $before;
- $after = array_merge($after, $update_args);
- $this->assertEquals($this->msg->getArgs($ns), $after);
- }
-
- function test_updateArgs()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID_NS,
- array('mode' => 'error', 'error' => 'unit test'));
- }
-
- function test_updateArgsBARE()
- {
- $this->_test_updateArgsNS(Auth_OpenID_BARE_NS);
- }
-
- function test_updateArgsNS1()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID1_NS,
- array('mode' => 'error', 'error' => 'unit test'));
- }
-
- function test_updateArgsNS2()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_updateArgsNS3()
- {
- $this->_test_updateArgsNS('urn:nothing-significant');
- }
-
- function _test_setArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $value = 'David Lowery';
- $this->assertEquals($this->msg->getArg($ns, $key), null);
- $this->msg->setArg($ns, $key, $value);
- $this->assertEquals($this->msg->getArg($ns, $key), $value);
- }
-
- function test_setArg()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID_NS);
- }
-
- function test_setArgBARE()
- {
- $this->_test_setArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_setArgNS1()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_setArgNS2()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_setArgNS3()
- {
- $this->_test_setArgNS('urn:nothing-significant');
- }
-
- function _test_delArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $value = 'David Lowery';
-
- $this->assertEquals($this->msg->delArg($ns, $key), false);
- $this->msg->setArg($ns, $key, $value);
- $this->assertEquals($this->msg->getArg($ns, $key), $value);
- $this->msg->delArg($ns, $key);
- $this->assertEquals($this->msg->getArg($ns, $key), null);
- }
-
- function test_delArg()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID_NS);
- }
-
- function test_delArgBARE()
- {
- $this->_test_delArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_delArgNS1()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_delArgNS2()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_delArgNS3()
- {
- $this->_test_delArgNS('urn:nothing-significant');
- }
-
- function test_isOpenID1()
- {
- $this->assertTrue($this->msg->isOpenID1());
- }
-
- function test_isOpenID2()
- {
- $this->assertFalse($this->msg->isOpenID2());
- }
-
- function test_args()
- {
- $this->_argTest(Auth_OpenID_BARE_NS, 'mode');
- $this->_argTest(Auth_OpenID_OPENID_NS, 'mode', 'error');
- $this->_argTest(Auth_OpenID_OPENID1_NS, 'mode', 'error');
- $this->_argTest(Auth_OpenID_OPENID2_NS, 'mode');
- $this->_argTest('urn:nothing-significant', 'mode');
- }
-}
-
-class Tests_Auth_OpenID_OpenID1ExplicitMessage extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->msg = Auth_OpenID_Message::fromPostArgs(array('openid.mode' => 'error',
- 'openid.error' => 'unit test',
- 'openid.ns' => Auth_OpenID_OPENID1_NS));
- }
-
- function test_isOpenID1()
- {
- $this->assertTrue($this->msg->isOpenID1());
- $this->assertFalse(
- $this->msg->namespaces->isImplicit(Auth_OpenID_OPENID1_NS));
- }
-
- function test_isOpenID2()
- {
- $this->assertFalse($this->msg->isOpenID2());
- }
-
- function test_toPostArgs()
- {
- $this->assertEquals($this->msg->toPostArgs(),
- array('openid.mode' => 'error',
- 'openid.error' => 'unit test',
- 'openid.ns' => Auth_OpenID_OPENID1_NS));
- }
-
- function test_toArgs()
- {
- $this->assertEquals($this->msg->toArgs(),
- array('mode' => 'error',
- 'error' => 'unit test',
- 'ns' => Auth_OpenID_OPENID1_NS));
- }
-
- function test_toKVForm()
- {
- $this->assertEquals($this->msg->toKVForm(),
- "error:unit test\nmode:error\nns:".
- Auth_OpenID_OPENID1_NS."\n");
- }
-
- function test_toURLEncoded()
- {
- $this->assertEquals($this->msg->toURLEncoded(),
- 'openid.error=unit+test&openid.mode=error&openid.ns=http%3A%2F%2Fopenid.net%2Fsignon%2F1.0');
- }
-
- function test_toURL()
- {
- $base_url = 'http://base.url/';
- $actual = $this->msg->toURL($base_url);
- $actual_base = substr($actual, 0, strlen($base_url));
- $this->assertEquals($actual_base, $base_url);
- $this->assertEquals($actual[strlen($base_url)], '?');
- $query = substr($actual, strlen($base_url) + 1);
-
- $parsed = Auth_OpenID::parse_str($query);
-
- $this->assertEquals($parsed, array('openid.mode' => 'error',
- 'openid.error' => 'unit test',
- 'openid.ns' => Auth_OpenID_OPENID1_NS));
- }
-}
-
-class Tests_Auth_OpenID_OpenID2Message extends MessageTest {
- function setUp()
- {
- $this->msg = Auth_OpenID_Message::fromPostArgs(array('openid.mode' => 'error',
- 'openid.error' => 'unit test',
- 'openid.ns' => Auth_OpenID_OPENID2_NS));
- $this->msg->setArg(Auth_OpenID_BARE_NS, "xey", "value");
- }
-
- function test_toPostArgs()
- {
- $this->assertEquals($this->msg->toPostArgs(),
- array('openid.mode' => 'error',
- 'openid.error' => 'unit test',
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'xey' => 'value'));
- }
-
- function test_toArgs()
- {
- // This method can't tolerate BARE_NS.
- $this->msg->delArg(Auth_OpenID_BARE_NS, "xey");
- $this->assertEquals($this->msg->toArgs(),
- array('mode' => 'error',
- 'error' => 'unit test',
- 'ns' => Auth_OpenID_OPENID2_NS));
- }
-
- function test_toKVForm()
- {
- // Can't tolerate BARE_NS in kvform
- $this->msg->delArg(Auth_OpenID_BARE_NS, "xey");
- $this->assertEquals($this->msg->toKVForm(),
- sprintf("error:unit test\nmode:error\nns:%s\n",
- Auth_OpenID_OPENID2_NS));
- }
-
- function _test_urlencoded($s)
- {
- $expected = 'openid.error=unit+test&openid.mode=error&' .
- 'openid.ns=%s&xey=value';
-
- $expected = sprintf($expected, urlencode(Auth_OpenID_OPENID2_NS));
- $this->assertEquals($s, $expected);
- }
-
- function test_toURLEncoded()
- {
- $this->_test_urlencoded($this->msg->toURLEncoded());
- }
-
- function test_toURL()
- {
- $base_url = 'http://base.url/';
- $actual = $this->msg->toURL($base_url);
- $actual_base = substr($actual, 0, strlen($base_url));
-
- $this->assertEquals($actual_base, $base_url);
- $this->assertEquals($actual[strlen($base_url)], '?');
- $query = substr($actual, strlen($base_url) + 1);
- $this->_test_urlencoded($query);
- }
-
- function test_getOpenID()
- {
- $this->assertEquals($this->msg->getOpenIDNamespace(),
- Auth_OpenID_OPENID2_NS);
- }
-
- function test_getKeyOpenID()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_OPENID_NS, 'mode'),
- 'openid.mode');
- }
-
- function test_getKeyBARE()
- {
- $this->assertEquals($this->msg->getKey(Auth_OpenID_BARE_NS, 'mode'), 'mode');
- }
-
- function test_getKeyNS1()
- {
- $this->assertEquals(
- $this->msg->getKey(Auth_OpenID_OPENID1_NS, 'mode'), null);
- }
-
- function test_getKeyNS2()
- {
- $this->assertEquals(
- $this->msg->getKey(Auth_OpenID_OPENID2_NS, 'mode'), 'openid.mode');
- }
-
- function test_getKeyNS3()
- {
- $this->assertEquals(
- $this->msg->getKey('urn:nothing-significant', 'mode'), null);
- }
-
- function test_hasKeyOpenID()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_OPENID_NS, 'mode'), true);
- }
-
- function test_hasKeyBARE()
- {
- $this->assertEquals($this->msg->hasKey(Auth_OpenID_BARE_NS, 'mode'), false);
- }
-
- function test_hasKeyNS1()
- {
- $this->assertEquals(
- $this->msg->hasKey(Auth_OpenID_OPENID1_NS, 'mode'), false);
- }
-
- function test_hasKeyNS2()
- {
- $this->assertEquals(
- $this->msg->hasKey(Auth_OpenID_OPENID2_NS, 'mode'), true);
- }
-
- function test_hasKeyNS3()
- {
- $this->assertEquals(
- $this->msg->hasKey('urn:nothing-significant', 'mode'), false);
- }
-
- function test_getArgsOpenID()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID_NS),
- array('mode' => 'error',
- 'error' => 'unit test'));
- }
-
- function test_getArgsBARE()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_BARE_NS),
- array('xey' => 'value'));
- }
-
- function test_getArgsNS1()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID1_NS), array());
- }
-
- function test_getArgsNS2()
- {
- $this->assertEquals($this->msg->getArgs(Auth_OpenID_OPENID2_NS),
- array('mode' => 'error',
- 'error' => 'unit test'));
- }
-
- function test_getArgsNS3()
- {
- $this->assertEquals($this->msg->getArgs('urn:nothing-significant'), array());
- }
-
- function _test_updateArgsNS($ns, $before=null)
- {
- if ($before === null) {
- $before = array();
- }
-
- $update_args = array(
- 'Camper van Beethoven' => 'David Lowery',
- 'Magnolia Electric Co.' => 'Jason Molina');
-
- $this->assertEquals($this->msg->getArgs($ns), $before);
- $this->msg->updateArgs($ns, $update_args);
- $after = $before;
- $after = array_merge($after, $update_args);
- $this->assertEquals($this->msg->getArgs($ns), $after);
- }
-
- function test_updateArgsOpenID()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID_NS,
- array('mode' => 'error', 'error' => 'unit test'));
- }
-
- function test_updateArgsBARE()
- {
- $this->_test_updateArgsNS(Auth_OpenID_BARE_NS,
- array('xey' => 'value'));
- }
-
- function test_updateArgsNS1()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_updateArgsNS2()
- {
- $this->_test_updateArgsNS(Auth_OpenID_OPENID2_NS,
- array('mode' => 'error', 'error' => 'unit test'));
- }
-
- function test_updateArgsNS3()
- {
- $this->_test_updateArgsNS('urn:nothing-significant');
- }
-
- function _test_setArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $value = 'David Lowery';
- $this->assertEquals($this->msg->getArg($ns, $key), null);
- $this->msg->setArg($ns, $key, $value);
- $this->assertEquals($this->msg->getArg($ns, $key), $value);
- }
-
- function test_setArgOpenID()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID_NS);
- }
-
- function test_setArgBARE()
- {
- $this->_test_setArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_setArgNS1()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_setArgNS2()
- {
- $this->_test_setArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_setArgNS3()
- {
- $this->_test_setArgNS('urn:nothing-significant');
- }
-
- function test_badAlias()
- {
- // Make sure dotted aliases and OpenID protocol fields are not
- // allowed as namespace aliases.
-
- global $Auth_OpenID_OPENID_PROTOCOL_FIELDS;
-
- $all = array_merge($Auth_OpenID_OPENID_PROTOCOL_FIELDS, array('dotted.alias'));
-
- foreach ($all as $f) {
- $args = array(sprintf('openid.ns.%s', $f) => 'blah',
- sprintf('openid.%s.foo', $f) => 'test');
-
- // .fromPostArgs covers .fromPostArgs, .fromOpenIDArgs,
- // ._fromOpenIDArgs, and .fromOpenIDArgs (since it calls
- // .fromPostArgs). Python code raises AssertionError, but
- // we usually return null for bad things in PHP.
- $this->assertEquals($this->msg->fromPostArgs($args), null);
- }
- }
-
- function _test_delArgNS($ns)
- {
- $key = 'Camper van Beethoven';
- $value = 'David Lowery';
-
- $this->assertEquals($this->msg->delArg($ns, $key), false);
- $this->msg->setArg($ns, $key, $value);
- $this->assertEquals($this->msg->getArg($ns, $key), $value);
- $this->msg->delArg($ns, $key);
- $this->assertEquals($this->msg->getArg($ns, $key), null);
- }
-
- function test_delArgOpenID()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID_NS);
- }
-
- function test_delArgBARE()
- {
- $this->_test_delArgNS(Auth_OpenID_BARE_NS);
- }
-
- function test_delArgNS1()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID1_NS);
- }
-
- function test_delArgNS2()
- {
- $this->_test_delArgNS(Auth_OpenID_OPENID2_NS);
- }
-
- function test_delArgNS3()
- {
- $this->_test_delArgNS('urn:nothing-significant');
- }
-
- function test_overwriteExtensionArg()
- {
- $ns = 'urn:unittest_extension';
- $key = 'mykey';
- $value_1 = 'value_1';
- $value_2 = 'value_2';
-
- $this->msg->setArg($ns, $key, $value_1);
- $this->assertTrue($this->msg->getArg($ns, $key) == $value_1);
- $this->msg->setArg($ns, $key, $value_2);
- $this->assertTrue($this->msg->getArg($ns, $key) == $value_2);
- }
-
- function test_argList()
- {
- $this->assertEquals($this->msg->fromPostArgs(array('arg' => array(1, 2, 3))),
- null);
- }
-
- function test_isOpenID1()
- {
- $this->assertFalse($this->msg->isOpenID1());
- }
-
- function test_isOpenID2()
- {
- $this->assertTrue($this->msg->isOpenID2());
- }
-
- function test_args()
- {
- $this->_argTest(Auth_OpenID_BARE_NS, 'mode');
- $this->_argTest(Auth_OpenID_OPENID_NS, 'mode', 'error');
- $this->_argTest(Auth_OpenID_OPENID1_NS, 'mode');
- $this->_argTest(Auth_OpenID_OPENID2_NS, 'mode', 'error');
- $this->_argTest('urn:nothing-significant', 'mode');
- }
-}
-
-class Tests_Auth_OpenID_GeneralMessageTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->postargs = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => 'http://bogus.example.invalid:port/',
- 'openid.assoc_handle' => 'FLUB',
- 'openid.return_to' => 'Neverland');
-
- $this->action_url = 'scheme://host:port/path?query';
-
- $this->form_tag_attrs = array(
- 'company' => 'janrain',
- 'class' => 'fancyCSS');
-
- $this->submit_text = 'GO!';
-
- // Expected data regardless of input
-
- $this->required_form_attrs = array(
- 'accept-charset' => 'UTF-8',
- 'enctype' => 'application/x-www-form-urlencoded',
- 'method' => 'post');
- }
-
- function _checkForm($html, $message_, $action_url,
- $form_tag_attrs, $submit_text)
- {
- $parser = Auth_Yadis_getXMLParser();
-
- // Parse HTML source
- $this->assertTrue($parser->init($html, array()));
-
- // Get root element
- $form = $parser->evalXPath('/form[1]');
- $this->assertTrue(count($form) == 1);
- $form = $form[0];
-
- // Check required form attributes
- $form_attrs = $parser->attributes($form);
- foreach ($this->required_form_attrs as $k => $v) {
- $this->assertTrue($form_attrs[$k] == $v);
- }
-
- // Check extra form attributes
- foreach ($form_tag_attrs as $k => $v) {
- // Skip attributes that already passed the required
- // attribute check, since they should be ignored by the
- // form generation code.
- if (in_array($k, array_keys($this->required_form_attrs))) {
- continue;
- }
-
- $this->assertTrue($form_attrs[$k] == $v,
- "Form attr $k is ".$form_attrs[$k]." (expected $v)");
- }
-
- // Check hidden fields against post args
- $hiddens = array();
- $input_elements = $parser->evalXPath('input', $form);
- foreach ($input_elements as $e) {
- $attrs = $parser->attributes($e);
- if (strtoupper($attrs['type']) == 'HIDDEN') {
- $hiddens[] = $e;
- }
- }
-
- // For each post arg, make sure there is a hidden with that
- // value. Make sure there are no other hiddens.
- $postargs = $message_->toPostArgs();
- foreach ($postargs as $name => $value) {
- $found = false;
-
- foreach ($hiddens as $e) {
- $attrs = $parser->attributes($e);
- if ($attrs['name'] == $name) {
- $this->assertTrue($attrs['value'] == $value);
- $found = true;
- break;
- }
- }
-
- if (!$found) {
- $this->fail("Post arg $name not found in form");
- }
- }
-
- $keys = array_keys($postargs);
- foreach ($hiddens as $e) {
- $attrs = $parser->attributes($e);
- $this->assertTrue(in_array($attrs['name'], $keys));
- }
-
- // Check action URL
- $this->assertTrue($form_attrs['action'] == $action_url);
-
- // Check submit text
- $submits = array();
- foreach ($input_elements as $e) {
- $attrs = $parser->attributes($e);
- if (strtoupper($attrs['type']) == 'SUBMIT') {
- $submits[] = $e;
- }
- }
-
- $this->assertTrue(count($submits) == 1);
-
- $attrs = $parser->attributes($submits[0]);
- $this->assertTrue($attrs['value'] == $submit_text);
- }
-
- function test_toFormMarkup()
- {
- $m = Auth_OpenID_Message::fromPostArgs($this->postargs);
- $html = $m->toFormMarkup($this->action_url, $this->form_tag_attrs,
- $this->submit_text);
- $this->_checkForm($html, $m, $this->action_url,
- $this->form_tag_attrs, $this->submit_text);
- }
-
- function test_overrideMethod()
- {
- // Be sure that caller cannot change form method to GET.
- $m = Auth_OpenID_Message::fromPostArgs($this->postargs);
-
- $tag_attrs = $this->form_tag_attrs;
- $tag_attrs['method'] = 'GET';
-
- $html = $m->toFormMarkup($this->action_url, $this->form_tag_attrs,
- $this->submit_text);
- $this->_checkForm($html, $m, $this->action_url,
- $this->form_tag_attrs, $this->submit_text);
- }
-
- function test_overrideRequired()
- {
- // Be sure that caller CANNOT change the form charset for
- // encoding type.
- $m = Auth_OpenID_Message::fromPostArgs($this->postargs);
-
- $tag_attrs = $this->form_tag_attrs;
- $tag_attrs['accept-charset'] = 'UCS4';
- $tag_attrs['enctype'] = 'invalid/x-broken';
-
- $html = $m->toFormMarkup($this->action_url, $tag_attrs,
- $this->submit_text);
- $this->_checkForm($html, $m, $this->action_url,
- $tag_attrs, $this->submit_text);
- }
-
- function test_setOpenIDNamespace_invalid()
- {
- $m = new Auth_OpenID_Message();
- $invalid_things = array(
- // Empty string is not okay here.
- '',
- // Good guess! But wrong.
- 'http://openid.net/signon/2.0',
- // What?
- 'http://specs%\\\r2Eopenid.net/auth/2.0',
- // Too much escapings!
- 'http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0',
- // This is a Type URI, not a openid.ns value.
- 'http://specs.openid.net/auth/2.0/signon',
- );
-
- foreach ($invalid_things as $x) {
- $this->assertTrue($m->setOpenIDNamespace($x, true) === false);
- }
- }
-
- function test_isOpenID1()
- {
- $v1_namespaces = array(
- // Yes, there are two of them.
- 'http://openid.net/signon/1.1',
- 'http://openid.net/signon/1.0',
- );
-
- foreach ($v1_namespaces as $ns) {
- $m = new Auth_OpenID_Message($ns);
- $this->assertTrue($m->isOpenID1(),
- "$ns not recognized as OpenID 1");
- $this->assertEquals($ns, $m->getOpenIDNamespace());
- $this->assertTrue($m->namespaces->isImplicit($ns));
- }
- }
-
- function test_isOpenID2()
- {
- $ns = 'http://specs.openid.net/auth/2.0';
- $m = new Auth_OpenID_Message($ns);
- $this->assertTrue($m->isOpenID2());
- $this->assertFalse(
- $m->namespaces->isImplicit(Auth_OpenID_NULL_NAMESPACE));
- $this->assertEquals($ns, $m->getOpenIDNamespace());
- }
-
- function test_setOpenIDNamespace_explicit()
- {
- $m = new Auth_OpenID_Message();
- $m->setOpenIDNamespace(Auth_OpenID_THE_OTHER_OPENID1_NS, false);
- $this->assertFalse($m->namespaces->isImplicit(
- Auth_OpenID_THE_OTHER_OPENID1_NS));
- }
-
- function test_setOpenIDNamespace_implicit()
- {
- $m = new Auth_OpenID_Message();
- $m->setOpenIDNamespace(Auth_OpenID_THE_OTHER_OPENID1_NS, true);
- $this->assertTrue(
- $m->namespaces->isImplicit(Auth_OpenID_THE_OTHER_OPENID1_NS));
- }
-
-
- function test_explicitOpenID11NSSerialzation()
- {
- $m = new Auth_OpenID_Message();
- $m->setOpenIDNamespace(Auth_OpenID_THE_OTHER_OPENID1_NS, false);
-
- $post_args = $m->toPostArgs();
- $this->assertEquals($post_args,
- array('openid.ns' =>
- Auth_OpenID_THE_OTHER_OPENID1_NS));
- }
-
- function test_fromPostArgs_ns11()
- {
- // An example of the stuff that some Drupal installations send us,
- // which includes openid.ns but is 1.1.
- $query = array(
- 'openid.assoc_handle' => '',
- 'openid.claimed_id' => 'http://foobar.invalid/',
- 'openid.identity' => 'http://foobar.myopenid.com',
- 'openid.mode' => 'checkid_setup',
- 'openid.ns' => 'http://openid.net/signon/1.1',
- 'openid.ns.sreg' => 'http://openid.net/extensions/sreg/1.1',
- 'openid.return_to' => 'http://drupal.invalid/return_to',
- 'openid.sreg.required' => 'nickname,email',
- 'openid.trust_root' => 'http://drupal.invalid',
- );
- $m = Auth_OpenID_Message::fromPostArgs($query);
- $this->assertTrue($m->isOpenID1());
- }
-}
-
-class Tests_Auth_OpenID_NamespaceMap extends PHPUnit_Framework_TestCase {
- function test_onealias()
- {
- $nsm = new Auth_OpenID_NamespaceMap();
- $uri = 'http://example.com/foo';
- $alias = "foo";
- $nsm->addAlias($uri, $alias);
- $this->assertTrue($nsm->getNamespaceURI($alias) == $uri);
- $this->assertTrue($nsm->getAlias($uri) == $alias);
- }
-
- function test_iteration()
- {
- $nsm = new Auth_OpenID_NamespaceMap();
- $uripat = 'http://example.com/foo%d';
-
- $nsm->add(sprintf($uripat, 0));
-
- for ($n = 1; $n < 23; $n++) {
- $this->assertTrue($nsm->contains(sprintf($uripat, $n - 1)));
- $this->assertTrue($nsm->isDefined(sprintf($uripat, $n - 1)));
- $nsm->add(sprintf($uripat, $n));
- }
-
- foreach ($nsm->iteritems() as $pair) {
- list($uri, $alias) = $pair;
- $this->assertTrue('ext'.substr($uri, 22) == $alias);
- }
-
- $it = $nsm->iterAliases();
- $this->assertTrue(count($it) == 23);
-
- $it = $nsm->iterNamespaceURIs();
- $this->assertTrue(count($it) == 23);
- }
-}
-
-class Tests_Auth_OpenID_Message extends PHPUnit_Framework_TestCase {
-}
-
-global $Tests_Auth_OpenID_Message_other;
-$Tests_Auth_OpenID_Message_other = array(
- new Tests_Auth_OpenID_EmptyMessage(),
- new Tests_Auth_OpenID_OpenID1Message(),
- new Tests_Auth_OpenID_OpenID2Message(),
- new Tests_Auth_OpenID_NamespaceMap(),
- new Tests_Auth_OpenID_OpenID1ExplicitMessage(),
- new Tests_Auth_OpenID_GeneralMessageTest()
- );
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Negotiation.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Negotiation.php
deleted file mode 100644
index 02628fc2b..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Negotiation.php
+++ /dev/null
@@ -1,346 +0,0 @@
-return_messages);
- if (is_a($m, 'Auth_OpenID_Message')) {
- return Auth_OpenID_ServerErrorContainer::fromMessage($m);
- } else if (Auth_OpenID::isFailure($m)) {
- return $m;
- } else {
- return $m;
- }
- }
-}
-
-/**
- * Test the session type negotiation behavior of an OpenID 2 consumer.
- */
-class TestOpenID2SessionNegotiation extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $dumb = null;
- $this->consumer = new ErrorRaisingConsumer($dumb);
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
- $this->endpoint->server_url = 'bogus';
- }
-
- /**
- * Test the case where the response to an associate request is a
- * server error or is otherwise undecipherable.
- */
- function testBadResponse()
- {
- $this->consumer->return_messages = array(
- new Auth_OpenID_Message($this->endpoint->preferredNamespace()));
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- /**
- * Test the case where the response to an associate request is a
- * a failure response object.
- */
- function testBadResponseWithFailure()
- {
- $this->consumer->return_messages = array(
- new Auth_OpenID_FailureResponse($this->endpoint));
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- /**
- * Test the case where the association type (assoc_type) returned
- * in an unsupported-type response is absent.
- */
- function testEmptyAssocType()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', null);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'new-session-type');
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Unsupported association type',
- // 'Server responded with unsupported association ' +
- // 'session but did not supply a fallback.')
- }
-
- /**
- * Test the case where the session type (session_type) returned in
- * an unsupported-type response is absent.
- */
- function testEmptySessionType()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'new-assoc-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', null);
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Unsupported association type',
- // 'Server responded with unsupported association ' +
- // 'session but did not supply a fallback.')
- }
-
- /**
- * Test the case where an unsupported-type response specifies a
- * preferred (assoc_type, session_type) combination that is not
- * allowed by the consumer's SessionNegotiator.
- */
- function testNotAllowed()
- {
- $allowed_types = array();
-
- $negotiator = new Auth_OpenID_SessionNegotiator($allowed_types);
- $this->consumer->negotiator = $negotiator;
-
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'not-allowed');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'not-allowed');
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Unsupported association type',
- // 'Server sent unsupported session/association type:')
- }
-
- /**
- * Test the case where an unsupported-type response triggers a
- * retry to get an association with the new preferred type.
- */
- function testUnsupportedWithRetry()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'HMAC-SHA1');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'DH-SHA1');
-
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secret', 'issued', 10000, 'HMAC-SHA1');
-
- $this->consumer->return_messages = array($msg, $assoc);
- $this->assertTrue($this->consumer->_negotiateAssociation($this->endpoint) === $assoc);
-
- // $this->failUnlessLogMatches('Unsupported association type');
- }
-
- /**
- * Test the case where an unsupported-typ response triggers a
- * retry, but the retry fails and None is returned instead.
- */
- function testUnsupportedWithRetryAndFail()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'HMAC-SHA1');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'DH-SHA1');
-
- $this->consumer->return_messages = array($msg,
- new Auth_OpenID_Message($this->endpoint->preferredNamespace()));
-
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Unsupported association type',
- // 'Server %s refused' % ($this->endpoint.server_url))
- }
-
- /**
- * Test the valid case, wherein an association is returned on the
- * first attempt to get one.
- */
- function testValid()
- {
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secret', 'issued', 10000, 'HMAC-SHA1');
-
- $this->consumer->return_messages = array($assoc);
- $this->assertTrue($this->consumer->_negotiateAssociation($this->endpoint) === $assoc);
- // $this->failUnlessLogEmpty()
- }
-}
-
-/**
- * Tests for the OpenID 1 consumer association session behavior. See
- * the docs for TestOpenID2SessionNegotiation. Notice that this class
- * is not a subclass of the OpenID 2 tests. Instead, it uses many of
- * the same inputs but inspects the log messages logged with
- * oidutil.log. See the calls to $this->failUnlessLogMatches. Some
- * of these tests pass openid2-style messages to the openid 1
- * association processing logic to be sure it ignores the extra data.
- */
-class TestOpenID1SessionNegotiation extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $dumb = null;
- $this->consumer = new ErrorRaisingConsumer($dumb);
-
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
- $this->endpoint->type_uris = array(Auth_OpenID_OPENID1_NS);
- $this->endpoint->server_url = 'bogus';
- }
-
- function testBadResponse()
- {
- $this->consumer->return_messages =
- array(new Auth_OpenID_Message($this->endpoint->preferredNamespace()));
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- function testEmptyAssocType()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', null);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'new-session-type');
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- function testEmptySessionType()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'new-assoc-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', null);
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Server error when requesting an association');
- }
-
- function testNotAllowed()
- {
- $allowed_types = array();
-
- $negotiator = new Auth_OpenID_SessionNegotiator($allowed_types);
- $this->consumer->negotiator = $negotiator;
-
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'not-allowed');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'not-allowed');
-
- $this->consumer->return_messages = array($msg);
- $this->assertEquals($this->consumer->_negotiateAssociation($this->endpoint), null);
-
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- function testUnsupportedWithRetry()
- {
- $msg = new Auth_OpenID_Message($this->endpoint->preferredNamespace());
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error', 'Unsupported type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'error_code', 'unsupported-type');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_type', 'HMAC-SHA1');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'session_type', 'DH-SHA1');
-
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secretxx', 'issued', 10000, 'HMAC-SHA1');
-
- $this->consumer->return_messages = array($assoc, $msg);
-
- $result = $this->consumer->_negotiateAssociation($this->endpoint);
- $this->assertTrue($result === null);
-
- // $this->failUnlessLogMatches('Server error when requesting an association')
- }
-
- function testValid()
- {
- $assoc = new Auth_OpenID_Association(
- 'handle', 'secret', 'issued', 10000, 'HMAC-SHA1');
-
- $this->consumer->return_messages = array($assoc);
- $this->assertTrue($this->consumer->_negotiateAssociation($this->endpoint) === $assoc);
- // $this->failUnlessLogEmpty()
- }
-}
-
-class TestNegotiatorBehaviors extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->allowed_types = array(
- array('HMAC-SHA1', 'no-encryption'),
- array('HMAC-SHA256', 'no-encryption')
- );
-
- $this->n = new Auth_OpenID_SessionNegotiator($this->allowed_types);
- }
-
- function testAddAllowedTypeNoSessionTypes()
- {
- $this->assertFalse($this->n->addAllowedType('invalid'));
- }
-
- function testAddAllowedTypeBadSessionType()
- {
- $this->assertFalse($this->n->addAllowedType('assoc1', 'invalid'));
- }
-
- function testAddAllowedTypeContents()
- {
- $assoc_type = 'HMAC-SHA1';
- $this->assertTrue($this->n->addAllowedType($assoc_type));
-
- foreach (Auth_OpenID_getSessionTypes($assoc_type) as $typ) {
- $this->assertTrue(in_array(array($assoc_type, $typ),
- $this->n->allowed_types));
- }
- }
-}
-
-class Tests_Auth_OpenID_Negotiation extends PHPUnit_Framework_TestSuite {
-
- function getName()
- {
- return 'Tests_Auth_OpenID_Negotiation';
- }
-
- function Tests_Auth_OpenID_Negotiation()
- {
- $this->addTestSuite('TestNegotiatorBehaviors');
- $this->addTestSuite('TestOpenID1SessionNegotiation');
- $this->addTestSuite('TestOpenID2SessionNegotiation');
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Nonce.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Nonce.php
deleted file mode 100644
index 1f64948ff..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Nonce.php
+++ /dev/null
@@ -1,166 +0,0 @@
-
- * @copyright 2006 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/Nonce.php';
-
-define('Tests_Auth_OpenID_nonce_re',
- '/\A\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ/');
-
-class Tests_Auth_OpenID_Nonce extends PHPUnit_Framework_TestSuite {
- function Tests_Auth_OpenID_Nonce()
- {
- $this->addTestSuite('Tests_Auth_OpenID_NonceTests');
- $this->makeSplitTests();
- $this->makeCheckTimestampTests();
- $this->setName('Tests_Auth_OpenID_Nonce');
- }
-
- function makeSplitTests()
- {
- $cases = array(
- '',
- '1970-01-01T00:00:00+1:00',
- '1969-01-01T00:00:00Z',
- '1970-00-01T00:00:00Z',
- '1970.01-01T00:00:00Z',
- 'Thu Sep 7 13:29:31 PDT 2006',
- 'monkeys',
- );
-
- foreach ($cases as $nonce_str) {
- $this->_mkSplitTest($nonce_str);
- }
- }
-
- function _mkSplitTest($nonce_str)
- {
- $test = new Tests_Auth_OpenID_Nonce_BadSplitCase($nonce_str);
- $test->setName('BadNonceSplit ' . var_export($nonce_str, true));
- $this->addTest($test);
- }
-
- function makeCheckTimestampTests()
- {
- $cases = array(
- // exact, no allowed skew
- array('1970-01-01T00:00:00Z', 0, 0, true),
-
- // exact, large skew
- array('1970-01-01T00:00:00Z', 1000, 0, true),
-
- // no allowed skew, one second old
- array('1970-01-01T00:00:00Z', 0, 1, false),
-
- // many seconds old, outside of skew
- array('1970-01-01T00:00:00Z', 10, 50, false),
-
- // one second old, one second skew allowed
- array('1970-01-01T00:00:00Z', 1, 1, true),
-
- // One second in the future, one second skew allowed
- array('1970-01-01T00:00:02Z', 1, 1, true),
-
- // two seconds in the future, one second skew allowed
- array('1970-01-01T00:00:02Z', 1, 0, false),
-
- // malformed nonce string
- array('monkeys', 0, 0, false)
- );
-
- foreach ($cases as $case) {
- $this->_mkCheckTest($case);
- }
- }
-
- function _mkCheckTest($case)
- {
- list($nonce_str, $skew, $now, $expected) = $case;
- $test = new Tests_Auth_OpenID_Nonce_TimestampCase(
- $nonce_str, $skew, $now, $expected);
- $test->setName('CheckTimestamp ' . var_export($nonce_str, true));
- $this->addTest($test);
- }
-}
-
-class Tests_Auth_OpenID_Nonce_TimestampCase extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_Nonce_TimestampCase(
- $nonce_str, $skew, $now, $expected)
- {
- $this->nonce_string = $nonce_str;
- $this->allowed_skew = $skew;
- $this->now = $now;
- $this->expected = $expected;
- }
-
- function runTest()
- {
- $actual = Auth_OpenID_checkTimestamp($this->nonce_string,
- $this->allowed_skew,
- $this->now);
- $this->assertEquals($this->expected, $actual);
- }
-}
-
-class Tests_Auth_OpenID_NonceTests extends PHPUnit_Framework_TestCase {
- function test_mkNonce()
- {
- $nonce_str = Auth_OpenID_mkNonce();
- $this->assertTrue(preg_match(Tests_Auth_OpenID_nonce_re, $nonce_str));
- }
-
- function test_mkNonce_when()
- {
- $nonce_str = Auth_OpenID_mkNonce(0);
- $this->assertTrue(preg_match(Tests_Auth_OpenID_nonce_re, $nonce_str));
- $tpart = substr($nonce_str, 0, 20);
- $this->assertEquals('1970-01-01T00:00:00Z', $tpart);
- }
-
- function test_splitNonce()
- {
- $s = '1970-01-01T00:00:00Z';
- $expected_t = 0;
- $expected_salt = '';
- list($actual_t, $actual_salt) = Auth_OpenID_splitNonce($s);
- $this->assertEquals($expected_t, $actual_t);
- $this->assertEquals($expected_salt, $actual_salt);
- }
-
-
- function test_mkSplit()
- {
- $t = 42;;
- $nonce_str = Auth_OpenID_mkNonce($t);
- $this->assertTrue(preg_match(Tests_Auth_OpenID_nonce_re, $nonce_str));
- list($et, $salt) = Auth_OpenID_splitNonce($nonce_str);
- $this->assertEquals(6, strlen($salt));
- $this->assertEquals($et, $t);
- }
-}
-
-class Tests_Auth_OpenID_Nonce_BadSplitCase extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_Nonce_BadSplitCase($nonce_str)
- {
- $this->nonce_str = $nonce_str;
- }
-
- function runTest()
- {
- $result = Auth_OpenID_splitNonce($this->nonce_str);
- $this->assertNull($result);
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/OpenID_Yadis.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/OpenID_Yadis.php
deleted file mode 100644
index f013d967e..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/OpenID_Yadis.php
+++ /dev/null
@@ -1,228 +0,0 @@
-
-
-
-%s
-
-
-';
-
-// Different sets of server URLs for use in the URI tag
-global $__server_url_options;
-$__server_url_options = array(
- array(), // This case should not generate an endpoint object
- array('http://server.url/'),
- array('https://server.url/'),
- array('https://server.url/', 'http://server.url/'),
- array('https://server.url/',
- 'http://server.url/',
- 'http://example.server.url/'),
- );
-
-// A couple of example extension type URIs. These are not at all
-// official, but are just here for testing.
-global $__ext_types;
-$__ext_types = array(
- 'http://janrain.com/extension/blah',
- 'http://openid.net/sreg/1.0');
-
-// All valid combinations of Type tags that should produce an OpenID
-// endpoint
-global $__openid_types;
-$__openid_types = array(
- Auth_OpenID_TYPE_1_0,
- Auth_OpenID_TYPE_1_1);
-
-$temp = array();
-foreach (__subsets($__ext_types) as $exts) {
- foreach (__subsets($__openid_types) as $ts) {
- if ($ts) {
- $temp[] = array_merge($exts, $ts);
- }
- }
-}
-
-global $__type_uri_options;
-$__type_uri_options = $temp;
-
-// Range of valid Delegate tag values for generating test data
-global $__delegate_options;
-$__delegate_options = array(
- null,
- 'http://vanity.domain/',
- 'https://somewhere/yadis/');
-
-$temp = array();
-foreach ($__delegate_options as $delegate) {
- foreach ($__type_uri_options as $type_uris) {
- foreach ($__server_url_options as $uris) {
- $temp[] = array($uris, $type_uris, $delegate);
- }
- }
-}
-
-// All combinations of valid URIs, Type URIs and Delegate tags
-global $__data;
-$__data = $temp;
-
-function _mkXRDS($services_str)
-{
- global $__XRDS_BOILERPLATE;
- return sprintf($__XRDS_BOILERPLATE, $services_str);
-}
-
-function _mkService($uris = null, $type_uris = null,
- $delegate = null, $dent = ' ')
-{
- $chunks = array($dent, "\n");
- $dent2 = $dent . ' ';
- if ($type_uris) {
- foreach ($type_uris as $type_uri) {
- $chunks = array_merge($chunks,
- array($dent2 . '',
- $type_uri, " \n"));
- }
- }
-
- if ($uris) {
- foreach ($uris as $uri) {
- if (is_array($uri)) {
- list($uri, $prio) = $uri;
- } else {
- $prio = null;
- }
- $chunks = array_merge($chunks, array($dent2, '', $uri, " \n"));
- }
- }
-
- if ($delegate) {
- $chunks = array_merge($chunks,
- array($dent2, '',
- $delegate, " \n"));
- }
-
- $chunks = array_merge($chunks, array($dent, " \n"));
-
- return implode("", $chunks);
-}
-
-// Used for generating test data
-function __subsets($list)
-{
- // Generate all non-empty sublists of a list
- $subsets_list = array(array());
- foreach ($list as $elem) {
-
- $temp = array();
- foreach ($subsets_list as $t) {
- $temp[] = array_merge(array($elem), $t);
- }
-
- $subsets_list = array_merge($subsets_list, $temp);
- }
-
- return $subsets_list;
-}
-
-class Tests_Auth_OpenID_Tester extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_Tester($uris, $type_uris, $delegate)
- {
- parent::__construct();
- $this->uris = $uris;
- $this->type_uris = $type_uris;
- $this->local_id = $delegate;
- }
-
- function setUp()
- {
- $this->yadis_url = 'http://unit.test/';
-
- // Create an XRDS document to parse
- $services = _mkService($this->uris,
- $this->type_uris,
- $this->local_id);
- $this->xrds = _mkXRDS($services);
- }
-
- function runTest()
- {
- // Parse into endpoint objects that we will check
- $xrds_object = Auth_Yadis_XRDS::parseXRDS($this->xrds);
-
- $endpoints = array();
-
- if ($xrds_object) {
- $endpoints = $xrds_object->services(array('filter_MatchesAnyOpenIDType'));
- $endpoints = Auth_OpenID_makeOpenIDEndpoints($this->yadis_url, $endpoints);
- }
-
- // make sure there are the same number of endpoints as
- // URIs. This assumes that the type_uris contains at least one
- // OpenID type.
- $this->assertEquals(count($this->uris), count($endpoints),
- "URI <-> Endpoint count");
-
- // So that we can check equality on the endpoint types
- $type_uris = $this->type_uris;
- sort($type_uris);
-
-
- $seen_uris = array();
- foreach ($endpoints as $endpoint) {
- $seen_uris[] = $endpoint->server_url;
-
- // All endpoints will have same yadis_url
- $this->assertEquals($this->yadis_url, $endpoint->claimed_id);
-
- // and delegate
- $this->assertEquals($this->local_id, $endpoint->local_id);
-
- // and types
- $actual_types = $endpoint->type_uris;
- sort($actual_types);
- $this->assertEquals($actual_types, $type_uris);
- }
-
- // So that they will compare equal, because we don't care what
- // order they are in
- sort($seen_uris);
- $uris = $this->uris;
- sort($uris);
-
- // Make sure we saw all URIs, and saw each one once
- $this->assertEquals($uris, $seen_uris);
- }
-}
-
-class Tests_Auth_OpenID_OpenID_Yadis extends PHPUnit_Framework_TestSuite {
- function Tests_Auth_OpenID_OpenID_Yadis()
- {
- global $__data;
- foreach ($__data as $case) {
- $this->addTest(new Tests_Auth_OpenID_Tester($case[0], $case[1], $case[2]));
- }
- }
-
- function getName()
- {
- return 'Tests_Auth_OpenID_OpenID_Yadis';
- }
-
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/PAPE.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/PAPE.php
deleted file mode 100644
index d71036d19..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/PAPE.php
+++ /dev/null
@@ -1,244 +0,0 @@
-req = new Auth_OpenID_PAPE_Request();
- }
-
- function test_construct()
- {
- $this->assertEquals(array(), $this->req->preferred_auth_policies);
- $this->assertEquals(null, $this->req->max_auth_age);
- $this->assertEquals('pape', $this->req->ns_alias);
-
- $req2 = new Auth_OpenID_PAPE_Request(array(PAPE_AUTH_MULTI_FACTOR), 1000);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $req2->preferred_auth_policies);
- $this->assertEquals(1000, $req2->max_auth_age);
- }
-
- function test_add_policy_uri()
- {
- $this->assertEquals(array(), $this->req->preferred_auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $this->req->preferred_auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $this->req->preferred_auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_PHISHING_RESISTANT);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT),
- $this->req->preferred_auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT),
- $this->req->preferred_auth_policies);
- }
-
- function test_getExtensionArgs() {
- $this->assertEquals(array('preferred_auth_policies' => ''), $this->req->getExtensionArgs());
- $this->req->addPolicyURI('http://uri');
- $this->assertEquals(array('preferred_auth_policies' => 'http://uri'), $this->req->getExtensionArgs());
- $this->req->addPolicyURI('http://zig');
- $this->assertEquals(array('preferred_auth_policies' => 'http://uri http://zig'), $this->req->getExtensionArgs());
- $this->req->max_auth_age = 789;
- $this->assertEquals(array('preferred_auth_policies' => 'http://uri http://zig', 'max_auth_age' => '789'), $this->req->getExtensionArgs());
- }
-
- function test_parseExtensionArgs() {
- $args = array('preferred_auth_policies' => 'http://foo http://bar',
- 'max_auth_age' => '9');
- $this->req->parseExtensionArgs($args);
- $this->assertEquals(9, $this->req->max_auth_age);
- $this->assertEquals(array('http://foo','http://bar'), $this->req->preferred_auth_policies);
- }
-
- function test_parseExtensionArgs_empty() {
- $this->req->parseExtensionArgs(array());
- $this->assertEquals(null, $this->req->max_auth_age);
- $this->assertEquals(array(), $this->req->preferred_auth_policies);
- }
-
- function test_fromOpenIDRequest() {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'checkid_setup',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'ns.pape' => Auth_OpenID_PAPE_NS_URI,
- 'pape.preferred_auth_policies' => implode(' ', array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT)),
- 'pape.max_auth_age' => '5476'
- ));
- $oid_req = new Auth_OpenID_Request();
- $oid_req->message = $openid_req_msg;
- $req = Auth_OpenID_PAPE_Request::fromOpenIDRequest($oid_req);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT), $req->preferred_auth_policies);
- $this->assertEquals(5476, $req->max_auth_age);
- }
-
- function test_fromOpenIDRequest_no_pape() {
- $message = new Auth_OpenID_Message();
- $openid_req = new Auth_OpenID_Request();
- $openid_req->message = $message;
- $pape_req = Auth_OpenID_PAPE_Request::fromOpenIDRequest($openid_req);
- $this->assertTrue($pape_req === null);
- }
-
- function test_preferred_types() {
- $this->req->addPolicyURI(PAPE_AUTH_PHISHING_RESISTANT);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $pt = $this->req->preferredTypes(array(PAPE_AUTH_MULTI_FACTOR,
- PAPE_AUTH_MULTI_FACTOR_PHYSICAL));
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $pt);
- }
-}
-
-class PAPE_DummySuccessResponse {
- function PAPE_DummySuccessResponse($message, $signed_stuff)
- {
- $this->message = $message;
- $this->signed_stuff = $signed_stuff;
- }
-
- function getSignedNS($ns_uri)
- {
- return $this->signed_stuff;
- }
-}
-
-class PapeResponseTestCase extends PHPUnit_Framework_TestCase {
- function setUp() {
- $this->req = new Auth_OpenID_PAPE_Response();
- }
-
- function test_construct() {
- $this->assertEquals(array(), $this->req->auth_policies);
- $this->assertEquals(null, $this->req->auth_time);
- $this->assertEquals('pape', $this->req->ns_alias);
- $this->assertEquals(null, $this->req->nist_auth_level);
-
- $req2 = new Auth_OpenID_PAPE_Response(array(PAPE_AUTH_MULTI_FACTOR),
- '2001-01-01T04:05:23Z',
- 3);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $req2->auth_policies);
- $this->assertEquals('2001-01-01T04:05:23Z', $req2->auth_time);
- $this->assertEquals(3, $req2->nist_auth_level);
- }
-
- function test_add_policy_uri() {
- $this->assertEquals(array(), $this->req->auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $this->req->auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR), $this->req->auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_PHISHING_RESISTANT);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT), $this->req->auth_policies);
- $this->req->addPolicyURI(PAPE_AUTH_MULTI_FACTOR);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT), $this->req->auth_policies);
- }
-
- function test_getExtensionArgs() {
- $this->assertEquals(array('auth_policies' => 'none'), $this->req->getExtensionArgs());
- $this->req->addPolicyURI('http://uri');
- $this->assertEquals(array('auth_policies' => 'http://uri'), $this->req->getExtensionArgs());
- $this->req->addPolicyURI('http://zig');
- $this->assertEquals(array('auth_policies' => 'http://uri http://zig'), $this->req->getExtensionArgs());
- $this->req->auth_time = '2008-03-02T12:34:56Z';
- $this->assertEquals(array('auth_policies' => 'http://uri http://zig', 'auth_time' => '2008-03-02T12:34:56Z'), $this->req->getExtensionArgs());
- $this->req->nist_auth_level = 3;
- $this->assertEquals(array('auth_policies' => 'http://uri http://zig', 'auth_time' => '2008-03-02T12:34:56Z', 'nist_auth_level' => '3'), $this->req->getExtensionArgs());
- }
-
- function test_getExtensionArgs_error_auth_age() {
- $this->req->auth_time = "foo2008-03-02T12:34:56Z";
- $this->assertEquals(false, $this->req->getExtensionArgs());
- $this->req->auth_time = "2008-03-02T12:34:56Zbar";
- $this->assertEquals(false, $this->req->getExtensionArgs());
- }
-
- function test_getExtensionArgs_error_nist_auth_level() {
- $this->req->nist_auth_level = "high as a kite";
- $this->assertEquals(false, $this->req->getExtensionArgs());
- $this->req->nist_auth_level = 5;
- $this->assertEquals(false, $this->req->getExtensionArgs());
- $this->req->nist_auth_level = -1;
- $this->assertEquals(false, $this->req->getExtensionArgs());
- }
-
- function test_parseExtensionArgs() {
- $args = array('auth_policies' => 'http://foo http://bar',
- 'auth_time' => '2008-03-02T12:34:56Z');
- $this->req->parseExtensionArgs($args);
- $this->assertEquals('2008-03-02T12:34:56Z', $this->req->auth_time);
- $this->assertEquals(array('http://foo','http://bar'), $this->req->auth_policies);
- }
-
- function test_parseExtensionArgs_empty() {
- $this->req->parseExtensionArgs(array());
- $this->assertEquals(null, $this->req->auth_time);
- $this->assertEquals(array(), $this->req->auth_policies);
- }
-
- function test_parseExtensionArgs_strict_bogus1() {
- $args = array('auth_policies' => 'http://foo http://bar',
- 'auth_time' => 'yesterday');
- $this->assertEquals(false, $this->req->parseExtensionArgs($args, true));
- }
-
- function test_parseExtensionArgs_strict_bogus2() {
- $args = array('auth_policies' => 'http://foo http://bar',
- 'auth_time' => '63',
- 'nist_auth_level' => 'some');
- $this->assertEquals(false, $this->req->parseExtensionArgs($args, true));
- }
-
- function test_parseExtensionArgs_strict_good() {
- $args = array('auth_policies' => 'http://foo http://bar',
- 'auth_time' => '2008-03-02T12:34:56Z',
- 'nist_auth_level' => '0');
- $this->req->parseExtensionArgs($args, true);
- $this->assertEquals(array('http://foo','http://bar'), $this->req->auth_policies);
- $this->assertEquals('2008-03-02T12:34:56Z', $this->req->auth_time);
- $this->assertEquals(0, $this->req->nist_auth_level);
- }
-
- function test_parseExtensionArgs_nostrict_bogus() {
- $args = array('auth_policies' => 'http://foo http://bar',
- 'auth_time' => 'the other day',
- 'nist_auth_level' => 'some');
- $this->req->parseExtensionArgs($args);
- $this->assertEquals(array('http://foo','http://bar'), $this->req->auth_policies);
- $this->assertEquals(null, $this->req->auth_time);
- $this->assertEquals(null, $this->req->nist_auth_level);
- }
-
- function test_fromSuccessResponse() {
- $openid_req_msg = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'id_res',
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'ns.pape' => Auth_OpenID_PAPE_NS_URI,
- 'auth_policies' => implode(' ', array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT)),
- 'auth_time' => '2008-03-02T12:34:56Z'
- ));
- $signed_stuff = array(
- 'auth_policies' => implode(' ', array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT)),
- 'auth_time' => '2008-03-02T12:34:56Z'
- );
- $oid_req = new PAPE_DummySuccessResponse($openid_req_msg, $signed_stuff);
- $req = Auth_OpenID_PAPE_Response::fromSuccessResponse($oid_req);
- $this->assertEquals(array(PAPE_AUTH_MULTI_FACTOR, PAPE_AUTH_PHISHING_RESISTANT), $req->auth_policies);
- $this->assertEquals('2008-03-02T12:34:56Z', $req->auth_time);
- }
-}
-
-class Tests_Auth_OpenID_PAPE extends PHPUnit_Framework_TestSuite {
- function getName() {
- return "Tests_Auth_OpenID_PAPE";
- }
-
- function Tests_Auth_OpenID_PAPE() {
- $this->addTestSuite('PapeRequestTestCase');
- $this->addTestSuite('PapeResponseTestCase');
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Parse.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Parse.php
deleted file mode 100644
index b0e03508e..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Parse.php
+++ /dev/null
@@ -1,185 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Tests/Auth/OpenID/TestUtil.php';
-require_once 'Auth/OpenID/Parse.php';
-
-class Tests_Auth_OpenID_Link extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_Link($case)
- {
- list($desc, $markup, $links, $case_text) = $case;
- $this->desc = $desc;
- $this->markup = $markup;
- $this->expected_links = $links;
- $this->case_text = $case_text;
- $this->parser = new Auth_OpenID_Parse();
- }
-
- function getName()
- {
- return $this->desc;
- }
-
- function runTest()
- {
- $parsed = $this->parser->parseLinkAttrs($this->markup);
- $i = 0;
-
- foreach ($this->expected_links as $expected) {
- list($is_optional_link, $expected_link) = $expected;
- if ($is_optional_link &&
- ($i >= count($parsed))) {
- continue;
- }
-
- if (count($parsed) <= $i) {
- $i++;
- continue;
- }
-
- $act_link = $parsed[$i];
-
- $increment = true;
- foreach ($expected_link as $attr => $data) {
- list($is_optional_attr, $value) = $data;
-
- if ($is_optional_attr) {
- $actual_value = null;
- if (array_key_exists($attr, $act_link)) {
- $actual_value = $act_link[$attr];
- } else {
- continue;
- }
- } else {
- $actual_value = $act_link[$attr];
- }
-
- if ($is_optional_link &&
- ($value != $actual_value)) {
- $increment = false;
- break;
- }
-
- $this->assertEquals($value, $actual_value);
- }
-
- if ($increment) {
- $i++;
- }
- }
-
- $this->assertEquals($i, count($parsed));
- }
-}
-
-class NumTestCases extends PHPUnit_Framework_TestCase {
- function NumTestCases($test_cases, $num_tests)
- {
- $this->test_cases = $test_cases;
- $this->num_tests = $num_tests;
- }
-
- function runTest()
- {
- $this->assertEquals(count($this->test_cases),
- $this->num_tests);
- }
-}
-
-class Tests_Auth_OpenID_Parse extends PHPUnit_Framework_TestSuite {
-
- function getName()
- {
- return "Tests_Auth_OpenID_Parse";
- }
-
- function _parseCheck($cond, $where)
- {
- if (!$cond) {
- trigger_error('Parse error in ' . $where, E_USER_ERROR);
- }
- }
-
- function parseLink($line)
- {
- $parts = explode(" ", $line);
- $optional = intval($parts[0] == 'Link*:');
- $this->_parseCheck($optional || ($parts[0] == 'Link:'), __FUNCTION__);
-
- $attrs = array();
- foreach (array_slice($parts, 1) as $attr) {
- list($k, $v) = explode("=", $attr, 2);
- if ($k[strlen($k) - 1] == '*') {
- $attr_optional = 1;
- $k = substr($k, 0, strlen($k) - 1);
- } else {
- $attr_optional = 0;
- }
-
- $attrs[$k] = array($attr_optional, $v);
- }
-
- return array($optional, $attrs);
- }
-
- function parseCase($s)
- {
- list($header, $markup) = explode("\n\n", $s, 2);
- $lines = explode("\n", $header);
- $name = array_shift($lines);
- $this->_parseCheck(strpos($name, 'Name: ') == 0, __FUNCTION__);
- $desc = substr($name, 6);
- $parsed = array();
- foreach ($lines as $line) {
- $parsed[] = $this->parseLink($line);
- }
-
- return array($desc, $markup, $parsed);
- }
-
- function parseTests($s)
- {
- $tests = array();
-
- $cases = explode("\n\n\n", $s);
- $header = array_shift($cases);
- list($tests_line, $unused) = explode("\n", $header, 2);
- list($k, $v) = explode(": ", $tests_line);
- $this->_parseCheck(('Num Tests' == $k), __FUNCTION__);
- $num_tests = intval($v);
-
- foreach (array_slice($cases, 0, count($cases) - 1) as $case) {
- list($desc, $markup, $links) = $this->parseCase($case);
- $tests[] = array($desc, $markup, $links, $case);
- }
-
- return array($num_tests, $tests);
- }
-
- function Tests_Auth_OpenID_Parse()
- {
- $test_data = Tests_Auth_OpenID_readdata('linkparse.txt');
-
- list($num_tests, $test_cases) = $this->parseTests($test_data);
-
- $this->addTest(new NumTestCases($test_cases, $num_tests));
-
- foreach ($test_cases as $case) {
- $this->addTest(new Tests_Auth_OpenID_Link($case));
- }
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/RPVerify.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/RPVerify.php
deleted file mode 100644
index 1482af4c4..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/RPVerify.php
+++ /dev/null
@@ -1,293 +0,0 @@
-assertEquals($expected_discovery_url, $actual_discovery_url);
- }
-
- /*
- * There is no wildcard and the realm is the same as the return_to
- * URL
- */
- function test_trivial()
- {
- $this->failUnlessDiscoURL('http://example.com/foo',
- 'http://example.com/foo');
- }
-
- /*
- * There is a wildcard
- */
- function test_wildcard()
- {
- $this->failUnlessDiscoURL('http://*.example.com/foo',
- 'http://www.example.com/foo');
- }
-}
-
-class _MockDiscover {
- function _MockDiscover($data) {
- $this->data =& $data;
- }
-
- function mockDiscover($uri, $fetcher, $discover_function=null)
- {
- $result = new Auth_Yadis_DiscoveryResult($uri);
- $result->response_text = $this->data;
- $result->normalized_uri = $uri;
- return $result;
- }
-}
-
-class Tests_Auth_OpenID_ExtractReturnToURLs extends PHPUnit_Framework_TestCase {
- var $disco_url = 'http://example.com/';
-
- function failUnlessXRDSHasReturnURLs($data, $expected_return_urls)
- {
- $discover_object = new _MockDiscover($data);
- $actual_return_urls = Auth_OpenID_getAllowedReturnURLs($this->disco_url, null, array($discover_object, 'mockDiscover'));
-
- $this->assertEquals($expected_return_urls, $actual_return_urls);
- }
-
- function failUnlessDiscoveryFailure($text)
- {
- $discover_object = new _MockDiscover($text);
- $this->assertFalse(Auth_OpenID_getAllowedReturnURLs($this->disco_url, null, array($discover_object, 'mockDiscover')));
- }
-
- function test_empty()
- {
- $this->failUnlessDiscoveryFailure('');
- }
-
- function test_badXML()
- {
- $this->failUnlessDiscoveryFailure('>');
- }
-
- function test_noEntries()
- {
- $this->failUnlessXRDSHasReturnURLs('
-
-
-
-
-', array());
- }
-
- function test_noReturnToEntries()
- {
- $this->failUnlessXRDSHasReturnURLs('
-
-
-
- http://specs.openid.net/auth/2.0/server
- http://www.myopenid.com/server
-
-
-
-', array());
- }
-
- function test_oneEntry()
- {
- $this->failUnlessXRDSHasReturnURLs('
-
-
-
- http://specs.openid.net/auth/2.0/return_to
- http://rp.example.com/return
-
-
-
-', array('http://rp.example.com/return'));
- }
-
- function test_twoEntries()
- {
- $this->failUnlessXRDSHasReturnURLs('
-
-
-
- http://specs.openid.net/auth/2.0/return_to
- http://rp.example.com/return
-
-
- http://specs.openid.net/auth/2.0/return_to
- http://other.rp.example.com/return
-
-
-
-', array('http://rp.example.com/return',
- 'http://other.rp.example.com/return'));
- }
-
- function test_twoEntries_withOther()
- {
- $this->failUnlessXRDSHasReturnURLs('
-
-
-
- http://specs.openid.net/auth/2.0/return_to
- http://rp.example.com/return
-
-
- http://specs.openid.net/auth/2.0/return_to
- http://other.rp.example.com/return
-
-
- http://example.com/LOLCATS
- http://example.com/invisible+uri
-
-
-
-', array('http://rp.example.com/return',
- 'http://other.rp.example.com/return'));
- }
-}
-
-class Tests_Auth_OpenID_ReturnToMatches extends PHPUnit_Framework_TestCase {
- function test_noEntries()
- {
- $this->assertFalse(Auth_OpenID_returnToMatches(array(), 'anything'));
- }
-
- function test_exactMatch()
- {
- $r = 'http://example.com/return.to';
- $this->assertTrue(Auth_OpenID_returnToMatches(array($r), $r));
- }
-
- function test_garbageMatch()
- {
- $r = 'http://example.com/return.to';
- $this->assertTrue(Auth_OpenID_returnToMatches(
- array('This is not a URL at all. In fact, it has characters, ' .
- 'like "<" that are not allowed in URLs', $r), $r));
- }
-
- function test_descendant()
- {
- $r = 'http://example.com/return.to';
- $this->assertTrue(Auth_OpenID_returnToMatches(array($r),
- 'http://example.com/return.to/user:joe'));
- }
-
- function test_wildcard()
- {
- $this->assertFalse(Auth_OpenID_returnToMatches(
- array('http://*.example.com/return.to'),
- 'http://example.com/return.to'));
- }
-
- function test_noMatch()
- {
- $r = 'http://example.com/return.to';
- $this->assertFalse(Auth_OpenID_returnToMatches(array($r),
- 'http://example.com/xss_exploit'));
- }
-}
-
-class Verifier {
- function Verifier($test_case, $return_to)
- {
- $this->tc =& $test_case;
- $this->return_to = $return_to;
- }
-
- function verify($disco_url)
- {
- $this->tc->assertEquals('http://www.example.com/', $disco_url);
-
- if ($this->return_to === false) {
- return false;
- } else {
- return array($this->return_to);
- }
- }
-}
-
-class Tests_Auth_OpenID_VerifyReturnTo extends PHPUnit_Framework_TestCase {
-
- function test_bogusRealm()
- {
- $this->assertFalse(Auth_OpenID_verifyReturnTo('', 'http://example.com/', null));
- }
-
- function test_verifyWithDiscoveryCalled()
- {
- $realm = 'http://*.example.com/';
- $return_to = 'http://www.example.com/foo';
-
- $v = new Verifier($this, $return_to);
-
- $this->assertTrue(Auth_OpenID_verifyReturnTo($realm, $return_to, null, array($v, 'verify')));
- }
-
- function test_verifyFailWithDiscoveryCalled()
- {
- $realm = 'http://*.example.com/';
- $return_to = 'http://www.example.com/foo';
-
- $v = new Verifier($this, 'http://something-else.invalid/');
-
- $this->assertFalse(Auth_OpenID_verifyReturnTo($realm, $return_to, null, array($v, 'verify')));
- }
-
- function test_verifyFailIfDiscoveryRedirects()
- {
- $realm = 'http://*.example.com/';
- $return_to = 'http://www.example.com/foo';
-
- $v = new Verifier($this, false);
-
- $this->assertFalse(Auth_OpenID_verifyReturnTo($realm, $return_to, null, array($v, 'verify')));
- }
-}
-
-class Tests_Auth_OpenID_RPVerify extends PHPUnit_Framework_TestSuite {
- function getName()
- {
- return "Tests_Auth_OpenID_RPVerify";
- }
-
- function Tests_Auth_OpenID_RPVerify()
- {
- $this->addTestSuite('Tests_Auth_OpenID_VerifyReturnTo');
- $this->addTestSuite('Tests_Auth_OpenID_ReturnToMatches');
- $this->addTestSuite('Tests_Auth_OpenID_ExtractReturnToURLs');
- $this->addTestSuite('Tests_Auth_OpenID_BuildDiscoveryURL');
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/SReg.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/SReg.php
deleted file mode 100644
index db5cd5183..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/SReg.php
+++ /dev/null
@@ -1,672 +0,0 @@
-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');
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Server.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Server.php
deleted file mode 100644
index d5dea91a5..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Server.php
+++ /dev/null
@@ -1,2463 +0,0 @@
-init("1423261515703355186607439952816216983770".
- "5735494988446894302176757360889904836136".
- "0422513557553514790045512299468953431585".
- "3008125488594198571710943663581589034331".
- "6791551733211386105974742540867014420109".
- "9811846875730766487278261498262568348338".
- "4764372005569983660877797099908075182915".
- "81860338635288400119293970087"
- );
- }
-
- return $num;
-}
-
-global $ALT_GEN;
-$ALT_GEN = 5;
-
-function arrayToString($arr)
-{
- $s = "Array(";
-
- $parts = array();
- foreach ($arr as $k => $v) {
- if (is_array($v)) {
- $v = arrayToString($v);
- }
- $parts[] = sprintf("%s => %s", $k, $v);
- }
-
- $s .= implode(", ", $parts);
- $s .= ")";
-
- return $s;
-}
-
-function _Auth_OpenID_NotAuthorized()
-{
- return false;
-}
-
-class Tests_Auth_OpenID_Test_ServerError extends PHPUnit_Framework_TestCase {
- function test_browserWithReturnTo()
- {
- $return_to = "http://rp.unittest/consumer";
- // will be a ProtocolError raised by Decode or CheckIDRequest.answer
- $args = array(
- 'openid.mode' => 'monkeydance',
- 'openid.identity' => 'http://wagu.unittest/',
- 'openid.return_to' => $return_to);
-
- $e = new Auth_OpenID_ServerError(
- Auth_OpenID_Message::fromPostArgs($args),
- "plucky");
-
- $this->assertTrue($e->hasReturnTo());
- $expected_args = array(
- 'openid.mode' => 'error',
- 'openid.error' => 'plucky');
-
- $encoded = $e->encodeToURL();
- if (Auth_OpenID_isError($encoded)) {
- $this->fail($encoded->toString());
- return;
- }
-
- list($rt_base, $_result_args) = explode("?", $e->encodeToURL(), 2);
- $result_args = Auth_OpenID::getQuery($_result_args);
-
- $this->assertEquals($result_args, $expected_args);
- }
-
- function test_browserWithReturnTo_OpenID2_GET()
- {
- $return_to = "http://rp.unittest/consumer";
- // will be a ProtocolError raised by Decode or
- // CheckIDRequest.answer
- $args = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'monkeydance',
- 'openid.identity' => 'http://wagu.unittest/',
- 'openid.claimed_id' => 'http://wagu.unittest/',
- 'openid.return_to' => $return_to));
-
- $e = new Auth_OpenID_ServerError($args, "plucky");
- $this->assertTrue($e->hasReturnTo());
- $expected_args = array('openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'error',
- 'openid.error' => 'plucky');
-
- list($rt_base, $result_args_s) = explode('?', $e->encodeToURL(), 2);
- $result_args = Auth_OpenID::parse_str($result_args_s);
-
- $this->assertEquals($result_args, $expected_args);
- }
-
- function test_browserWithReturnTo_OpenID2_POST()
- {
- $return_to = "http://rp.unittest/consumer" . str_repeat('x', Auth_OpenID_OPENID1_URL_LIMIT);
- // will be a ProtocolError raised by Decode or
- // CheckIDRequest.answer
- $args = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'monkeydance',
- 'openid.identity' => 'http://wagu.unittest/',
- 'openid.claimed_id' => 'http://wagu.unittest/',
- 'openid.return_to' => $return_to));
-
- $e = new Auth_OpenID_ServerError($args, "plucky");
- $this->assertTrue($e->hasReturnTo());
- $expected_args = array('openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'error',
- 'openid.error' => 'plucky');
-
- $this->assertTrue($e->whichEncoding() == Auth_OpenID_ENCODE_HTML_FORM);
-
- $msg = $e->toMessage();
-
- $this->assertTrue($e->toFormMarkup() ==
- $msg->toFormMarkup($args->getArg(Auth_OpenID_OPENID_NS, 'return_to')));
- }
-
- function test_browserWithReturnTo_OpenID1_exceeds_limit()
- {
- $return_to = "http://rp.unittest/consumer" . str_repeat('x', Auth_OpenID_OPENID1_URL_LIMIT);
- // will be a ProtocolError raised by Decode or
- // CheckIDRequest.answer
- $args = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.mode' => 'monkeydance',
- 'openid.identity' => 'http://wagu.unittest/',
- 'openid.return_to' => $return_to));
-
- $this->assertTrue($args->isOpenID1());
-
- $e = new Auth_OpenID_ServerError($args, "plucky");
- $this->assertTrue($e->hasReturnTo());
- $expected_args = array('openid.mode' => 'error',
- 'openid.error' => 'plucky');
-
- $this->assertTrue($e->whichEncoding() == Auth_OpenID_ENCODE_URL);
-
- list($rt_base, $result_args_s) = explode('?', $e->encodeToURL(), 2);
- $result_args = Auth_OpenID::parse_str($result_args_s);
- $this->assertEquals($result_args, $expected_args);
- }
-
- function test_noReturnTo()
- {
- // will be a ProtocolError raised by Decode or CheckIDRequest.answer
- $args = array(
- 'openid.mode' => 'zebradance',
- 'openid.identity' => 'http://wagu.unittest/');
-
- $e = new Auth_OpenID_ServerError(
- Auth_OpenID_Message::fromPostArgs($args),
- "waffles");
-
- $this->assertFalse($e->hasReturnTo());
- $expected = "error:waffles\nmode:error\n";
- $this->assertEquals($e->encodeToKVForm(), $expected);
- }
-
- function test_noMessage()
- {
- $e = new Auth_OpenID_ServerError();
- $this->assertFalse($e->hasReturnTo());
- $this->assertEquals($e->whichEncoding(), null);
- $this->assertEquals($e->getReturnTo(), null);
- }
-}
-
-class Tests_Auth_OpenID_Test_Decode extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->id_url = "http://decoder.am.unittest/";
- $this->rt_url = "http://rp.unittest/foobot/?qux=zam";
- $this->tr_url = "http://rp.unittest/";
- $this->assoc_handle = "{assoc}{handle}";
-
- $this->claimed_id = 'http://de.legating.de.coder.unittest/';
- $this->op_endpoint = 'http://endpoint.unittest/encode';
-
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->server = new Auth_OpenID_Server($this->store,
- $this->op_endpoint);
- $this->decoder = new Auth_OpenID_Decoder($this->server);
- }
-
- function test_none()
- {
- $args = array();
- $r = $this->decoder->decode($args);
- $this->assertEquals($r, null);
- }
-
- function test_irrelevant()
- {
- $args = array(
- 'pony' => 'spotted',
- 'sreg.mutant_power' => 'decaffinator');
-
- $r = $this->decoder->decode($args);
-
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
-
- function test_bad()
- {
- $args = array(
- 'openid.mode' => 'twos-compliment',
- 'openid.pants' => 'zippered');
-
- // Be sure that decoding the args returns an error.
- $result = $this->decoder->decode($args);
-
- $this->assertTrue(Auth_OpenID_isError($result));
- }
-
- function test_checkidImmediate()
- {
- $args = array(
- 'openid.mode' => 'checkid_immediate',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.trust_root' => $this->tr_url,
- # should be ignored
- 'openid.some.extension' => 'junk');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckIDRequest'));
- $this->assertEquals($r->mode, "checkid_immediate");
- $this->assertEquals($r->immediate, true);
- $this->assertEquals($r->identity, $this->id_url);
- $this->assertEquals($r->trust_root, $this->tr_url);
- $this->assertEquals($r->return_to, $this->rt_url);
- $this->assertEquals($r->assoc_handle, $this->assoc_handle);
- }
-
- function test_checkidSetup()
- {
- $args = array(
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.trust_root' => $this->tr_url);
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckIDRequest'));
- $this->assertEquals($r->mode, "checkid_setup");
- $this->assertEquals($r->immediate, false);
- $this->assertEquals($r->identity, $this->id_url);
- $this->assertEquals($r->trust_root, $this->tr_url);
- $this->assertEquals($r->return_to, $this->rt_url);
- }
-
- function test_checkidSetupOpenID2()
- {
- $args = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.claimed_id' => $this->claimed_id,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.realm' => $this->tr_url
- );
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckIDRequest'));
- $this->assertEquals($r->mode, "checkid_setup");
- $this->assertEquals($r->immediate, False);
- $this->assertEquals($r->identity, $this->id_url);
- $this->assertEquals($r->claimed_id, $this->claimed_id);
- $this->assertEquals($r->trust_root, $this->tr_url);
- $this->assertEquals($r->return_to, $this->rt_url);
- }
-
- function test_checkidSetupNoClaimedIDOpenID2()
- {
- $args = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.realm' => $this->tr_url
- );
-
- $result = $this->decoder->decode($args);
- $this->assertTrue(is_a($result, "Auth_OpenID_ServerError"));
- }
-
- function test_checkidSetupNoIdentityOpenID2()
- {
- $args = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.realm' => $this->tr_url);
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckIDRequest'));
- $this->assertEquals($r->mode, "checkid_setup");
- $this->assertEquals($r->immediate, false);
- $this->assertEquals($r->identity, null);
- $this->assertEquals($r->trust_root, $this->tr_url);
- $this->assertEquals($r->return_to, $this->rt_url);
- }
-
- function test_checkidSetupNoReturnOpenID1()
- {
- $args = array(
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.trust_root' => $this->tr_url);
-
- $result = $this->decoder->decode($args);
- if (!Auth_OpenID_isError($result)) {
- $this->fail("Expected Auth_OpenID_ServerError");
- }
- }
-
- function test_checkidSetupNoReturnOpenID2()
- {
- // Make sure an OpenID 2 request with no return_to can be
- // decoded, and make sure a response to such a request raises
- // NoReturnToError.
- $args = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.claimed_id' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.realm' => $this->tr_url);
-
- $req = $this->decoder->decode($args);
-
- $this->assertTrue(is_a($req,
- 'Auth_OpenID_CheckIDRequest'));
-
- $this->assertTrue(is_a($req->answer(false), 'Auth_OpenID_NoReturnToError'));
- $this->assertTrue(is_a($req->encodeToURL('bogus'), 'Auth_OpenID_NoReturnToError'));
- $this->assertTrue(is_a($req->getCancelURL(), 'Auth_OpenID_NoReturnToError'));
- }
-
- function test_checkidSetupRealmRequiredOpenID2()
- {
- // Make sure that an OpenID 2 request which lacks return_to
- // cannot be decoded if it lacks a realm. Spec: This value
- // (openid.realm) MUST be sent if openid.return_to is omitted.
-
- $args = array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle);
-
- $this->assertTrue(is_a($this->decoder->decode($args),
- 'Auth_OpenID_ServerError'));
- }
-
- function test_checkidSetupBadReturn()
- {
- $args = array(
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => 'not a url');
-
- $result = $this->decoder->decode($args);;
- if (Auth_OpenID_isError($result)) {
- $this->assertTrue($result->message);
- } else {
- $this->fail(sprintf("Expected ProtocolError, instead " .
- "returned with %s", gettype($result)));
- }
- }
-
- function test_checkidSetupUntrustedReturn()
- {
- $args = array(
- 'openid.mode' => 'checkid_setup',
- 'openid.identity' => $this->id_url,
- 'openid.assoc_handle' => $this->assoc_handle,
- 'openid.return_to' => $this->rt_url,
- 'openid.trust_root' => 'http://not-the-return-place.unittest/');
-
- $result = $this->decoder->decode($args);
- $this->assertTrue(is_a($result, 'Auth_OpenID_UntrustedReturnURL'));
- }
-
- function test_checkAuth()
- {
- $args = array(
- 'openid.mode' => 'check_authentication',
- 'openid.assoc_handle' => '{dumb}{handle}',
- 'openid.sig' => 'sigblob',
- 'openid.signed' => 'foo,bar,mode',
- 'openid.foo' => 'signedval1',
- 'openid.bar' => 'signedval2',
- 'openid.baz' => 'unsigned');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckAuthRequest'));
- $this->assertEquals($r->mode, 'check_authentication');
- $this->assertEquals($r->sig, 'sigblob');
- }
-
- function test_checkAuthMissingSignature()
- {
- $args = array(
- 'openid.mode' => 'check_authentication',
- 'openid.assoc_handle' => '{dumb}{handle}',
- 'openid.signed' => 'foo,bar,mode',
- 'openid.foo' => 'signedval1',
- 'openid.bar' => 'signedval2',
- 'openid.baz' => 'unsigned');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
-
- function test_checkAuthAndInvalidate()
- {
- $args = array(
- 'openid.mode' => 'check_authentication',
- 'openid.assoc_handle' => '{dumb}{handle}',
- 'openid.invalidate_handle' => '[[SMART_handle]]',
- 'openid.sig' => 'sigblob',
- 'openid.signed' => 'foo,bar,mode',
- 'openid.foo' => 'signedval1',
- 'openid.bar' => 'signedval2',
- 'openid.baz' => 'unsigned');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_CheckAuthRequest'));
- $this->assertEquals($r->invalidate_handle, '[[SMART_handle]]');
- }
-
- function test_associateDH()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- print "(Skipping test_associateDH)";
- return;
- }
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "Rzup9265tw==");
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_AssociateRequest'));
- $this->assertEquals($r->mode, "associate");
- $this->assertEquals($r->session->session_type, "DH-SHA1");
- $this->assertEquals($r->assoc_type, "HMAC-SHA1");
- $this->assertTrue($r->session->consumer_pubkey);
- }
-
- function test_associateDHMissingKey()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- print "(Skipping test_associateDHMissingKey)";
- return;
- }
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1');
-
- // Using DH-SHA1 without supplying dh_consumer_public is an error.
- $result = $this->decoder->decode($args);
- if (!Auth_OpenID_isError($result)) {
- $this->fail(sprintf("Expected Auth_OpenID_ServerError, got %s",
- gettype($result)));
- }
- }
-
- /**
- * XXX: Cannot produce a value to break base64_decode
- function test_associateDHpubKeyNotB64()
- {
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "donkeydonkeydonkey");
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
- */
-
- function test_associateDHModGen()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- print "(Skipping test_associateDHModGen)";
- return;
- }
-
- global $ALT_GEN;
-
- // test dh with non-default but valid values for dh_modulus
- // and dh_gen
- $lib = Auth_OpenID_getMathLib();
-
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "Rzup9265tw==",
- 'openid.dh_modulus' => $lib->longToBase64(altModulus()),
- 'openid.dh_gen' => $lib->longToBase64($ALT_GEN));
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_AssociateRequest'));
- $this->assertEquals($r->mode, "associate");
- $this->assertEquals($r->session->session_type, "DH-SHA1");
- $this->assertEquals($r->assoc_type, "HMAC-SHA1");
- $this->assertTrue($lib->cmp($r->session->dh->mod, altModulus()) === 0);
- $this->assertTrue($lib->cmp($r->session->dh->gen, $ALT_GEN) === 0);
- $this->assertTrue($r->session->consumer_pubkey);
- }
-
- /**
- * XXX: Can't test invalid base64 values for mod and gen because
- * PHP's base64 decoder is much too forgiving or just plain
- * broken.
- function test_associateDHCorruptModGen()
- {
- // test dh with non-default but valid values for dh_modulus
- // and dh_gen
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "Rzup9265tw==",
- 'openid.dh_modulus' => 'pizza',
- 'openid.dh_gen' => 'gnocchi');
-
- $r = $this->decoder->decode($args);
- print_r($r);
-
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
- */
-
- function test_associateDHMissingModGen()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- print "(Skipping test_associateDHMissingModGen)";
- return;
- }
-
- // test dh with non-default but valid values for dh_modulus
- // and dh_gen
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "Rzup9265tw==",
- 'openid.dh_modulus' => 'pizza');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
-
- function test_associateWeirdSession()
- {
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.session_type' => 'FLCL6',
- 'openid.dh_consumer_public' => "YQ==\n");
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_ServerError'));
- }
-
- function test_associatePlain()
- {
- $args = array('openid.mode' => 'associate');
-
- $r = $this->decoder->decode($args);
- $this->assertTrue(is_a($r, 'Auth_OpenID_AssociateRequest'));
- $this->assertEquals($r->mode, "associate");
- $this->assertEquals($r->session->session_type, "no-encryption");
- $this->assertEquals($r->assoc_type, "HMAC-SHA1");
- }
-
- function test_nomode()
- {
- $args = array(
- 'openid.session_type' => 'DH-SHA1',
- 'openid.dh_consumer_public' => "my public keeey");
-
- $result = $this->decoder->decode($args);
- if (!Auth_OpenID_isError($result)) {
- $this->fail(sprintf("Expected Auth_OpenID_Error. Got %s",
- gettype($result)));
- }
- }
-
- function test_invalidns()
- {
- $args = array('openid.ns' => 'Tuesday',
- 'openid.mode' => 'associate');
-
- $result = $this->decoder->decode($args);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
-
- // Assert that the ProtocolError does have a Message attached
- // to it, even though the request wasn't a well-formed Message.
- $this->assertTrue($result->message);
-
- // The error message contains the bad openid.ns.
- $this->assertTrue(strpos($result->text, 'Tuesday') != -1);
- }
-}
-
-class Tests_Auth_OpenID_Test_Encode extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->encoder = new Auth_OpenID_Encoder();
- $this->encode = $this->encoder;
- $this->op_endpoint = 'http://endpoint.unittest/encode';
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->server = new Auth_OpenID_Server($this->store,
- $this->op_endpoint);
- }
-
- function encode($thing) {
- return $this->encoder->encode($thing);
- }
-
- function test_id_res_OpenID2_GET()
- {
- /* Check that when an OpenID 2 response does not exceed the
- OpenID 1 message size, a GET response (i.e., redirect) is
- issued. */
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/999',
- 'http://burr.unittest/',
- false,
- $this->server->op_endpoint);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'mode' => 'id_res',
- 'identity' => $request->identity,
- 'claimed_id' => $request->identity,
- 'return_to' => $request->return_to));
-
- $this->assertFalse($response->renderAsForm());
- $this->assertTrue($response->whichEncoding() == Auth_OpenID_ENCODE_URL);
- $webresponse = $this->encode($response);
- $this->assertTrue(array_key_exists('location', $webresponse->headers));
- }
-
- function test_id_res_OpenID2_POST()
- {
- /* Check that when an OpenID 2 response exceeds the OpenID 1
- message size, a POST response (i.e., an HTML form) is
- returned. */
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/999',
- 'http://burr.unittest/',
- false,
- $this->server->op_endpoint);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'ns' => Auth_OpenID_OPENID2_NS,
- 'mode' => 'id_res',
- 'identity' => $request->identity,
- 'claimed_id' => $request->identity,
- 'return_to' => str_repeat('x', Auth_OpenID_OPENID1_URL_LIMIT)));
-
- $this->assertTrue($response->renderAsForm());
- $this->assertTrue(strlen($response->encodeToURL()) > Auth_OpenID_OPENID1_URL_LIMIT);
- $this->assertTrue($response->whichEncoding() == Auth_OpenID_ENCODE_HTML_FORM);
- $webresponse = $this->encode($response);
- $this->assertEquals($webresponse->body, $response->toFormMarkup());
- }
-
- function test_id_res_OpenID1_exceeds_limit()
- {
- /* Check that when an OpenID 1 response exceeds the OpenID 1
- message size, a GET response is issued. Technically, this
- shouldn't be permitted by the library, but this test is in
- place to preserve the status quo for OpenID 1. */
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/999',
- 'http://burr.unittest/',
- false,
- $this->server->op_endpoint);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'id_res',
- 'identity' => $request->identity,
- 'return_to' => str_repeat('x', Auth_OpenID_OPENID1_URL_LIMIT)));
-
- $this->assertFalse($response->renderAsForm());
- $this->assertTrue(strlen($response->encodeToURL()) > Auth_OpenID_OPENID1_URL_LIMIT);
- $this->assertTrue($response->whichEncoding() == Auth_OpenID_ENCODE_URL);
- $webresponse = $this->encode($response);
- $this->assertEquals($webresponse->headers['location'], $response->encodeToURL());
- }
-
- function test_id_res()
- {
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/',
- 'http://burr.unittest/999',
- false,
- $this->server);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(
- array(
- 'mode' => 'id_res',
- 'identity' => $request->identity,
- 'return_to' => $request->return_to));
-
- $webresponse = $this->encoder->encode($response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_REDIRECT);
- $this->assertTrue(array_key_exists('location',
- $webresponse->headers));
-
- $location = $webresponse->headers['location'];
- $this->assertTrue(strpos($location, $request->return_to) === 0);
- // "%s does not start with %s" % ($location,
- // $request->return_to));
-
- $parsed = parse_url($location);
- $query = array();
- $query = Auth_OpenID::parse_str($parsed['query']);
-
- $expected = $response->fields->toPostArgs();
- $this->assertEquals($query, $expected);
- }
-
- function test_cancel()
- {
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/',
- 'http://burr.unittest/999',
- false, null,
- $this->server);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array('mode' => 'cancel'));
-
- $webresponse = $this->encoder->encode($response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_REDIRECT);
- $this->assertTrue(array_key_exists('location', $webresponse->headers));
- }
-
- function test_cancelToForm()
- {
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/999',
- 'http://burr.unittest/',
- false, null,
- $this->server);
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array('mode' => 'cancel'));
-
- $form = $response->toFormMarkup();
- $pos = strpos($form, 'http://burr.unittest/999');
- $this->assertTrue($pos !== false, var_export($pos, true));
- }
-
- function test_assocReply()
- {
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $message = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $message->setArg(Auth_OpenID_OPENID2_NS, 'session_type',
- 'no-encryption');
- $request = Auth_OpenID_AssociateRequest::fromMessage($message,
- $this->server);
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(
- array('assoc_handle' => "every-zig"));
- $webresponse = $this->encoder->encode($response);
- $body = "assoc_handle:every-zig\n";
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_OK);
- $this->assertEquals($webresponse->headers, array());
- $this->assertEquals($webresponse->body, $body);
- }
- }
-
- function test_checkauthReply()
- {
- $request = new Auth_OpenID_CheckAuthRequest('a_sock_monkey',
- 'siggggg',
- array());
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'is_valid' => 'true',
- 'invalidate_handle' => 'xXxX:xXXx'));
-
- $body = "invalidate_handle:xXxX:xXXx\nis_valid:true\n";
- $webresponse = $this->encoder->encode($response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_OK);
- $this->assertEquals($webresponse->headers, array());
- $this->assertEquals($webresponse->body, $body);
- }
-
- function test_unencodableError()
- {
- $args = array('openid.identity' => 'http://limu.unittest/');
-
- $e = new Auth_OpenID_ServerError(Auth_OpenID_Message::fromPostArgs($args),
- "wet paint");
-
- $result = $this->encoder->encode($e);
- if (!Auth_OpenID_isError($result, 'Auth_OpenID_EncodingError')) {
- $this->fail(sprintf("Expected Auth_OpenID_ServerError, got %s",
- gettype($result)));
- }
- }
-
- function test_encodableError()
- {
- $args = array(
- 'openid.mode' => 'associate',
- 'openid.identity' => 'http://limu.unittest/');
-
- $body="error:snoot\nmode:error\n";
- $err = new Auth_OpenID_ServerError(Auth_OpenID_Message::fromPostArgs($args),
- "snoot");
-
- $webresponse = $this->encoder->encode($err);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_ERROR);
- $this->assertEquals($webresponse->headers, array());
- $this->assertEquals($webresponse->body, $body);
- }
-}
-
-class Tests_Auth_OpenID_SigningEncode extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- // Use filestore here instead of memstore
- $this->store = new Tests_Auth_OpenID_MemStore();
-
- $this->op_endpoint = 'http://endpoint.unittest/encode';
-
- $this->server = new Auth_OpenID_Server($this->store,
- $this->op_endpoint);
-
- $this->request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/',
- 'http://burr.unittest/999',
- false,
- null,
- $this->server);
-
- $this->response = new Auth_OpenID_ServerResponse($this->request);
- $this->response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'mode' => 'id_res',
- 'identity' => $this->request->identity,
- 'return_to' => $this->request->return_to));
-
- $this->signatory = new Auth_OpenID_Signatory($this->store);
- $this->dumb_key = $this->signatory->dumb_key;
- $this->normal_key = $this->signatory->normal_key;
-
- $this->encoder = new Auth_OpenID_SigningEncoder($this->signatory);
- }
-
- function test_idres()
- {
- $assoc_handle = '{bicycle}{shed}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(60, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
- $this->store->storeAssociation($this->normal_key, $assoc);
- $this->request->assoc_handle = $assoc_handle;
- $webresponse = $this->encoder->encode($this->response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_REDIRECT);
- $this->assertTrue(array_key_exists('location',
- $webresponse->headers));
-
- $location = $webresponse->headers['location'];
- $parsed = parse_url($location);
- $query = Auth_OpenID::getQuery($parsed['query']);
-
- $this->assertTrue(array_key_exists('openid.sig', $query));
- $this->assertTrue(array_key_exists('openid.assoc_handle', $query));
- $this->assertTrue(array_key_exists('openid.signed', $query));
- }
-
- function test_idresDumb()
- {
- $webresponse = $this->encoder->encode($this->response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_REDIRECT);
- $this->assertTrue(array_key_exists('location', $webresponse->headers));
-
- $location = $webresponse->headers['location'];
- $parsed = parse_url($location);
- $query = Auth_OpenID::getQuery($parsed['query']);
-
- $this->assertTrue(array_key_exists('openid.sig', $query));
- $this->assertTrue(array_key_exists('openid.assoc_handle', $query));
- $this->assertTrue(array_key_exists('openid.signed', $query));
- }
-
- function test_forgotStore()
- {
- $this->encoder->signatory = null;
- $result = $this->encoder->encode($this->response);
- if (!is_a($result, 'Auth_OpenID_ServerError')) {
- $this->fail(sprintf("Expected Auth_OpenID_ServerError, got %s",
- gettype($result)));
- }
- }
-
- function test_cancel()
- {
- $request = new Auth_OpenID_CheckIDRequest(
- 'http://bombom.unittest/',
- 'http://burr.unittest/',
- 'http://burr.unittest/999',
- false,
- null,
- $this->server);
-
- $response = new Auth_OpenID_ServerResponse($request, 'cancel');
- $webresponse = $this->encoder->encode($response);
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_REDIRECT);
- $this->assertTrue(array_key_exists('location', $webresponse->headers));
- $location = $webresponse->headers['location'];
- $parsed = parse_url($location);
- $query = Auth_OpenID::getQuery($parsed['query']);
-
- $this->assertFalse(array_key_exists('openid.sig', $query));
- }
-
- function test_assocReply()
- {
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $message = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $request = Auth_OpenID_AssociateRequest::fromMessage($message,
- $this->server);
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(
- array('assoc_handle' => "every-zig"));
- $webresponse = $this->encoder->encode($response);
- $body = "assoc_handle:every-zig\n";
-
- $this->assertEquals($webresponse->code, AUTH_OPENID_HTTP_OK);
- $this->assertEquals($webresponse->headers, array());
- $this->assertEquals($webresponse->body, $body);
- }
- }
-
- function test_alreadySigned()
- {
- $this->response->fields->setArg(Auth_OpenID_OPENID_NS, 'sig', 'priorSig==');
- $result = $this->encoder->encode($this->response);
- if (!is_a($result, 'Auth_OpenID_AlreadySigned')) {
- $this->fail(sprintf("Expected Auth_OpenID_AlreadySigned " .
- "instance, got %s", gettype($result)));
- }
- }
-}
-
-class Tests_Auth_OpenID_CheckID extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
-
- $this->op_endpoint = 'http://endpoint.unittest/encode';
-
- $this->server = new Auth_OpenID_Server($this->store,
- $this->op_endpoint);
-
- $this->request = new Auth_OpenID_CheckIDRequest(
- 'http://bambam.unittest/',
- 'http://bar.unittest/999',
- 'http://bar.unittest/',
- false, null,
- $this->server);
-
- $this->request->message = new Auth_OpenID_Message(
- Auth_OpenID_OPENID2_NS);
- }
-
- function test_fromMessageClaimedIDWithoutIdentityOpenID2()
- {
- $name = 'https://example.myopenid.com';
-
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to',
- 'http://invalid:8000/rt');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'claimed_id', $name);
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage(
- $msg, $this->server);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
-
- function test_fromMessageIdentityWithoutClaimedIDOpenID2()
- {
- $name = 'https://example.myopenid.com';
-
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to',
- 'http://invalid:8000/rt');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'identity', $name);
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage(
- $msg, $this->server);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
-
- function test_fromMessageWithEmptyTrustRoot()
- {
- $return_to = 'http://does.not.matter/';
- $msg = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.assoc_handle' => '{blah}{blah}{OZivdQ==}',
- 'openid.claimed_id' => 'http://delegated.invalid/',
- 'openid.identity' => 'http://op-local.example.com/',
- 'openid.mode' => 'checkid_setup',
- 'openid.ns' => 'http://openid.net/signon/1.0',
- 'openid.return_to' => $return_to,
- 'openid.trust_root' => ''
- ));
- $result = Auth_OpenID_CheckIDRequest::fromMessage(
- $msg, $this->server);
- $this->assertEquals($return_to, $result->trust_root);
- }
-
- function test_trustRootInvalid()
- {
- $this->request->trust_root = "http://foo.unittest/17";
- $this->request->return_to = "http://foo.unittest/39";
- $this->assertFalse($this->request->trustRootValid());
- }
-
- function test_trustRootValid()
- {
- $this->request->trust_root = "http://foo.unittest/";
- $this->request->return_to = "http://foo.unittest/39";
- $this->assertTrue($this->request->trustRootValid());
- }
-
- function test_malformedTrustRoot()
- {
- $this->request->trust_root = "invalid://trust*root/";
- $this->request->return_to = "http://foo.unittest/39";
- $sentinel = 'Sentinel';
- $this->request->message = $sentinel;
-
- $result = $this->request->trustRootValid();
- $this->assertTrue(Auth_OpenID_isError($result));
- $this->assertEquals($result->message, $sentinel);
- }
-
- function _verify($trust_root, $return_to, $value)
- {
- $this->assertEquals($this->request->trust_root, $trust_root);
- $this->assertEquals($this->request->return_to, $return_to);
- return $value;
- }
-
- function _verifyTrue($trust_root, $return_to)
- {
- return $this->_verify($trust_root, $return_to, true);
- }
-
- function _verifyFalse($trust_root, $return_to)
- {
- return $this->_verify($trust_root, $return_to, false);
- }
-
- /*
- * Make sure that verifyReturnTo is calling
- * Auth_OpenID_verifyReturnTo
- */
- function test_returnToVerified_callsVerify()
- {
- // Ensure that True and False are passed through unchanged
- $this->request->verifyReturnTo = array($this, '_verifyTrue');
- $this->assertEquals(true, $this->request->returnToVerified());
-
- $this->request->verifyReturnTo = array($this, '_verifyFalse');
- $this->assertEquals(false, $this->request->returnToVerified());
- }
-
- function test_answerToInvalidRoot()
- {
- $this->request->trust_root = "http://foo.unittest/17";
- $this->request->return_to = "http://foo.unittest/39";
- $result = $this->request->answer(true);
- if (!is_a($result, 'Auth_OpenID_UntrustedReturnURL')) {
- $this->fail(sprintf("Expected Auth_OpenID_UntrustedReturnURL, " .
- "got %s", gettype($result)));
- }
- $this->assertTrue($this->request->answer(false));
- }
-
- function _expectAnswer($answer, $identity=null, $claimed_id=null)
- {
- if (is_a($answer, 'Auth_OpenID_ServerError')) {
- $this->fail("Got ServerError, expected valid response in ".$this->getName());
- return;
- }
-
- $expected_list = array(
- array('mode', 'id_res'),
- array('return_to', $this->request->return_to),
- array('op_endpoint', $this->op_endpoint));
-
- if ($identity) {
- $expected_list[] = array('identity', $identity);
-
- if ($claimed_id) {
- $expected_list[] = array('claimed_id', $claimed_id);
- } else {
- $expected_list[] = array('claimed_id', $identity);
- }
- }
-
- foreach ($expected_list as $pair) {
- list($k, $expected) = $pair;
- $actual = $answer->fields->getArg(Auth_OpenID_OPENID_NS, $k);
- $this->assertEquals($expected, $actual,
- "Got wrong value for field '".$k."'");
- }
-
- $this->assertTrue($answer->fields->hasKey(Auth_OpenID_OPENID_NS, 'response_nonce'));
- $this->assertTrue($answer->fields->getOpenIDNamespace() == Auth_OpenID_OPENID2_NS);
-
- # One for nonce, one for ns
- $this->assertEquals(count($answer->fields->toPostArgs()),
- count($expected_list) + 2);
- }
-
- function test_answerAllow()
- {
- $answer = $this->request->answer(true);
-
- if (Auth_OpenID_isError($answer)) {
- $this->fail($answer->toString());
- return;
- }
- $this->assertEquals($answer->request, $this->request);
- $this->_expectAnswer($answer, $this->request->identity);
- }
-
- function test_answerAllowDelegatedIdentity()
- {
- $this->request->claimed_id = 'http://delegating.unittest/';
- $answer = $this->request->answer(true);
- $this->_expectAnswer($answer, $this->request->identity,
- $this->request->claimed_id);
- }
-
- function test_answerAllowWithoutIdentityReally()
- {
- $this->request->identity = null;
- $answer = $this->request->answer(true);
- $this->assertEquals($answer->request, $this->request);
- $this->_expectAnswer($answer);
- }
-
- function test_answerAllowAnonymousFail()
- {
- $this->request->identity = null;
- // XXX - Check on this, I think this behavior is legal in
- // OpenID 2.0?
- // $this->failUnlessRaises(
- // ValueError, $this->request->answer, true, identity="=V");
- $this->assertTrue(is_a($this->request->answer(true, null, "=V"),
- 'Auth_OpenID_ServerError'));
- }
-
- function test_answerAllowWithIdentity()
- {
- $this->request->identity = Auth_OpenID_IDENTIFIER_SELECT;
- $selected_id = 'http://anon.unittest/9861';
- $answer = $this->request->answer(true, null, $selected_id);
- $this->_expectAnswer($answer, $selected_id);
- }
-
- function test_fromMessageWithoutTrustRoot()
- {
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);;
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to',
- 'http://real_trust_root/foo');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'identity', 'george');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'claimed_id', 'george');
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage(
- $msg, $this->server->op_endpoint);
-
- $this->assertEquals($result->trust_root,
- 'http://real_trust_root/foo');
- }
-
- function test_fromMessageWithoutTrustRootOrReturnTo()
- {
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'identity', 'george');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'claimed_id', 'george');
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage(
- $msg, $this->server);
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
-
- function test_answerAllowNoEndpointOpenID1()
- {
- $identity = 'http://bambam.unittest/';
- $reqmessage = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'identity' => $identity,
- 'trust_root' => 'http://bar.unittest/',
- 'return_to' => 'http://bar.unittest/999',
- ));
- $this->server->op_endpoint = null;
- $this->request = Auth_OpenID_CheckIDRequest::fromMessage($reqmessage, $this->server);
- $answer = $this->request->answer(true);
-
- $expected_list = array('mode' => 'id_res',
- 'return_to' => $this->request->return_to,
- 'identity' => $identity,
- );
-
- foreach ($expected_list as $k => $expected) {
- $actual = $answer->fields->getArg(Auth_OpenID_OPENID_NS, $k);
- $this->assertEquals($expected, $actual);
- }
-
- $this->assertTrue($answer->fields->hasKey(Auth_OpenID_OPENID_NS,
- 'response_nonce'));
- $this->assertTrue($answer->fields->getOpenIDNamespace(),
- Auth_OpenID_OPENID1_NS);
- $this->assertTrue(
- $answer->fields->namespaces->isImplicit(Auth_OpenID_OPENID1_NS));
-
- // One for nonce (OpenID v1 namespace is implicit)
- $this->assertEquals(count($answer->fields->toPostArgs()),
- count($expected_list) + 1,
- var_export($answer->fields->toPostArgs(), true));
- }
-
- function test_answerAllowWithDelegatedIdentityOpenID2()
- {
- // Answer an IDENTIFIER_SELECT case with a delegated
- // identifier. claimed_id delegates to selected_id here.
- $this->request->identity = Auth_OpenID_IDENTIFIER_SELECT;
- $selected_id = 'http://anon.unittest/9861';
- $claimed_id = 'http://monkeyhat.unittest/';
- $answer = $this->request->answer(true, null, $selected_id,
- $claimed_id);
- $this->_expectAnswer($answer, $selected_id, $claimed_id);
- }
-
- function test_answerAllowWithDelegatedIdentityOpenID1()
- {
- // claimed_id parameter doesn't exist in OpenID 1.
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $this->request->message = $msg;
- // claimed_id delegates to selected_id here.
- $this->request->identity = Auth_OpenID_IDENTIFIER_SELECT;
- $selected_id = 'http://anon.unittest/9861';
- $claimed_id = 'http://monkeyhat.unittest/';
-
- $result = $this->request->answer(true,
- null,
- $selected_id,
- $claimed_id);
-
- $this->assertTrue(is_a($result, "Auth_OpenID_ServerError"),
- var_export($result, true));
- }
-
- function test_answerAllowWithAnotherIdentity()
- {
- // XXX - Check on this, I think this behavior is legal is
- // OpenID 2.0?
- // $this->failUnlessRaises(ValueError, $this->request->answer, true,
- // identity="http://pebbles.unittest/");
- $result = $this->request->answer(true, null, "http://pebbles.unittest/");
- $this->assertTrue(is_a($result, "Auth_OpenID_ServerError"));
- }
-
- function test_answerAllowNoIdentityOpenID1()
- {
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $this->request->message = $msg;
- $this->request->identity = null;
- // $this->failUnlessRaises(ValueError, $this->request->answer, true,
- // identity=null);
- $result = $this->request->answer(true);
- $this->assertTrue(is_a($result, "Auth_OpenID_ServerError"));
- }
-
- function test_answerAllowForgotEndpoint()
- {
- $this->request->server->op_endpoint = null;
- $result = $this->request->answer(true);
- $this->assertTrue(is_a($result, "Auth_OpenID_ServerError"));
- }
-
- function test_checkIDWithNoIdentityOpenID1()
- {
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'trust_root', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', 'bogus');
-
- // $this->failUnlessRaises(server->ProtocolError,
- // server->CheckIDRequest->fromMessage,
- // msg, $this->server);
- $result = Auth_OpenID_CheckIDRequest::fromMessage($msg, $this->server);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
-
- function test_trustRootOpenID1()
- {
- // Ignore openid.realm in OpenID 1
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'trust_root', 'http://real_trust_root/');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'realm', 'http://fake_trust_root/');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to', 'http://real_trust_root/foo');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'identity', 'george');
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage($msg, $this->server);
-
- $this->assertTrue($result->trust_root == 'http://real_trust_root/');
- }
-
- function test_trustRootOpenID2()
- {
- // Ignore openid.trust_root in OpenID 2
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
- $msg->setArg(Auth_OpenID_OPENID_NS, 'mode', 'checkid_setup');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'realm', 'http://real_trust_root/');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'trust_root', 'http://fake_trust_root/');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'return_to', 'http://real_trust_root/foo');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'assoc_handle', 'bogus');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'identity', 'george');
- $msg->setArg(Auth_OpenID_OPENID_NS, 'claimed_id', 'george');
-
- $result = Auth_OpenID_CheckIDRequest::fromMessage($msg, $this->server);
-
- $this->assertTrue($result->trust_root == 'http://real_trust_root/');
- }
-
- function test_encodeToURL()
- {
- $server_url = 'http://openid-server.unittest/';
- $result = $this->request->encodeToURL($server_url);
-
- $this->assertFalse(is_a($result, 'Auth_OpenID_ServerError'));
-
- // How to check? How about a round-trip test.
- list($base, $result_args) = explode("?", $result, 2);
- $args = Auth_OpenID::getQuery($result_args);
- $message = Auth_OpenID_Message::fromPostArgs($args);
-
- $rebuilt_request = Auth_OpenID_CheckIDRequest::fromMessage($message,
- $this->server);
- // argh, lousy hack
- $this->assertTrue($rebuilt_request->equals($this->request));
- }
-
- function test_answerAllowNoTrustRoot()
- {
- $this->request->trust_root = null;
- $answer = $this->request->answer(true);
- $this->assertEquals($answer->request, $this->request);
- $this->_expectAnswer($answer, $this->request->identity);
- }
-
- function test_answerImmediateDenyOpenID1()
- {
- $msg = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $this->request->message = $msg;
- $this->request->namespace = $msg->getOpenIDNamespace();
- $this->request->mode = 'checkid_immediate';
- $this->request->claimed_id = 'http://claimed-id.test/';
- $this->request->immediate = true;
- $server_url = "http://setup-url.unittest/";
- $answer = $this->request->answer(false, $server_url);
-
- $this->assertEquals($answer->request, $this->request);
- $this->assertEquals(count($answer->fields->toPostArgs()), 2);
- $this->assertEquals($answer->fields->getOpenIDNamespace(),
- Auth_OpenID_OPENID1_NS);
- $this->assertTrue(
- $answer->fields->namespaces->isImplicit(Auth_OpenID_OPENID1_NS));
- $this->assertEquals($answer->fields->getArg(Auth_OpenID_OPENID_NS, 'mode'),
- 'id_res');
-
- $usu = $answer->fields->getArg(Auth_OpenID_OPENID_NS,'user_setup_url');
- $this->assertTrue(strpos($usu, $server_url) == 0);
- $expected_substr = 'openid.claimed_id=http%3A%2F%2Fclaimed-id.test%2F';
- $this->assertTrue(strpos($usu, $expected_substr), $usu);
- }
-
- function test_answerImmediateDenyOpenID2()
- {
- $this->request->mode = 'checkid_immediate';
- $this->request->immediate = true;
- $server_url = "http://setup-url.unittest/";
- $answer = $this->request->answer(false, $server_url);
-
- $this->assertEquals($answer->request, $this->request);
- $this->assertEquals(count($answer->fields->toPostArgs()), 3);
- $this->assertEquals($answer->fields->getOpenIDNamespace(),
- Auth_OpenID_OPENID2_NS);
- $this->assertEquals($answer->fields->getArg(Auth_OpenID_OPENID_NS, 'mode'),
- 'setup_needed');
- }
-
- function test_answerSetupDeny()
- {
- $answer = $this->request->answer(false);
- $this->assertEquals($answer->fields->getArgs(Auth_OpenID_OPENID_NS),
- array('mode' => 'cancel'));
- }
-
- function test_getCancelURL()
- {
- $url = $this->request->getCancelURL();
-
- $parsed = parse_url($url);
- $query = Auth_OpenID::getQuery($parsed['query']);
-
- $this->assertEquals(array('openid.mode' => 'cancel',
- 'openid.ns' => Auth_OpenID_OPENID2_NS),
- $query);
- }
-
- function test_getCancelURLimmed()
- {
- $this->request->mode = 'checkid_immediate';
- $this->request->immediate = true;
- $result = $this->request->getCancelURL();
- if (!is_a($result, 'Auth_OpenID_ServerError')) {
- $this->fail(sprintf("Expected Auth_OpenID_ServerError, got %s",
- gettype($result)));
- }
- }
-}
-
-class Tests_Auth_OpenID_CheckIDExtension extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->op_endpoint = 'http://endpoint.unittest/ext';
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->server = new Auth_OpenID_Server($this->store, $this->op_endpoint);
- $this->request = new Auth_OpenID_CheckIDRequest(
- 'http://bambam.unittest/',
- 'http://bar.unittest/',
- 'http://bar.unittest/999',
- false,
- null,
- $this->server);
-
- $this->response = new Auth_OpenID_ServerResponse($this->request);
- $this->response->fields->setArg(Auth_OpenID_OPENID_NS, 'mode', 'id_res');
- $this->response->fields->setArg(Auth_OpenID_OPENID_NS, 'blue', 'star');
- }
-
- function test_addField()
- {
- $namespace = 'something:';
- $this->response->fields->setArg($namespace, 'bright', 'potato');
- $this->assertEquals($this->response->fields->getArgs(Auth_OpenID_OPENID_NS),
- array('blue' => 'star',
- 'mode' => 'id_res'));
-
- $this->assertEquals($this->response->fields->getArgs($namespace),
- array('bright' => 'potato'));
- }
-
- function test_addFields()
- {
- $namespace = 'mi5:';
- $args = array('tangy' => 'suspenders',
- 'bravo' => 'inclusion');
-
- $this->response->fields->updateArgs($namespace, $args);
- $this->assertEquals($this->response->fields->getArgs(Auth_OpenID_OPENID_NS),
- array('blue' => 'star',
- 'mode' => 'id_res'));
- $this->assertEquals($this->response->fields->getArgs($namespace), $args);
- }
-}
-
-class _MockSignatory {
- var $isValid = true;
-
- function _MockSignatory($assoc)
- {
- $this->assocs = array($assoc);
- }
-
- function verify($assoc_handle, $message)
- {
- if (!$message->hasKey(Auth_OpenID_OPENID_NS, 'sig')) {
- return false;
- }
-
- if (in_array(array(true, $assoc_handle), $this->assocs)) {
- return $this->isValid;
- } else {
- return false;
- }
- }
-
- function getAssociation($assoc_handle, $dumb)
- {
- if (in_array(array($dumb, $assoc_handle), $this->assocs)) {
- // This isn't a valid implementation for many uses of this
- // function, mind you.
- return true;
- } else {
- return null;
- }
- }
-
- function invalidate($assoc_handle, $dumb)
- {
- if (in_array(array($dumb, $assoc_handle), $this->assocs)) {
- $i = 0;
- foreach ($this->assocs as $pair) {
- if ($pair == array($dumb, $assoc_handle)) {
- unset($this->assocs[$i]);
- break;
- }
- $i++;
- }
- }
- }
-}
-
-class Tests_Auth_OpenID_CheckAuth extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->assoc_handle = 'mooooooooo';
- $this->message = Auth_OpenID_Message::fromPostArgs(
- array('openid.sig' => 'signarture',
- 'one' => 'alpha',
- 'two' => 'beta'));
-
- $this->request = new Auth_OpenID_CheckAuthRequest(
- $this->assoc_handle, $this->message);
-
- $this->signatory = new _MockSignatory(array(true, $this->assoc_handle));
- }
-
- function test_valid()
- {
- $this->request->namespace = Auth_OpenID_OPENID1_NS;
- $r = $this->request->answer($this->signatory);
- $this->assertEquals($r->fields->getArgs(Auth_OpenID_OPENID1_NS),
- array('is_valid' => 'true'));
- $this->assertEquals($r->request, $this->request);
- }
-
- function test_invalid()
- {
- $this->request->namespace = Auth_OpenID_OPENID1_NS;
- $this->signatory->isValid = false;
- $r = $this->request->answer($this->signatory);
- $this->assertEquals($r->fields->getArgs(Auth_OpenID_OPENID1_NS),
- array('is_valid' => 'false'));
- }
-
- function test_replay()
- {
- $this->request->namespace = Auth_OpenID_OPENID1_NS;
- $r = $this->request->answer($this->signatory);
- $r = $this->request->answer($this->signatory);
- $this->assertEquals($r->fields->getArgs(Auth_OpenID_OPENID1_NS),
- array('is_valid' => 'false'));
- }
-
- function test_invalidatehandle()
- {
- $this->request->namespace = Auth_OpenID_OPENID1_NS;
- $this->request->invalidate_handle = "bogusHandle";
- $r = $this->request->answer($this->signatory);
- $this->assertEquals($r->fields->getArgs(Auth_OpenID_OPENID1_NS),
- array('is_valid' => 'true',
- 'invalidate_handle' => "bogusHandle"));
- $this->assertEquals($r->request, $this->request);
- }
-
- function test_invalidatehandleNo()
- {
- $this->request->namespace = Auth_OpenID_OPENID1_NS;
- $assoc_handle = 'goodhandle';
- $this->signatory->assocs[] = array(false, 'goodhandle');
- $this->request->invalidate_handle = $assoc_handle;
- $r = $this->request->answer($this->signatory);
- $this->assertEquals($r->fields->getArgs(Auth_OpenID_OPENID1_NS),
- array('is_valid' => 'true'));
- }
-}
-
-class Tests_Auth_OpenID_Associate extends PHPUnit_Framework_TestCase {
- // TODO: test DH with non-default values for modulus and gen.
- // (important to do because we actually had it broken for a
- // while.)
-
- function setUp()
- {
- $message = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $this->request = Auth_OpenID_AssociateRequest::fromMessage($message);
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->signatory = new Auth_OpenID_Signatory($this->store);
- }
-
- function test_dhSHA1()
- {
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $this->assoc = $this->signatory->createAssociation(false,
- 'HMAC-SHA1');
-
- $dh = new Auth_OpenID_DiffieHellman();
- $ml = Auth_OpenID_getMathLib();
-
- $cpub = $dh->public;
- $session = new Auth_OpenID_DiffieHellmanSHA1ServerSession(
- new Auth_OpenID_DiffieHellman(),
- $cpub);
-
- $this->request = new Auth_OpenID_AssociateRequest($session,
- 'HMAC-SHA1');
- $response = $this->request->answer($this->assoc);
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_type"),
- "HMAC-SHA1");
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_handle"),
- $this->assoc->handle);
-
- $this->assertFalse(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "mac_key"));
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "session_type"),
- "DH-SHA1");
-
- $this->assertTrue(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "enc_mac_key"));
-
- $this->assertTrue(
- $response->fields->getArg(Auth_OpenID_OPENID_NS,
- "dh_server_public"));
-
- $enc_key = base64_decode(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "enc_mac_key"));
-
- $spub = $ml->base64ToLong(
- $response->fields->getArg(Auth_OpenID_OPENID_NS,
- "dh_server_public"));
-
- $secret = $dh->xorSecret($spub, $enc_key, $session->hash_func);
-
- $this->assertEquals($secret, $this->assoc->secret);
- }
- }
-
- function test_dhSHA256()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT') ||
- !Auth_OpenID_SHA256_SUPPORTED) {
- print "(Skipping test_dhSHA256)";
- return;
- }
-
- $this->assoc = $this->signatory->createAssociation(false,
- 'HMAC-SHA256');
- $consumer_dh = new Auth_OpenID_DiffieHellman();
- $cpub = $consumer_dh->public;
- $server_dh = new Auth_OpenID_DiffieHellman();
- $session = new Auth_OpenID_DiffieHellmanSHA256ServerSession($server_dh, $cpub);
-
- $this->request = new Auth_OpenID_AssociateRequest($session, 'HMAC-SHA256');
- $response = $this->request->answer($this->assoc);
-
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS, "mac_key"));
- $this->assertTrue($response->fields->getArg(Auth_OpenID_OPENID_NS, "enc_mac_key"));
- $this->assertTrue($response->fields->getArg(Auth_OpenID_OPENID_NS, "dh_server_public"));
-
- $fields = array(
- 'assoc_type' => 'HMAC-SHA256',
- 'assoc_handle' => $this->assoc->handle,
- 'session_type' => 'DH-SHA256',
- );
-
- foreach ($fields as $k => $v) {
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, $k), $v);
- }
-
- $enc_key = base64_decode(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "enc_mac_key"));
-
- $lib = Auth_OpenID_getMathLib();
- $spub = $lib->base64ToLong($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "dh_server_public"));
- $secret = $consumer_dh->xorSecret($spub, $enc_key, 'Auth_OpenID_SHA256');
-
- $s = base64_encode($secret);
- $assoc_s = base64_encode($this->assoc->secret);
-
- $this->assertEquals($s, $assoc_s);
- }
-
- function test_protoError256()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT') ||
- !Auth_OpenID_HMACSHA256_SUPPORTED) {
- print "(Skipping test_protoError256)";
- return;
- }
-
- $s256_session = new Auth_OpenID_DiffieHellmanSHA256ConsumerSession();
-
- $invalid_s256 = array('openid.assoc_type' => 'HMAC-SHA1',
- 'openid.session_type' => 'DH-SHA256');
-
- $invalid_s256 = array_merge($invalid_s256, $s256_session->getRequest());
-
- $invalid_s256_2 = array('openid.assoc_type' => 'MONKEY-PIRATE',
- 'openid.session_type' => 'DH-SHA256');
-
- $invalid_s256_2 = array_merge($invalid_s256_2, $s256_session->getRequest());
-
- $bad_request_argss = array(
- $invalid_s256,
- $invalid_s256_2);
-
- foreach ($bad_request_argss as $request_args) {
- $message = Auth_OpenID_Message::fromPostArgs($request_args);
- $result = Auth_OpenID_Associaterequest::fromMessage($message);
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
- }
-
- function test_plaintext()
- {
- $this->assoc = $this->signatory->createAssociation(false,
- 'HMAC-SHA1');
- $response = $this->request->answer($this->assoc);
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_type"),
- "HMAC-SHA1");
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_handle"),
- $this->assoc->handle);
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "expires_in"),
- sprintf("%d", $this->signatory->SECRET_LIFETIME));
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "mac_key"),
- base64_encode($this->assoc->secret));
-
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "session_type"));
-
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "enc_mac_key"));
-
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "dh_server_public"));
- }
-
- function test_plaintextV2()
- {
- // The main difference between this and the v1 test is that
- // the session_typ is always returned in v2.
- $args = array('openid.mode' => 'associate',
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.assoc_type' => 'HMAC-SHA1',
- 'openid.session_type' => 'no-encryption');
-
- $this->request = Auth_OpenID_AssociateRequest::fromMessage(
- Auth_OpenID_Message::fromPostArgs($args));
- $this->assertFalse($this->request->message->isOpenID1());
-
- $this->assoc = $this->signatory->createAssociation(false,
- 'HMAC-SHA1');
- $response = $this->request->answer($this->assoc);
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_type"),
- "HMAC-SHA1");
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_handle"),
- $this->assoc->handle);
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "expires_in"),
- sprintf("%d", $this->signatory->SECRET_LIFETIME));
-
- $this->assertEquals(
- $response->fields->getArg(Auth_OpenID_OPENID_NS, "mac_key"),
- base64_encode($this->assoc->secret));
-
- $session_type = $response->fields->getArg(Auth_OpenID_OPENID_NS,
- "session_type");
- $this->assertEquals('no-encryption', $session_type);
-
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "enc_mac_key"));
- $this->assertFalse($response->fields->getArg(Auth_OpenID_OPENID_NS,
- "dh_server_public"));
- }
-
- function test_protoError()
- {
- $s1_session = new Auth_OpenID_DiffieHellmanSHA1ConsumerSession();
-
- $invalid_s1 = array('openid.assoc_type' => 'HMAC-SHA256',
- 'openid.session_type' => 'DH-SHA1');
- $invalid_s1 = array_merge($invalid_s1, $s1_session->getRequest());
-
- $invalid_s1_2 = array('openid.assoc_type' => 'ROBOT-NINJA',
- 'openid.session_type' => 'DH-SHA1');
- $invalid_s1_2 = array_merge($invalid_s1_2, $s1_session->getRequest());
-
- $bad_request_argss = array(array('openid.assoc_type' => 'Wha?'),
- $invalid_s1,
- $invalid_s1_2);
-
- foreach ($bad_request_argss as $request_args) {
- $message = Auth_OpenID_Message::fromPostArgs($request_args);
- $result = Auth_OpenID_AssociateRequest::fromMessage($message);
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
- }
-
- function test_protoErrorFields()
- {
- $contact = 'user@example.invalid';
- $reference = 'Trac ticket number MAX_INT';
- $error = 'poltergeist';
-
- $openid1_args = array(
- 'openid.identitiy' => 'invalid',
- 'openid.mode' => 'checkid_setup');
-
- $openid2_args = $openid1_args;
- $openid2_args = array_merge($openid2_args,
- array('openid.ns' => Auth_OpenID_OPENID2_NS));
-
- // Check presence of optional fields in both protocol versions
-
- $openid1_msg = Auth_OpenID_Message::fromPostArgs($openid1_args);
- $p = new Auth_OpenID_ServerError($openid1_msg, $error,
- $reference, $contact);
- $reply = $p->toMessage();
-
- $this->assertEquals($reply->getArg(Auth_OpenID_OPENID_NS, 'reference'),
- $reference);
- $this->assertEquals($reply->getArg(Auth_OpenID_OPENID_NS, 'contact'),
- $contact);
-
- $openid2_msg = Auth_OpenID_Message::fromPostArgs($openid2_args);
- $p = new Auth_OpenID_ServerError($openid2_msg, $error,
- $reference, $contact);
- $reply = $p->toMessage();
-
- $this->assertEquals($reply->getArg(Auth_OpenID_OPENID_NS, 'reference'),
- $reference);
- $this->assertEquals($reply->getArg(Auth_OpenID_OPENID_NS, 'contact'),
- $contact);
- }
-
- function failUnlessExpiresInMatches($msg, $expected_expires_in)
- {
- $expires_in_str = $msg->getArg(Auth_OpenID_OPENID_NS, 'expires_in');
- if ($expires_in_str === null) {
- $this->fail("Expected expires_in value.");
- return;
- }
-
- $expires_in = intval($expires_in_str);
-
- // Slop is necessary because the tests can sometimes get run
- // right on a second boundary
- $slop = 1; // second
- $difference = $expected_expires_in - $expires_in;
-
- $error_message = sprintf('"expires_in" value not within %s of expected: '.
- 'expected=%s, actual=%s',
- $slop, $expected_expires_in, $expires_in);
- $this->assertTrue((0 <= $difference &&
- $difference <= $slop), $error_message);
- }
-
- function test_plaintext256()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT') ||
- !Auth_OpenID_SHA256_SUPPORTED) {
- print "(Skipping test_plaintext256)";
- return;
- }
-
- $this->assoc = $this->signatory->createAssociation(false,
- 'HMAC-SHA256');
- $response = $this->request->answer($this->assoc);
- $f = $response->fields;
-
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, "assoc_type"),
- "HMAC-SHA1");
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, "assoc_handle"),
- $this->assoc->handle);
-
- $this->failUnlessExpiresInMatches(
- $f,
- $this->signatory->SECRET_LIFETIME);
-
- $this->assertEquals(
- $f->getArg(Auth_OpenID_OPENID_NS, "mac_key"),
- base64_encode($this->assoc->secret));
- $this->assertFalse($f->hasKey(Auth_OpenID_OPENID_NS, "session_type"));
- $this->assertFalse($f->hasKey(Auth_OpenID_OPENID_NS, "enc_mac_key"));
- $this->assertFalse($f->hasKey(Auth_OpenID_OPENID_NS, "dh_server_public"));
- }
-
- function test_unsupportedPrefer()
- {
- $allowed_assoc = 'COLD-PET-RAT';
- $allowed_sess = 'FROG-BONES';
- $message = 'This is a unit test';
-
- // Set an OpenID 2 message so answerUnsupported doesn't raise
- // ProtocolError.
- $this->request->message = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
-
- $response = $this->request->answerUnsupported(
- $message,
- $allowed_assoc,
- $allowed_sess);
- $f = $response->fields;
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'error_code'),
- 'unsupported-type');
-
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'assoc_type'),
- $allowed_assoc);
-
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'error'),
- $message);
-
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'session_type'),
- $allowed_sess);
- }
-
- function test_unsupported()
- {
- $message = 'This is a unit test';
-
- $this->request->message = new Auth_OpenID_Message(Auth_OpenID_OPENID2_NS);
-
- $response = $this->request->answerUnsupported($message);
-
- $f = $response->fields;
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'error_code'),
- 'unsupported-type');
-
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'assoc_type'), null);
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'error'), $message);
- $this->assertEquals($f->getArg(Auth_OpenID_OPENID_NS, 'session_type'), null);
- }
-}
-
-class Counter {
- function Counter()
- {
- $this->count = 0;
- }
-
- function inc()
- {
- $this->count += 1;
- }
-}
-
-class Tests_Auth_OpenID_ServerTest extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->server = new Auth_OpenID_Server($this->store);
- }
-
- function test_associate()
- {
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $message = new Auth_OpenID_Message(Auth_OpenID_OPENID1_NS);
- $request = Auth_OpenID_AssociateRequest::fromMessage($message);
- $response = $this->server->openid_associate($request);
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS,
- 'assoc_handle'));
- }
- }
-
- function test_associate2()
- {
- // Associate when the server has no allowed association types
- //
- // Gives back an error with error_code and no fallback session
- // or assoc types.
- $this->server->negotiator->setAllowedTypes(array());
-
- $msg = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.session_type' => 'no-encryption'));
-
- $request = Auth_OpenID_AssociateRequest::fromMessage($msg);
-
- $response = $this->server->openid_associate($request);
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, "error"));
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, "error_code"));
- $this->assertFalse($response->fields->hasKey(Auth_OpenID_OPENID_NS, "assoc_handle"));
- $this->assertFalse($response->fields->hasKey(Auth_OpenID_OPENID_NS, "assoc_type"));
- $this->assertFalse($response->fields->hasKey(Auth_OpenID_OPENID_NS, "session_type"));
- }
-
- function test_associate3()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT') ||
- !Auth_OpenID_HMACSHA256_SUPPORTED) {
- print "(Skipping test_associate3)";
- return;
- }
-
- // Request an assoc type that is not supported when there are
- // supported types.
- //
- // Should give back an error message with a fallback type.
- $this->server->negotiator->setAllowedTypes(array(array('HMAC-SHA256', 'DH-SHA256')));
-
- $msg = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.ns' => Auth_OpenID_OPENID2_NS,
- 'openid.session_type' => 'no-encryption'));
-
- $request = Auth_OpenID_AssociateRequest::fromMessage($msg);
- $response = $this->server->openid_associate($request);
-
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, "error"));
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, "error_code"));
- $this->assertFalse($response->fields->hasKey(Auth_OpenID_OPENID_NS, "assoc_handle"));
- $this->assertEquals($response->fields->getArg(Auth_OpenID_OPENID_NS, "assoc_type"),
- 'HMAC-SHA256');
- $this->assertEquals($response->fields->getArg(Auth_OpenID_OPENID_NS, "session_type"),
- 'DH-SHA256');
- }
-
- function test_associate4()
- {
- if (defined('Auth_OpenID_NO_MATH_SUPPORT') ||
- !Auth_OpenID_HMACSHA256_SUPPORTED) {
- print "(Skipping test_associate4)";
- return;
- }
-
- $this->assertTrue($this->server->negotiator->setAllowedTypes(
- array(array('HMAC-SHA256', 'DH-SHA256'))));
-
- $query = array(
- 'openid.dh_consumer_public' =>
- 'ALZgnx8N5Lgd7pCj8K86T/DDMFjJXSss1SKoLmxE72kJTzOtG6I2PaYrHX'.
- 'xku4jMQWSsGfLJxwCZ6280uYjUST/9NWmuAfcrBfmDHIBc3H8xh6RBnlXJ'.
- '1WxJY3jHd5k1/ZReyRZOxZTKdF/dnIqwF8ZXUwI6peV0TyS/K1fOfF/s',
- 'openid.assoc_type' => 'HMAC-SHA256',
- 'openid.session_type' => 'DH-SHA256');
-
- $message = Auth_OpenID_Message::fromPostArgs($query);
- $request = Auth_OpenID_AssociateRequest::fromMessage($message);
- $response = $this->server->openid_associate($request);
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, "assoc_handle"));
- }
-
- function test_missingSessionTypeOpenID2()
- {
- // Make sure session_type is required in OpenID 2
- $msg = Auth_OpenID_Message::fromPostArgs(array('openid.ns' => Auth_OpenID_OPENID2_NS));
-
- $result = Auth_OpenID_AssociateRequest::fromMessage($msg);
-
- $this->assertTrue(is_a($result, 'Auth_OpenID_ServerError'));
- }
-
- function test_checkAuth()
- {
- $request = new Auth_OpenID_CheckAuthRequest('arrrrrf',
- '0x3999', array());
-
- $response = $this->server->openid_check_authentication($request);
- $this->assertTrue($response->fields->hasKey(Auth_OpenID_OPENID_NS, 'is_valid'));
- }
-}
-
-class Tests_Auth_OpenID_Signatory extends PHPUnit_Framework_TestCase {
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $this->signatory = new Auth_OpenID_Signatory($this->store);
- $this->dumb_key = $this->signatory->dumb_key;
- $this->normal_key = $this->signatory->normal_key;
- }
-
- function test_sign()
- {
- $request = new Auth_OpenID_ServerRequest();
- $request->namespace = Auth_OpenID_OPENID1_NS;
-
- $assoc_handle = '{assoc}{lookatme}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(60, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
- $this->store->storeAssociation($this->normal_key, $assoc);
- $request->assoc_handle = $assoc_handle;
- $request->namespace = Auth_OpenID_OPENID1_NS;
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'foo' => 'amsigned',
- 'bar' => 'notsigned',
- 'azu' => 'alsosigned'));
-
- $sresponse = $this->signatory->sign($response);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'assoc_handle'),
- $assoc_handle);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS, 'signed'),
- 'assoc_handle,azu,bar,foo,signed');
-
- $this->assertTrue($sresponse->fields->hasKey(Auth_OpenID_OPENID_NS, 'sig'));
- }
-
- function test_signDumb()
- {
- $request = new Auth_OpenID_ServerRequest();
- $request->assoc_handle = null;
- $request->namespace = Auth_OpenID_OPENID1_NS;
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'foo' => 'amsigned',
- 'bar' => 'notsigned',
- 'azu' => 'alsosigned'));
-
- $sresponse = $this->signatory->sign($response);
-
- $assoc_handle = $sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'assoc_handle');
-
- $this->assertTrue($assoc_handle);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
-
- $this->assertTrue($assoc);
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS, 'signed'),
- 'assoc_handle,azu,bar,foo,signed');
- $this->assertTrue($sresponse->fields->hasKey(Auth_OpenID_OPENID_NS, 'sig'));
- }
-
- function test_signExpired()
- {
- $request = new Auth_OpenID_ServerRequest();
- $assoc_handle = '{assoc}{lookatme}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(-10, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
- $this->store->storeAssociation($this->normal_key, $assoc);
- $this->assertTrue($this->store->getAssociation($this->normal_key,
- $assoc_handle));
-
- $request->assoc_handle = $assoc_handle;
- $request->namespace = Auth_OpenID_OPENID1_NS;
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'foo' => 'amsigned',
- 'bar' => 'notsigned',
- 'azu' => 'alsosigned'));
-
- $sresponse = $this->signatory->sign($response);
-
- $new_assoc_handle = $sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'assoc_handle');
- $this->assertTrue($new_assoc_handle);
- $this->assertFalse($new_assoc_handle == $assoc_handle);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'invalidate_handle'),
- $assoc_handle);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'signed'),
- 'assoc_handle,azu,bar,foo,invalidate_handle,signed');
- $this->assertTrue($sresponse->fields->hasKey(Auth_OpenID_OPENID_NS,
- 'sig'));
-
- // make sure the expired association is gone
- $this->assertFalse($this->store->getAssociation($this->normal_key,
- $assoc_handle));
-
- // make sure the new key is a dumb mode association
- $this->assertTrue($this->store->getAssociation($this->dumb_key,
- $new_assoc_handle));
-
- $this->assertFalse($this->store->getAssociation($this->normal_key,
- $new_assoc_handle));
- }
-
- function test_signInvalidHandle()
- {
- $request = new Auth_OpenID_ServerRequest();
- $assoc_handle = '{bogus-assoc}{notvalid}';
-
- $request->assoc_handle = $assoc_handle;
- $request->namespace = Auth_OpenID_OPENID1_NS;
-
- $response = new Auth_OpenID_ServerResponse($request);
- $response->fields = Auth_OpenID_Message::fromOpenIDArgs(array(
- 'foo' => 'amsigned',
- 'bar' => 'notsigned',
- 'azu' => 'alsosigned'));
-
- $response->signed = array('foo', 'azu');
- $sresponse = $this->signatory->sign($response);
-
- $new_assoc_handle = $sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'assoc_handle');
-
- $this->assertTrue($new_assoc_handle);
- $this->assertFalse($new_assoc_handle == $assoc_handle);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'invalidate_handle'),
- $assoc_handle);
-
- $this->assertEquals($sresponse->fields->getArg(Auth_OpenID_OPENID_NS,
- 'signed'),
- 'assoc_handle,azu,bar,foo,invalidate_handle,signed');
- $this->assertTrue($sresponse->fields->hasKey(Auth_OpenID_OPENID_NS,
- 'sig'));
-
- // make sure the new key is a dumb mode association
- $this->assertTrue($this->store->getAssociation($this->dumb_key,
- $new_assoc_handle));
-
- $this->assertFalse($this->store->getAssociation($this->normal_key,
- $new_assoc_handle));
- }
-
- function test_verify()
- {
- $assoc_handle = '{vroom}{zoom}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(60, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
-
- $this->store->storeAssociation($this->dumb_key, $assoc);
-
- $signed = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.foo' => 'bar',
- 'openid.apple' => 'orange',
- 'openid.assoc_handle' => $assoc_handle,
- 'openid.signed' => 'apple,assoc_handle,foo,signed',
- 'openid.sig' => 'uXoT1qm62/BB09Xbj98TQ8mlBco='));
-
- $verified = $this->signatory->verify($assoc_handle, $signed);
- $this->assertTrue($verified);
- }
-
- function test_verifyBadSig()
- {
- $assoc_handle = '{vroom}{zoom}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(60, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
-
- $this->store->storeAssociation($this->dumb_key, $assoc);
-
- $signed = Auth_OpenID_Message::fromPostArgs(array(
- 'openid.foo' => 'bar',
- 'openid.apple' => 'orange',
- 'openid.assoc_handle' => $assoc_handle,
- 'openid.signed' => 'apple,assoc_handle,foo,signed',
- 'openid.sig' => str_rot13('uXoT1qm62/BB09Xbj98TQ8mlBco=')));
-
- $verified = $this->signatory->verify($assoc_handle, $signed);
-
- $this->assertFalse($verified);
- }
-
- function test_verifyBadHandle()
- {
- $assoc_handle = '{vroom}{zoom}';
- $signed = Auth_OpenID_Message::fromPostArgs(
- array('foo' => 'bar',
- 'apple' => 'orange',
- 'openid.sig' => "Ylu0KcIR7PvNegB/K41KpnRgJl0="));
-
- $verified = $this->signatory->verify($assoc_handle, $signed);
- $this->assertFalse($verified);
- }
-
- function test_verifyAssocMismatch()
- {
- // Attempt to validate sign-all message with a signed-list
- // assoc.
- $assoc_handle = '{vroom}{zoom}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(
- 60, $assoc_handle, 'sekrit', 'HMAC-SHA1');
-
- $this->store->storeAssociation($this->dumb_key, $assoc);
-
- $signed = Auth_OpenID_Message::fromPostArgs(array(
- 'foo' => 'bar',
- 'apple' => 'orange',
- 'openid.sig' => "d71xlHtqnq98DonoSgoK/nD+QRM="
- ));
-
- $verified = $this->signatory->verify($assoc_handle, $signed);
- $this->assertFalse($verified);
- }
-
- function test_getAssoc()
- {
- $assoc_handle = $this->makeAssoc(true);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
- $this->assertTrue($assoc);
- $this->assertEquals($assoc->handle, $assoc_handle);
- }
-
- function test_getAssocExpired()
- {
- $assoc_handle = $this->makeAssoc(true, -10);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
- $this->assertFalse($assoc);
- }
-
- function test_getAssocInvalid()
- {
- $ah = 'no-such-handle';
- $this->assertEquals(
- $this->signatory->getAssociation($ah, false), null);
- }
-
- function test_getAssocDumbVsNormal()
- {
- $assoc_handle = $this->makeAssoc(true);
- $this->assertEquals(
- $this->signatory->getAssociation($assoc_handle, false), null);
- }
-
- function test_createAssociation()
- {
- $assoc = $this->signatory->createAssociation(false);
- $this->assertTrue($this->signatory->getAssociation($assoc->handle,
- false));
- }
-
- function makeAssoc($dumb, $lifetime = 60)
- {
- $assoc_handle = '{bling}';
- $assoc = Auth_OpenID_Association::fromExpiresIn(
- $lifetime, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
-
- $this->store->storeAssociation((($dumb) ? $this->dumb_key :
- $this->normal_key), $assoc);
- return $assoc_handle;
- }
-
- function test_invalidate()
- {
- $assoc_handle = '-squash-';
- $assoc = Auth_OpenID_Association::fromExpiresIn(60, $assoc_handle,
- 'sekrit', 'HMAC-SHA1');
-
- $this->store->storeAssociation($this->dumb_key, $assoc);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
- $this->assertTrue($assoc);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
- $this->assertTrue($assoc);
- $this->signatory->invalidate($assoc_handle, true);
- $assoc = $this->signatory->getAssociation($assoc_handle, true);
- $this->assertFalse($assoc);
- }
-}
-
-class Tests_Auth_OpenID_Server extends PHPUnit_Framework_TestSuite {
-
- function getName()
- {
- return "Tests_Auth_OpenID_Server";
- }
-
- function Tests_Auth_OpenID_Server()
- {
- $this->addTestSuite('Tests_Auth_OpenID_Signatory');
- $this->addTestSuite('Tests_Auth_OpenID_ServerTest');
- if (!defined('Auth_OpenID_NO_MATH_SUPPORT')) {
- $this->addTestSuite('Tests_Auth_OpenID_Associate');
- }
- $this->addTestSuite('Tests_Auth_OpenID_CheckAuth');
- $this->addTestSuite('Tests_Auth_OpenID_CheckIDExtension');
- $this->addTestSuite('Tests_Auth_OpenID_CheckAuth');
- $this->addTestSuite('Tests_Auth_OpenID_SigningEncode');
- $this->addTestSuite('Tests_Auth_OpenID_Test_Encode');
- $this->addTestSuite('Tests_Auth_OpenID_Test_Decode');
- $this->addTestSuite('Tests_Auth_OpenID_Test_ServerError');
- $this->addTestSuite('Tests_Auth_OpenID_CheckID');
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/StoreTest.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/StoreTest.php
deleted file mode 100644
index 7c50e2fda..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/StoreTest.php
+++ /dev/null
@@ -1,755 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-/**
- * Require classes and functions to run the Store tests.
- */
-require_once 'Auth/OpenID/Association.php';
-require_once 'Auth/OpenID/CryptUtil.php';
-require_once 'Auth/OpenID/Nonce.php';
-require_once 'Auth/OpenID.php';
-
-function _Auth_OpenID_mkdtemp()
-{
- if (strpos(PHP_OS, 'WIN') === 0) {
- $dir = $_ENV['TMP'];
- if (!isset($dir)) {
- $dir = 'C:\Windows\Temp';
- }
- } else {
- $dir = @$_ENV['TMPDIR'];
- if (!isset($dir)) {
- $dir = '/tmp';
- }
- }
-
- return Auth_OpenID_FileStore::_mkdtemp($dir);
-}
-
-/**
- * This is the host where the SQL stores' databases should be created
- * and destroyed.
- */
-global $_Auth_OpenID_db_test_host;
-$_Auth_OpenID_db_test_host = 'dbtest';
-
-/**
- * Generate a sufficently unique database name so many hosts can run
- * SQL store tests on the server at the same time and not step on each
- * other.
- */
-function _Auth_OpenID_getTmpDbName()
-{
- $hostname = php_uname('n');
- $hostname = str_replace('.', '_', $hostname);
- $hostname = str_replace('-', '_', $hostname);
- $hostname = strtolower($hostname);
-
- return sprintf("%s_%d_%s_openid_test",
- $hostname,
- getmypid(),
- strval(rand(1, time())));
-}
-
-/**
- * Superclass that has methods for testing OpenID stores. Subclass this to
- * test your own store implementation.
- *
- * @package OpenID
- */
-class Tests_Auth_OpenID_Store extends PHPUnit_Framework_TestCase {
-
- function pass() {}
-
- /**
- * Prepares for the SQL store tests.
- */
- function setUp()
- {
- $this->letters = Auth_OpenID_letters;
- $this->digits = Auth_OpenID_digits;
- $this->punct = Auth_OpenID_punct;
- $this->allowed_nonce = $this->letters . $this->digits;
- $this->allowed_handle = $this->letters . $this->digits . $this->punct;
- }
-
- /**
- * Generates an association with the specified parameters.
- */
- function genAssoc($now, $issued = 0, $lifetime = 600)
- {
- $sec = Auth_OpenID_CryptUtil::randomString(20);
- $hdl = Auth_OpenID_CryptUtil::randomString(128, $this->allowed_handle);
- return new Auth_OpenID_Association($hdl, $sec, $now + $issued,
- $lifetime, 'HMAC-SHA1');
- }
-
- /**
- * @access private
- */
- function _checkRetrieve($store, $url, $handle, $expected, $name = null)
- {
- $retrieved_assoc = $store->getAssociation($url, $handle);
- if ($expected === null) {
- $this->assertTrue($retrieved_assoc === null);
- } else {
- $this->assertTrue($expected->equal($retrieved_assoc), $name);
- }
- }
-
- function _checkRemove($store, $url, $handle, $expected, $name = null)
- {
- $present = $store->removeAssociation($url, $handle);
- $this->assertTrue((!$expected && !$present) ||
- ($expected && $present),
- $name);
- }
-
- /**
- * Make sure a given store has a minimum of API compliance. Call
- * this function with an empty store.
- *
- * Raises AssertionError if the store does not work as expected.
- *
- * OpenIDStore -> NoneType
- */
- function _testStore($store)
- {
- // Association functions
- $now = time();
-
- $server_url = 'http://www.myopenid.com/openid';
-
- $assoc = $this->genAssoc($now);
-
- $this->_checkRetrieve($store, $server_url, null, null,
- 'Make sure that a missing association returns no result');
-
- $store->storeAssociation($server_url, $assoc);
- $this->_checkRetrieve($store, $server_url, null, $assoc,
- 'Check that after storage, getting returns the same result');
-
- $this->_checkRetrieve($store, $server_url, null, $assoc,
- 'more than once');
-
- $store->storeAssociation($server_url, $assoc);
- $this->_checkRetrieve($store, $server_url, null, $assoc,
- 'Storing more than once has no ill effect');
-
- // Removing an association that does not exist returns not present
- $this->_checkRemove($store, $server_url, $assoc->handle . 'x', false,
- "Remove nonexistent association (1)");
-
- // Removing an association that does not exist returns not present
- $this->_checkRemove($store, $server_url . 'x', $assoc->handle, false,
- "Remove nonexistent association (2)");
-
- // Removing an association that is present returns present
- $this->_checkRemove($store, $server_url, $assoc->handle, true,
- "Remove existent association");
-
- // but not present on subsequent calls
- $this->_checkRemove($store, $server_url, $assoc->handle, false,
- "Remove nonexistent association after removal");
-
- // Put assoc back in the store
- $store->storeAssociation($server_url, $assoc);
-
- // More recent and expires after assoc
- $assoc2 = $this->genAssoc($now, $issued = 1);
- $store->storeAssociation($server_url, $assoc2);
-
- $this->_checkRetrieve($store, $server_url, null, $assoc2,
- 'After storing an association with a different handle, but the
-same $server_url, the handle with the later expiration is
-returned.');
-
- $this->_checkRetrieve($store, $server_url, $assoc->handle, $assoc,
- 'We can still retrieve the older association');
-
- $this->_checkRetrieve($store, $server_url, $assoc2->handle, $assoc2,
- 'Plus we can retrieve the association with the later expiration
-explicitly');
-
- $assoc3 = $this->genAssoc($now, $issued = 2, $lifetime = 100);
- $store->storeAssociation($server_url, $assoc3);
-
- // More recent issued time, so assoc3 is expected.
- $this->_checkRetrieve($store, $server_url, null, $assoc3, "(1)");
-
- $this->_checkRetrieve($store, $server_url, $assoc->handle,
- $assoc, "(2)");
-
- $this->_checkRetrieve($store, $server_url, $assoc2->handle,
- $assoc2, "(3)");
-
- $this->_checkRetrieve($store, $server_url, $assoc3->handle,
- $assoc3, "(4)");
-
- $this->_checkRemove($store, $server_url, $assoc2->handle, true, "(5)");
-
- $this->_checkRetrieve($store, $server_url, null, $assoc3, "(6)");
-
- $this->_checkRetrieve($store, $server_url, $assoc->handle,
- $assoc, "(7)");
-
- $this->_checkRetrieve($store, $server_url, $assoc2->handle,
- null, "(8)");
-
- $this->_checkRetrieve($store, $server_url, $assoc3->handle,
- $assoc3, "(9)");
-
- $this->_checkRemove($store, $server_url, $assoc2->handle,
- false, "(10)");
-
- $this->_checkRemove($store, $server_url, $assoc3->handle,
- true, "(11)");
-
- $this->_checkRetrieve($store, $server_url, null, $assoc, "(12)");
-
- $this->_checkRetrieve($store, $server_url, $assoc->handle,
- $assoc, "(13)");
-
- $this->_checkRetrieve($store, $server_url, $assoc2->handle,
- null, "(14)");
-
- $this->_checkRetrieve($store, $server_url, $assoc3->handle,
- null, "(15)");
-
- $this->_checkRemove($store, $server_url, $assoc2->handle,
- false, "(16)");
-
- $this->_checkRemove($store, $server_url, $assoc->handle,
- true, "(17)");
-
- $this->_checkRemove($store, $server_url, $assoc3->handle,
- false, "(18)");
-
- $this->_checkRetrieve($store, $server_url, null, null, "(19)");
-
- $this->_checkRetrieve($store, $server_url, $assoc->handle,
- null, "(20)");
-
- $this->_checkRetrieve($store, $server_url, $assoc2->handle,
- null, "(21)");
-
- $this->_checkRetrieve($store, $server_url,$assoc3->handle,
- null, "(22)");
-
- $this->_checkRemove($store, $server_url, $assoc2->handle,
- false, "(23)");
-
- $this->_checkRemove($store, $server_url, $assoc->handle,
- false, "(24)");
-
- $this->_checkRemove($store, $server_url, $assoc3->handle,
- false, "(25)");
-
- // Put associations into store, for two different server URLs
- $assoc1 = $this->genAssoc($now);
- $assoc2 = $this->genAssoc($now + 2);
- $server_url1 = "http://one.example.com/one";
- $server_url2 = "http://two.localhost.localdomain/two";
-
- $store->storeAssociation($server_url1, $assoc1);
- $store->storeAssociation($server_url2, $assoc2);
-
- // Ask for each one, make sure we get it
- $this->_checkRetrieve($store, $server_url1, $assoc1->handle,
- $assoc1, "(26)");
-
- $this->_checkRetrieve($store, $server_url2, $assoc2->handle,
- $assoc2, "(27)");
-
- $store->storeAssociation($server_url1, $assoc1);
- $store->storeAssociation($server_url2, $assoc2);
-
- // Ask for each one, make sure we get it
- $this->_checkRetrieve($store, $server_url1, null,
- $assoc1, "(28)");
-
- $this->_checkRetrieve($store, $server_url2, null,
- $assoc2, "(29)");
-
- // test expired associations
- // assoc 1: server 1, valid
- // assoc 2: server 1, expired
- // assoc 3: server 2, expired
- // assoc 4: server 3, valid
- $assocValid1 = $this->genAssoc($now, -3600, 7200);
- $assocValid2 = $this->genAssoc($now, -5);
- $assocExpired1 = $this->genAssoc($now, -7200, 3600);
- $assocExpired2 = $this->genAssoc($now, -7200, 3600);
-
- if (!$store->supportsCleanup()) {
- return;
- }
-
- $store->cleanupAssociations();
- $store->storeAssociation($server_url . '1', $assocValid1);
- $store->storeAssociation($server_url . '1', $assocExpired1);
- $store->storeAssociation($server_url . '2', $assocExpired2);
- $store->storeAssociation($server_url . '3', $assocValid2);
-
- $cleaned = $store->cleanupAssociations();
- $this->assertEquals(2, $cleaned);
- }
-
- function _checkUseNonce($store, $nonce, $expected, $server_url, $msg=null)
- {
- list($stamp, $salt) = Auth_OpenID_splitNonce($nonce);
- $actual = $store->useNonce($server_url, $stamp, $salt);
- $this->assertEquals(intval($expected), intval($actual), "_checkUseNonce failed: $server_url, $msg");
- }
-
- function _testNonce($store)
- {
- // Nonce functions
-
- $server_url = 'http://www.myopenid.com/openid';
-
- foreach (array($server_url, '') as $url) {
- // Random nonce (not in store)
- $nonce1 = Auth_OpenID_mkNonce();
-
- // A nonce is not by default
- $this->_checkUseNonce($store, $nonce1, true, $url, "blergx");
-
- // Once stored, cannot be stored again
- $this->_checkUseNonce($store, $nonce1, false, $url, 2);
-
- // And using again has the same effect
- $this->_checkUseNonce($store, $nonce1, false, $url, 3);
-
- // Nonces from when the universe was an hour old should
- // not pass these days.
- $old_nonce = Auth_OpenID_mkNonce(3600);
- $this->_checkUseNonce($store, $old_nonce, false, $url,
- "Old nonce ($old_nonce) passed.");
-
- }
- }
-
- function _testNonceCleanup($store) {
- if (!$store->supportsCleanup()) {
- return;
- }
-
- $server_url = 'http://www.myopenid.com/openid';
-
- $now = time();
-
- $old_nonce1 = Auth_OpenID_mkNonce($now - 20000);
- $old_nonce2 = Auth_OpenID_mkNonce($now - 10000);
- $recent_nonce = Auth_OpenID_mkNonce($now - 600);
-
- global $Auth_OpenID_SKEW;
- $orig_skew = $Auth_OpenID_SKEW;
-
- $Auth_OpenID_SKEW = 0;
- $store->cleanupNonces();
- // Set SKEW high so stores will keep our nonces.
- $Auth_OpenID_SKEW = 100000;
-
- $params = Auth_OpenID_splitNonce($old_nonce1);
- array_unshift($params, $server_url);
- $this->assertTrue(call_user_func_array(array($store, 'useNonce'), $params));
-
- $params = Auth_OpenID_splitNonce($old_nonce2);
- array_unshift($params, $server_url);
- $this->assertTrue(call_user_func_array(array($store, 'useNonce'), $params));
-
- $params = Auth_OpenID_splitNonce($recent_nonce);
- array_unshift($params, $server_url);
- $this->assertTrue(call_user_func_array(array($store, 'useNonce'), $params));
-
- $Auth_OpenID_SKEW = 3600;
- $cleaned = $store->cleanupNonces();
- $this->assertEquals(2, $cleaned); // , "Cleaned %r nonces." % (cleaned,)
-
- $Auth_OpenID_SKEW = 100000;
- // A roundabout method of checking that the old nonces were
- // cleaned is to see if we're allowed to add them again.
-
- $params = Auth_OpenID_splitNonce($old_nonce1);
- array_unshift($params, $server_url);
- $this->assertTrue(call_user_func_array(array($store, 'useNonce'), $params));
- $params = Auth_OpenID_splitNonce($old_nonce2);
- array_unshift($params, $server_url);
- $this->assertTrue(call_user_func_array(array($store, 'useNonce'), $params));
-
- // The recent nonce wasn't cleaned, so it should still fail.
- $params = Auth_OpenID_splitNonce($recent_nonce);
- array_unshift($params, $server_url);
- $this->assertFalse(call_user_func_array(array($store, 'useNonce'), $params));
-
- $Auth_OpenID_SKEW = $orig_skew;
- }
-
-}
-/**
- * Class that tests all of the stores included with the OpenID library
- *
- * @package OpenID
- */
-class Tests_Auth_OpenID_Included_StoreTest extends Tests_Auth_OpenID_Store {
- function test_memstore()
- {
- require_once 'Tests/Auth/OpenID/MemStore.php';
- $store = new Tests_Auth_OpenID_MemStore();
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
- }
-
- function test_filestore()
- {
- require_once 'Auth/OpenID/FileStore.php';
-
- $temp_dir = _Auth_OpenID_mkdtemp();
-
- if (!$temp_dir) {
- trigger_error('Could not create temporary directory ' .
- 'with Auth_OpenID_FileStore::_mkdtemp',
- E_USER_WARNING);
- return null;
- }
-
- $store = new Auth_OpenID_FileStore($temp_dir);
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
- $store->destroy();
- }
-
- function test_postgresqlstore()
- {
- // If the postgres extension isn't loaded or loadable, succeed
- // because we can't run the test.
- if (!(extension_loaded('pgsql')) ||
- !(@include_once 'DB.php')) {
- print "(not testing PostGreSQL store)";
- $this->pass();
- return;
- }
-
- require_once 'Auth/OpenID/PostgreSQLStore.php';
-
- global $_Auth_OpenID_db_test_host;
-
- $temp_db_name = _Auth_OpenID_getTmpDbName();
-
- $connect_db_name = 'test_master';
-
- $dsn = array(
- 'phptype' => 'pgsql',
- 'username' => 'openid_test',
- 'password' => '',
- 'hostspec' => $_Auth_OpenID_db_test_host,
- 'database' => $connect_db_name
- );
-
- $allowed_failures = 5;
- $result = null;
- $sleep_time = 1.0;
- $sql = sprintf("CREATE DATABASE %s", $temp_db_name);
-
- for ($failures = 0; $failures < $allowed_failures; $failures++) {
- $template_db =& DB::connect($dsn);
-
- if (PEAR::isError($template_db)) {
- $result =& $template_db;
- } else {
- // Try to create the test database.
- $result = $template_db->query($sql);
-
- $template_db->disconnect();
- unset($template_db);
-
- if (!PEAR::isError($result)) {
- break;
- }
- }
-
- $sleep_time *= ((mt_rand(1, 100) / 100.0) + 1.5);
- print "Failed to create database $temp_db_name.\n".
- "Waiting $sleep_time before trying again\n";
-
- $int_sleep = floor($sleep_time);
- $frac_sleep = $sleep_time - $int_sleep;
- sleep($int_sleep);
- usleep($frac_sleep * 1000000.0);
- }
-
- if ($failures == $allowed_failures) {
- $this->pass("Temporary database creation failed after $failures ".
- " tries ('$temp_db_name'): " . $result->getMessage());
- return;
- }
-
- // Disconnect from template1 and reconnect to the temporary
- // testing database.
- $dsn['database'] = $temp_db_name;
- $db =& DB::connect($dsn);
-
- if (PEAR::isError($db)) {
- $this->fail("Temporary database connection failed " .
- " ('$temp_db_name'): " . $db->getMessage());
- return;
- }
-
- $store = new Auth_OpenID_PostgreSQLStore($db);
-
- $this->assertFalse($store->tableExists($store->nonces_table_name));
- $this->assertFalse($store->tableExists($store->associations_table_name));
-
- $store->createTables();
-
- $this->assertTrue($store->tableExists($store->nonces_table_name));
- $this->assertTrue($store->tableExists($store->associations_table_name));
-
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
-
- $db->disconnect();
- unset($db);
-
- // Connect to template1 again so we can drop the temporary
- // database.
- $dsn['database'] = $connect_db_name;
- $template_db =& DB::connect($dsn);
-
- if (PEAR::isError($template_db)) {
- $this->fail("Template database connection (to drop " .
- "temporary database) failed: " .
- $template_db->getMessage());
- return;
- }
-
- $result = $template_db->query(sprintf("DROP DATABASE %s",
- $temp_db_name));
-
- if (PEAR::isError($result)) {
- $this->fail("Dropping temporary database failed: " .
- $result->getMessage());
- return;
- }
-
- $template_db->disconnect();
- unset($template_db);
- }
-
- function test_sqlitestore()
- {
- // If the sqlite extension isn't loaded or loadable, succeed
- // because we can't run the test.
- if (!(extension_loaded('sqlite')) ||
- !(@include_once 'DB.php')) {
- print "(not testing SQLite store)";
- $this->pass();
- return;
- }
-
- require_once 'Auth/OpenID/SQLiteStore.php';
-
- $temp_dir = _Auth_OpenID_mkdtemp();
-
- if (!$temp_dir) {
- trigger_error('Could not create temporary directory ' .
- 'with Auth_OpenID_FileStore::_mkdtemp',
- E_USER_WARNING);
- return null;
- }
-
- $dsn = 'sqlite:///' . urlencode($temp_dir) . '/php_openid_storetest.db';
- $db =& DB::connect($dsn);
-
- if (PEAR::isError($db)) {
- $this->pass("SQLite database connection failed: " .
- $db->getMessage());
- } else {
- $store = new Auth_OpenID_SQLiteStore($db);
- $this->assertTrue($store->createTables(), "Table creation failed");
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
- }
-
- $db->disconnect();
- unset($db);
- unset($store);
- unlink($temp_dir . '/php_openid_storetest.db');
- rmdir($temp_dir);
- }
-
- function test_mysqlstore()
- {
- // If the mysql extension isn't loaded or loadable, succeed
- // because we can't run the test.
- if (!(extension_loaded('mysql')) ||
- !(@include_once 'DB.php')) {
- print "(not testing MySQL store)";
- $this->pass();
- return;
- }
-
- require_once 'Auth/OpenID/MySQLStore.php';
-
- global $_Auth_OpenID_db_test_host;
-
- $dsn = array(
- 'phptype' => 'mysql',
- 'username' => 'openid_test',
- 'password' => '',
- 'hostspec' => $_Auth_OpenID_db_test_host
- );
-
- $db =& DB::connect($dsn);
-
- if (PEAR::isError($db)) {
- print "MySQL database connection failed: " .
- $db->getMessage();
- $this->pass();
- return;
- }
-
- $temp_db_name = _Auth_OpenID_getTmpDbName();
-
- $result = $db->query("CREATE DATABASE $temp_db_name");
-
- if (PEAR::isError($result)) {
- $this->pass("Error creating MySQL temporary database: " .
- $result->getMessage());
- return;
- }
-
- $db->query("USE $temp_db_name");
-
- $store = new Auth_OpenID_MySQLStore($db);
- $store->createTables();
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
-
- $db->query("DROP DATABASE $temp_db_name");
- }
-
- function test_mdb2store()
- {
- // The MDB2 test can use any database engine. MySQL is chosen
- // arbitrarily.
- if (!(extension_loaded('mysql') ||
- @dl('mysql.' . PHP_SHLIB_SUFFIX)) ||
- !(@include_once 'MDB2.php')) {
- print "(not testing MDB2 store)";
- $this->pass();
- return;
- }
-
- require_once 'Auth/OpenID/MDB2Store.php';
-
- global $_Auth_OpenID_db_test_host;
-
- $dsn = array(
- 'phptype' => 'mysql',
- 'username' => 'openid_test',
- 'password' => '',
- 'hostspec' => $_Auth_OpenID_db_test_host
- );
-
- $db =& MDB2::connect($dsn);
-
- if (PEAR::isError($db)) {
- print "MySQL database connection failed: " .
- $db->getMessage();
- $this->pass();
- return;
- }
-
- $temp_db_name = _Auth_OpenID_getTmpDbName();
-
- $result = $db->query("CREATE DATABASE $temp_db_name");
-
- if (PEAR::isError($result)) {
- $this->pass("Error creating MySQL temporary database: " .
- $result->getMessage());
- return;
- }
-
- $db->query("USE $temp_db_name");
-
- $store =& new Auth_OpenID_MDB2Store($db);
- if (!$store->createTables()) {
- $this->fail("Failed to create tables");
- return;
- }
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
-
- $db->query("DROP DATABASE $temp_db_name");
- }
-}
-
-/**
- * This is the host that the store test will use
- */
-global $_Auth_OpenID_memcache_test_host;
-$_Auth_OpenID_memcache_test_host = 'localhost';
-
-class Tests_Auth_OpenID_MemcachedStore_Test extends Tests_Auth_OpenID_Store {
- function test_memcache()
- {
- // If the memcache extension isn't loaded or loadable, succeed
- // because we can't run the test.
- if (!extension_loaded('memcache')) {
- print "(skipping memcache store tests)";
- $this->pass();
- return;
- }
- require_once 'Auth/OpenID/MemcachedStore.php';
-
- global $_Auth_OpenID_memcache_test_host;
-
- $memcached = new Memcache();
- if (!$memcached->connect($_Auth_OpenID_memcache_test_host)) {
- print "(skipping memcache store tests - couldn't connect)";
- $this->pass();
- } else {
- $store = new Auth_OpenID_MemcachedStore($memcached);
-
- $this->_testStore($store);
- $this->_testNonce($store);
- $this->_testNonceCleanup($store);
-
- $memcached->close();
- }
- }
-}
-
-class Tests_Auth_OpenID_StoreTest extends PHPUnit_Framework_TestSuite {
- function getName()
- {
- return "Tests_Auth_OpenID_StoreTest";
- }
-
- function Tests_Auth_OpenID_StoreTest()
- {
- $this->addTestSuite('Tests_Auth_OpenID_Included_StoreTest');
- $this->addTestSuite('Tests_Auth_OpenID_MemcachedStore_Test');
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/TestUtil.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/TestUtil.php
deleted file mode 100644
index 28e3ca9af..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/TestUtil.php
+++ /dev/null
@@ -1,60 +0,0 @@
-getArg($ns, $key);
- $error_format = 'Wrong value for openid.%s: expected=%s, actual=%s';
- $error_message = sprintf($error_format,
- $key, $expected, $actual);
-
- $this->assertEquals($expected, $actual, $error_message);
- }
-
- function failIfOpenIDKeyExists($msg, $key, $ns=null)
- {
- if ($ns === null) {
- $ns = Auth_OpenID_OPENID_NS;
- }
-
- $actual = $msg->getArg($ns, $key);
- $error_message = sprintf('openid.%s unexpectedly present: %s',
- $key, $actual);
-
- $this->assertFalse($msg->hasKey($ns, $key),
- $error_message);
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/TrustRoot.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/TrustRoot.php
deleted file mode 100644
index 360394091..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/TrustRoot.php
+++ /dev/null
@@ -1,172 +0,0 @@
-setName($desc);
- $this->case = $case;
- $this->expected = $expected;
- }
-
- function runTest()
- {
- $is_sane = Auth_OpenID_TrustRoot::isSane($this->case);
- $parsed = (bool)Auth_OpenID_TrustRoot::_parse($this->case);
- switch ($this->expected) {
- case 'sane':
- $this->assertTrue($parsed, "Did not parse");
- $this->assertTrue($is_sane, "Is not sane");
- break;
- case 'insane':
- $this->assertTrue($parsed, "Did not parse");
- $this->assertFalse($is_sane, "Is sane");
- break;
- default:
- $this->assertFalse($parsed, "Did parse");
- $this->assertFalse($is_sane, "Is sane");
- }
- }
-}
-
-class Tests_Auth_OpenID_TRMatchCase extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_TRMatchCase($desc, $tr, $rt, $matches)
- {
- $this->setName($desc);
- $this->tr = $tr;
- $this->rt = $rt;
- $this->matches = $matches;
- }
-
- function runTest()
- {
- $matches = Auth_OpenID_TrustRoot::match($this->tr, $this->rt);
- $this->assertEquals((bool)$this->matches, (bool)$matches);
- }
-}
-
-function Tests_Auth_OpenID_parseHeadings($data, $c)
-{
- $heading_pat = '/(^|\n)' . $c . '{40}\n([^\n]+)\n' . $c . '{40}\n()/';
- $offset = 0;
- $headings = array();
- while (true) {
- preg_match($heading_pat, substr($data, $offset), $matches,
- PREG_OFFSET_CAPTURE);
- if (!$matches) {
- break;
- }
- $start = $matches[0][1];
- $heading = $matches[2][0];
- $end = $matches[3][1];
- $headings[] = array('heading' => $heading,
- 'start' => $offset + $start,
- 'end' => $offset + $end,
- );
- $offset += $end;
- }
- return $headings;
-}
-
-function Tests_Auth_OpenID_getSections($data)
-{
- $headings = Tests_Auth_OpenID_parseHeadings($data, '-');
- $sections = array();
- $n = count($headings);
- for ($i = 0; $i < $n; ) {
- $secdata = $headings[$i];
- list($numtests, $desc) = explode(': ', $secdata['heading']);
- $start = $secdata['end'];
- $i += 1;
- if ($i < $n) {
- $blob = substr($data, $start, $headings[$i]['start'] - $start);
- } else {
- $blob = substr($data, $start);
- }
- $lines = explode("\n", trim($blob));
- if (count($lines) != $numtests) {
- trigger_error('Parse failure: ' . var_export($secdata, true),
- E_USER_ERROR);
- }
- $sections[] = array('desc' => $desc, 'lines' => $lines,);
- }
- return $sections;
-}
-
-function Tests_Auth_OpenID_trParseTests($head, $tests)
-{
- $tests = array('fail' => $tests[0],
- 'insane' => $tests[1],
- 'sane' => $tests[2]);
- $testobjs = array();
- foreach ($tests as $expected => $testdata) {
- $lines = $testdata['lines'];
- foreach ($lines as $line) {
- $desc = sprintf("%s - %s: %s", $head,
- $testdata['desc'], var_export($line, true));
- $testobjs[] = new Tests_Auth_OpenID_TRParseCase(
- $desc, $line, $expected);
- }
- }
- return $testobjs;
-}
-
-function Tests_Auth_OpenID_trMatchTests($head, $tests)
-{
- $tests = array(true => $tests[0], false => $tests[1]);
- $testobjs = array();
- foreach ($tests as $expected => $testdata) {
- $lines = $testdata['lines'];
- foreach ($lines as $line) {
- $pat = '/^([^ ]+) +([^ ]+)$/';
- preg_match($pat, $line, $matches);
- list($_, $tr, $rt) = $matches;
- $desc = sprintf("%s - %s: %s %s", $head, $testdata['desc'],
- var_export($tr, true), var_export($rt, true));
- $testobjs[] = new Tests_Auth_OpenID_TRMatchCase(
- $desc, $tr, $rt, $expected);
- }
- }
- return $testobjs;
-}
-
-function Tests_Auth_OpenID_trustRootTests()
-{
- $data = Tests_Auth_OpenID_readdata('trustroot.txt');
- list($parsehead, $matchhead) = Tests_Auth_OpenID_parseHeadings($data, '=');
- $pe = $parsehead['end'];
- $parsedata = substr($data, $pe, $matchhead['start'] - $pe);
- $parsetests = Tests_Auth_OpenID_getSections($parsedata);
- $parsecases = Tests_Auth_OpenID_trParseTests($parsehead['heading'],
- $parsetests);
-
- $matchdata = substr($data, $matchhead['end']);
- $matchtests = Tests_Auth_OpenID_getSections($matchdata);
- $matchcases = Tests_Auth_OpenID_trMatchTests($matchhead['heading'],
- $matchtests);
-
- return array_merge($parsecases, $matchcases);
-}
-
-class Tests_Auth_OpenID_TrustRoot extends PHPUnit_Framework_TestSuite {
- function Tests_Auth_OpenID_TrustRoot($name)
- {
- $this->setName($name);
-
- foreach (Tests_Auth_OpenID_trustRootTests() as $test) {
- $this->_addTestByValue($test);
- }
- }
-
- function _addTestByValue($test) {
- $this->addTest($test);
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/URINorm.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/URINorm.php
deleted file mode 100644
index b79b7802b..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/URINorm.php
+++ /dev/null
@@ -1,66 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID/URINorm.php';
-require_once 'Tests/Auth/OpenID/TestUtil.php';
-
-class Tests_Auth_OpenID_URINorm_TestCase extends PHPUnit_Framework_TestCase {
- function Tests_Auth_OpenID_URINorm_TestCase(
- $name, $uri, $expected)
- {
-
- $this->setName($name);
- $this->uri = $uri;
- $this->expected = $expected;
- }
-
- function runTest()
- {
- $actual = Auth_OpenID_urinorm($this->uri);
- $this->assertEquals($this->expected, $actual);
- }
-}
-
-class Tests_Auth_OpenID_URINorm extends PHPUnit_Framework_TestSuite {
- function _readTestCases()
- {
- $lines = Tests_Auth_OpenID_readlines('urinorm.txt');
- $cases = array();
- $case = array();
- for ($i = 0; $i < count($lines) && ($i + 3 <= count($lines)); $i += 4) {
- $name = trim($lines[$i]);
- $uri = trim($lines[$i + 1]);
- $expected = trim($lines[$i + 2]);
- if ($expected == 'fail') {
- $expected = null;
- }
- $cases[] = array($name, $uri, $expected);
- }
-
- return $cases;
- }
-
- function Tests_Auth_OpenID_URINorm($name)
- {
- $this->setName($name);
- $cases = $this->_readTestCases();
- foreach ($cases as $case) {
- list($name, $uri, $expected) = $case;
- $this->addTest(new Tests_Auth_OpenID_URINorm_TestCase($name, $uri, $expected));
- }
- }
-}
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Util.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/Util.php
deleted file mode 100644
index ecaed7905..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/Util.php
+++ /dev/null
@@ -1,319 +0,0 @@
-
- * @copyright 2005-2008 Janrain, Inc.
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
- */
-
-require_once 'Auth/OpenID.php';
-
-class Tests_Auth_OpenID_Util extends PHPUnit_Framework_TestCase {
- function test_base64()
- {
- // This is not good for international use, but PHP doesn't
- // appear to provide access to the local alphabet.
- $letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
- $digits = "0123456789";
- $extra = "+/=";
- $allowed_s = $letters . $digits . $extra;
- $allowed_d = array();
-
- for ($i = 0; $i < strlen($allowed_s); $i++) {
- $c = $allowed_s[$i];
- $allowed_d[$c] = null;
- }
-
- function checkEncoded($obj, $str, $allowed_array)
- {
- for ($i = 0; $i < strlen($str); $i++) {
- $obj->assertTrue(array_key_exists($str[$i],
- $allowed_array));
- }
- }
-
- $cases = array(
- "",
- "x",
- "\x00",
- "\x01",
- str_repeat("\x00", 100),
- implode("", array_map('chr', range(0, 255)))
- );
-
- foreach ($cases as $s) {
- $b64 = base64_encode($s);
- checkEncoded($this, $b64, $allowed_d);
- $s_prime = base64_decode($b64);
- $this->assertEquals($s_prime, $s);
- }
-
- function random_ordinal($unused)
- {
- return rand(0, 255);
- }
-
- // Randomized test
- foreach (range(0, 49) as $i) {
- $n = rand(0, 2048);
- $s = implode("", array_map('chr',
- array_map('random_ordinal',
- range(0, $n))));
- $b64 = base64_encode($s);
- checkEncoded($this, $b64, $allowed_d);
- $s_prime = base64_decode($b64);
- $this->assertEquals($s_prime, $s);
- }
- }
-
- function test_urldefrag()
- {
- $cases = array(
- array('http://foo.com', 'http://foo.com'),
- array('http://foo.com/', 'http://foo.com/'),
- array('http://foo.com/path', 'http://foo.com/path'),
- array('http://foo.com/path?query', 'http://foo.com/path?query'),
- array('http://foo.com/path?query=v', 'http://foo.com/path?query=v'),
- array('http://foo.com/?query=v', 'http://foo.com/?query=v'),
- );
-
- foreach ($cases as $pair) {
- list($orig, $after) = $pair;
- list($base, $frag) = Auth_OpenID::urldefrag($orig);
- $this->assertEquals($after, $base);
- $this->assertEquals($frag, '');
-
- list($base, $frag) = Auth_OpenID::urldefrag($orig . "#fragment");
- $this->assertEquals($after, $base);
- $this->assertEquals('fragment', $frag);
- }
- }
-
- function test_normalizeUrl()
- {
- $this->assertEquals("http://foo.com/",
- Auth_OpenID::normalizeUrl("foo.com"));
-
- $this->assertEquals("http://foo.com/",
- Auth_OpenID::normalizeUrl("http://foo.com"));
-
- $this->assertEquals("https://foo.com/",
- Auth_OpenID::normalizeUrl("https://foo.com"));
-
- $this->assertEquals("http://foo.com/bar",
- Auth_OpenID::normalizeUrl("foo.com/bar"));
-
- $this->assertEquals("http://foo.com/bar",
- Auth_OpenID::normalizeUrl("http://foo.com/bar"));
-
- $this->assertEquals("http://foo.com/",
- Auth_OpenID::normalizeUrl("http://foo.com/"));
-
- $this->assertEquals("https://foo.com/",
- Auth_OpenID::normalizeUrl("https://foo.com/"));
-
- $this->assertEquals("https://foo.com/bar" ,
- Auth_OpenID::normalizeUrl("https://foo.com/bar"));
-
- $this->assertEquals("http://foo.com/bar" ,
- Auth_OpenID::normalizeUrl("HTtp://foo.com/bar"));
-
- $this->assertEquals("http://foo.com/bar" ,
- Auth_OpenID::normalizeUrl("HTtp://foo.com/bar#fraggle"));
-
- $this->assertEquals("http://foo.com/bAr/" ,
- Auth_OpenID::normalizeUrl("HTtp://fOo.com/bAr/.#fraggle"));
-
- if (0) {
- $this->assertEquals("http://foo.com/%E8%8D%89",
- Auth_OpenID::normalizeUrl("foo.com/\u8349"));
-
- $this->assertEquals("http://foo.com/%E8%8D%89",
- Auth_OpenID::normalizeUrl("http://foo.com/\u8349"));
- }
-
- $non_ascii_domain_cases = array(
- array("http://xn--vl1a.com/",
- "\u8349.com"),
-
- array("http://xn--vl1a.com/",
- "http://\u8349.com"),
-
- array("http://xn--vl1a.com/",
- "\u8349.com/"),
-
- array("http://xn--vl1a.com/",
- "http://\u8349.com/"),
-
- array("http://xn--vl1a.com/%E8%8D%89",
- "\u8349.com/\u8349"),
-
- array("http://xn--vl1a.com/%E8%8D%89",
- "http://\u8349.com/\u8349"),
- );
-
- // XXX
- /*
- codecs.getencoder('idna')
- except LookupError:
- # If there is no idna codec, these cases with
- # non-ascii-representable domain names should fail.
- should_raise = True
- else:
- should_raise = False
-
- for expected, case in non_ascii_domain_cases:
-try:
-actual = Auth_OpenID::normalizeUrl(case)
- except UnicodeError:
- assert should_raise
- else:
-assert not should_raise and actual == expected, case
- */
-
- $this->assertNull(Auth_OpenID::normalizeUrl(null));
- $this->assertNull(Auth_OpenID::normalizeUrl(''));
- $this->assertNull(Auth_OpenID::normalizeUrl('http://'));
- }
-
- function test_appendArgs()
- {
-
- $simple = 'http://www.example.com/';
-
- $cases = array(
- array('empty list',
- array($simple, array()),
- $simple),
-
- array('empty dict',
- array($simple, array()),
- $simple),
-
- array('one list',
- array($simple, array(array('a', 'b'))),
- $simple . '?a=b'),
-
- array('one dict',
- array($simple, array('a' => 'b')),
- $simple . '?a=b'),
-
- array('two list (same)',
- array($simple, array(array('a', 'b'),
- array('a', 'c'))),
- $simple . '?a=b&a=c'),
-
- array('two list',
- array($simple, array(array('a', 'b'),
- array('b', 'c'))),
- $simple . '?a=b&b=c'),
-
- array('two list (order)',
- array($simple, array(array('b', 'c'),
- array('a', 'b'))),
- $simple . '?b=c&a=b'),
-
- array('two dict (order)',
- array($simple, array('b' => 'c',
- 'a' => 'b')),
- $simple . '?a=b&b=c'),
-
- array('escape',
- array($simple, array(array('=', '='))),
- $simple . '?%3D=%3D'),
-
- array('escape (URL)',
- array($simple, array(array('this_url',
- $simple))),
- $simple .
- '?this_url=http%3A%2F%2Fwww.example.com%2F'),
-
- array('use dots',
- array($simple, array(array('openid.stuff',
- 'bother'))),
- $simple . '?openid.stuff=bother'),
-
- array('args exist (empty)',
- array($simple . '?stuff=bother', array()),
- $simple . '?stuff=bother'),
-
- array('args exist',
- array($simple . '?stuff=bother',
- array(array('ack', 'ack'))),
- $simple . '?stuff=bother&ack=ack'),
-
- array('args exist',
- array($simple . '?stuff=bother',
- array(array('ack', 'ack'))),
- $simple . '?stuff=bother&ack=ack'),
-
- array('args exist (dict)',
- array($simple . '?stuff=bother',
- array('ack' => 'ack')),
- $simple . '?stuff=bother&ack=ack'),
-
- array('args exist (dict 2)',
- array($simple . '?stuff=bother',
- array('ack' => 'ack', 'zebra' => 'lion')),
- $simple . '?stuff=bother&ack=ack&zebra=lion'),
-
- array('three args (dict)',
- array($simple, array('stuff' => 'bother',
- 'ack' => 'ack',
- 'zebra' => 'lion')),
- $simple . '?ack=ack&stuff=bother&zebra=lion'),
-
- array('three args (list)',
- array($simple, array(
- array('stuff', 'bother'),
- array('ack', 'ack'),
- array('zebra', 'lion'))),
- $simple . '?stuff=bother&ack=ack&zebra=lion'),
- );
-
- // Tests.
- foreach ($cases as $case) {
- list($desc, $data, $expected) = $case;
- list($url, $query) = $data;
- $this->assertEquals($expected,
- Auth_OpenID::appendArgs($url, $query));
- }
- }
-
- function test_getQuery()
- {
- $queries = array(
- '' => array(),
- 'single' => array(),
- 'no&pairs' => array(),
- 'x%3Dy' => array(),
- 'single&real=value' => array('real' => 'value'),
- 'x=y&m=x%3Dn' => array('x' => 'y', 'm' => 'x=n'),
- '&m=x%20y' => array('m' => 'x y'),
- 'single&&m=x%20y&bogus' => array('m' => 'x y'),
- // Even with invalid encoding. But don't do that.
- 'too=many=equals&' => array('too' => 'many=equals')
- );
-
- foreach ($queries as $s => $data) {
- $query = Auth_OpenID::getQuery($s);
-
- foreach ($data as $key => $value) {
- $this->assertTrue($query[$key] === $value);
- }
-
- foreach ($query as $key => $value) {
- $this->assertTrue($data[$key] === $value);
- }
- }
- }
-}
-
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/VerifyDisco.php b/models/openid-php-openid-782224d/Tests/Auth/OpenID/VerifyDisco.php
deleted file mode 100644
index ea2566d19..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/VerifyDisco.php
+++ /dev/null
@@ -1,422 +0,0 @@
-test_case->assertEquals($this->endpoint->claimed_id, $claimed_id);
- return new Auth_OpenID_FailureResponse(null, $this->text);
- }
-}
-
-class __VerifiedError extends Auth_OpenID_FailureResponse {
-}
-
-class VerifyDisco_Consumer_verifiedError extends Auth_OpenID_GenericConsumer {
- function _discoverAndVerify($to_match)
- {
- return new __VerifiedError(null, 'verified error');
- }
-}
-
-class _DiscoverAndVerify extends OpenIDTestMixin {
- var $consumer_class = 'Auth_OpenID_GenericConsumer';
-
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $cl = $this->consumer_class;
- $this->consumer = new $cl($this->store);
- $this->return_to = "http://some.host/path";
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
-
- $this->server_id = "sirod";
- $this->server_url = "serlie";
- $this->consumer_id = "consu";
-
- $this->endpoint->claimed_id = $this->consumer_id;
- $this->endpoint->server_url = $this->server_url;
- $this->endpoint->local_id = $this->server_id;
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
- }
-
- function failUnlessProtocolError($thing)
- {
- $this->assertTrue(Auth_OpenID::isFailure($thing));
- }
-}
-
-class _Tests_discoveryOverride {
- function _Tests_discoveryOverride($endpoint)
- {
- $this->endpoint = $endpoint;
- }
-
- function discover($unused_url)
- {
- return array($this->endpoint->claimed_id, array($this->endpoint));
- }
-}
-class Tests_openID1Fallback1_0 extends _DiscoverAndVerify {
- function test_openID1Fallback1_0()
- {
- $claimed_id = 'http://claimed.id/';
- $resp_msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID1_NS,
- 'identity' => $claimed_id));
- $resp_msg->setArg(Auth_OpenID_BARE_NS, 'openid1_claimed_id',
- $claimed_id);
- $expected_endpoint = new Auth_OpenID_ServiceEndpoint();
- $expected_endpoint->type_uris = array(Auth_OpenID_TYPE_1_0);
- $expected_endpoint->local_id = null;
- $expected_endpoint->claimed_id = $claimed_id;
-
- $discovery_override = new _Tests_discoveryOverride($expected_endpoint);
- $this->consumer->discoverMethod = array($discovery_override, 'discover');
-
- $actual_endpoint = $this->consumer->_verifyDiscoveryResults(
- $resp_msg, null);
-
- $this->assertTrue(is_a($actual_endpoint, "Auth_OpenID_ServiceEndpoint"));
-
- $this->assertEquals($expected_endpoint->local_id,
- $actual_endpoint->local_id);
- $this->assertEquals($expected_endpoint->server_url,
- $actual_endpoint->server_url);
-
- $this->assertEquals($expected_endpoint->type_uris,
- $actual_endpoint->type_uris);
-
- $this->assertEquals($expected_endpoint->claimed_id,
- $actual_endpoint->claimed_id);
-
- }
-}
-
-class Tests_Auth_OpenID_VerifyDisco extends _DiscoverAndVerify {
- function test_openID1NoLocalID()
- {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->claimed_id = 'bogus';
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array());
- // 'Missing required field openid.identity'
- $this->failUnlessProtocolError($this->consumer->_verifyDiscoveryResults($msg, $endpoint));
- }
-
- function test_openID1NoEndpoint()
- {
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array('identity' => 'snakes on a plane'));
- $this->failUnlessProtocolError($this->consumer->_verifyDiscoveryResults($msg));
- }
-
- function test_openID2NoOPEndpointArg()
- {
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array('ns' => Auth_OpenID_OPENID2_NS));
- $this->failUnlessProtocolError($this->consumer->_verifyDiscoveryResults($msg, null));
- }
-
- function test_openID2LocalIDNoClaimed()
- {
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array('ns' => Auth_OpenID_OPENID2_NS,
- 'op_endpoint' => 'Phone Home',
- 'identity' => 'Jose Lius Borges'));
- // 'openid.identity is present without',
- $this->failUnlessProtocolError($this->consumer->_verifyDiscoveryResults($msg));
- }
-
- function test_openID2NoLocalIDClaimed()
- {
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array('ns' => Auth_OpenID_OPENID2_NS,
- 'op_endpoint' => 'Phone Home',
- 'claimed_id' => 'Manuel Noriega'));
- // 'openid.claimed_id is present without',
- $this->failUnlessProtocolError(
- $this->consumer->_verifyDiscoveryResults($msg));
- }
-
- function test_openID2NoIdentifiers()
- {
- $op_endpoint = 'Phone Home';
- $msg = Auth_OpenID_Message::fromOpenIDArgs(array('ns' => Auth_OpenID_OPENID2_NS,
- 'op_endpoint' => $op_endpoint));
- $result_endpoint = $this->consumer->_verifyDiscoveryResults($msg);
- $this->assertTrue($result_endpoint->isOPIdentifier());
- $this->assertEquals($op_endpoint, $result_endpoint->server_url);
- $this->assertEquals(null, $result_endpoint->claimed_id);
- }
-
- function test_openid2UsePreDiscovered()
- {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->local_id = 'my identity';
- $endpoint->claimed_id = 'i am sam';
- $endpoint->server_url = 'Phone Home';
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => $endpoint->local_id,
- 'claimed_id' => $endpoint->claimed_id,
- 'op_endpoint' => $endpoint->server_url));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg, $endpoint);
- $this->assertTrue($result === $endpoint);
- }
-
- function test_openid2UsePreDiscoveredWrongType()
- {
- $this->consumer = new Tests_Auth_OpenID_VerifyDisco_1($this->store);
- $this->consumer->test_case =& $this;
- $this->consumer->text = "verify failed";
-
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->local_id = 'my identity';
- $endpoint->claimed_id = 'i am sam';
- $endpoint->server_url = 'Phone Home';
- $endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
-
- $this->consumer->endpoint =& $endpoint;
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => $endpoint->local_id,
- 'claimed_id' => $endpoint->claimed_id,
- 'op_endpoint' => $endpoint->server_url));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg, $endpoint);
- $this->failUnlessProtocolError($result);
- $this->assertTrue($result->message == "verify failed");
- }
-
- function test_openid1UsePreDiscovered()
- {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->local_id = 'my identity';
- $endpoint->claimed_id = 'i am sam';
- $endpoint->server_url = 'Phone Home';
- $endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID1_NS,
- 'identity' => $endpoint->local_id));
- $result = $this->consumer->_verifyDiscoveryResults($msg, $endpoint);
- $this->assertTrue($result == $endpoint);
- }
-
- function test_openid2Fragment()
- {
- $claimed_id = "http://unittest.invalid/";
- $claimed_id_frag = $claimed_id . "#fragment";
-
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->local_id = 'my identity';
- $endpoint->claimed_id = $claimed_id;
- $endpoint->server_url = 'Phone Home';
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => $endpoint->local_id,
- 'claimed_id' => $claimed_id_frag,
- 'op_endpoint' => $endpoint->server_url));
- $result = $this->consumer->_verifyDiscoveryResults($msg, $endpoint);
-
- $this->assertEquals($result->local_id, $endpoint->local_id);
- $this->assertEquals($result->server_url, $endpoint->server_url);
-
- $this->assertEquals($result->type_uris, $endpoint->type_uris);
-
- $this->assertEquals($result->claimed_id, $claimed_id_frag);
- }
-
-}
-
-class Tests_openid1UsePreDiscoveredWrongType extends _DiscoverAndVerify {
- var $consumer_class = 'VerifyDisco_Consumer_verifiedError';
-
- function test_openid1UsePreDiscoveredWrongType()
- {
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->local_id = 'my identity';
- $endpoint->claimed_id = 'i am sam';
- $endpoint->server_url = 'Phone Home';
- $endpoint->type_uris = array(Auth_OpenID_TYPE_2_0);
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID1_NS,
- 'identity' => $endpoint->local_id));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg, $endpoint);
- $this->failUnlessProtocolError($result);
- $this->assertTrue(is_a($result, '__VerifiedError'));
- }
-}
-
-// XXX: test the implementation of _discoverAndVerify
-
-class Tests_openID2NoEndpointDoesDisco_sentinel extends Auth_OpenID_GenericConsumer {
- var $sentinel = 'blah';
-
- function _discoverAndVerify($to_match)
- {
- return $this->sentinel;
- }
-}
-
-class Tests_openID2NoEndpointDoesDisco_failure extends Auth_OpenID_GenericConsumer {
- var $failure_message = 'A fake failure response message';
-
- function _verifyDiscoverySingle($to_match)
- {
- return new Auth_OpenID_FailureResponse(null, $this->failure_message);
- }
-}
-
-class Tests_openID2NoEndpointDoesDisco extends Tests_Auth_OpenID_VerifyDisco {
- var $consumer_class = 'Tests_openID2NoEndpointDoesDisco_sentinel';
-
- function test_openID2NoEndpointDoesDisco()
- {
- $op_endpoint = 'Phone Home';
- $this->consumer->sentinel = new Auth_OpenID_ServiceEndpoint();
- $this->consumer->sentinel->claimed_id = 'monkeysoft';
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => 'sour grapes',
- 'claimed_id' => 'monkeysoft',
- 'op_endpoint' => $op_endpoint));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg);
- $this->assertEquals($this->consumer->sentinel, $result);
- }
-}
-
-class Tests_openID2MismatchedDoesDisco extends Tests_Auth_OpenID_VerifyDisco {
- var $consumer_class = 'Tests_openID2NoEndpointDoesDisco_sentinel';
-
- function test_openID2MismatchedDoesDisco()
- {
- $mismatched = new Auth_OpenID_ServiceEndpoint();
- $mismatched->identity = 'nothing special, but different';
- $mismatched->local_id = 'green cheese';
-
- $sentinel = new Auth_OpenID_ServiceEndpoint();
- $sentinel->claimed_id = 'monkeysoft';
- $this->consumer->sentinel = $sentinel;
-
- $op_endpoint = 'Phone Home';
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => 'sour grapes',
- 'claimed_id' => 'monkeysoft',
- 'op_endpoint' => $op_endpoint));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg, $mismatched);
- $this->assertEquals($this->consumer->sentinel, $result);
- }
-}
-
-class Tests_openID2MismatchedDoesDisco_failure extends PHPUnit_Framework_TestCase {
- var $consumer_class = 'Tests_openID2NoEndpointDoesDisco_failure';
-
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $cl = $this->consumer_class;
- $this->consumer = new $cl($this->store);
- $this->return_to = "http://some.host/path";
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
-
- $this->consumer->discoverMethod = array($this, "_getServices");
-
- $this->server_id = "sirod";
- $this->server_url = "serlie";
- $this->consumer_id = "consu";
-
- $this->endpoint->claimed_id = $this->consumer_id;
- $this->endpoint->server_url = $this->server_url;
- $this->endpoint->local_id = $this->server_id;
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
- }
-
- function _getServices($claimed_id, $fetcher=null) {
- return array(null, array($this->endpoint));
- }
-
- function test_openID2MismatchedDoesDisco_failure()
- {
- $mismatched = new Auth_OpenID_ServiceEndpoint();
- $mismatched->identity = 'nothing special, but different';
- $mismatched->local_id = 'green cheese';
-
- $op_endpoint = 'Phone Home';
-
- $msg = Auth_OpenID_Message::fromOpenIDArgs(
- array('ns' => Auth_OpenID_OPENID2_NS,
- 'identity' => 'sour grapes',
- 'claimed_id' => 'monkeysoft',
- 'op_endpoint' => $op_endpoint));
-
- $result = $this->consumer->_verifyDiscoveryResults($msg, $mismatched);
- $this->assertTrue(Auth_OpenID::isFailure($result));
- }
-}
-
-class TestVerifyDiscoverySingle extends OpenIDTestMixin {
- var $consumer_class = 'Auth_OpenID_GenericConsumer';
-
- function setUp()
- {
- $this->store = new Tests_Auth_OpenID_MemStore();
- $cl = $this->consumer_class;
- $this->consumer = new $cl($this->store);
- $this->return_to = "http://some.host/path";
- $this->endpoint = new Auth_OpenID_ServiceEndpoint();
-
- $this->server_id = "sirod";
- $this->server_url = "serlie";
- $this->consumer_id = "consu";
-
- $this->endpoint->claimed_id = $this->consumer_id;
- $this->endpoint->server_url = $this->server_url;
- $this->endpoint->local_id = $this->server_id;
- $this->endpoint->type_uris = array(Auth_OpenID_TYPE_1_1);
- }
-
- function test_endpointWithoutLocalID()
- {
- // An endpoint like this with no local_id is generated as a
- // result of e.g. Yadis discovery with no LocalID tag.
- $endpoint = new Auth_OpenID_ServiceEndpoint();
- $endpoint->server_url = "http://localhost:8000/openidserver";
- $endpoint->claimed_id = "http://localhost:8000/id/id-jo";
-
- $to_match = new Auth_OpenID_ServiceEndpoint();
- $to_match->server_url = "http://localhost:8000/openidserver";
- $to_match->claimed_id = "http://localhost:8000/id/id-jo";
- $to_match->local_id = "http://localhost:8000/id/id-jo";
-
- $result = $this->consumer->_verifyDiscoverySingle($endpoint, $to_match);
-
- // result should always be None, raises exception on failure.
- $this->assertEquals($result, null);
- }
-}
-
-global $Tests_Auth_OpenID_VerifyDisco_other;
-$Tests_Auth_OpenID_VerifyDisco_other = array(
- new Tests_openID2MismatchedDoesDisco(),
- new Tests_openID2NoEndpointDoesDisco(),
- new Tests_openID2MismatchedDoesDisco_failure(),
- new Tests_openid1UsePreDiscoveredWrongType(),
- new Tests_openID1Fallback1_0(),
- );
-
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhexch b/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhexch
deleted file mode 100644
index 7a8be0737..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhexch
+++ /dev/null
@@ -1,25 +0,0 @@
-2126517416 1503105722 107994742031567165457540274858809652167995244913839787589743578103625285208352685332617657612917013907706708046204110421143061814711041523408378123857885283119340960531860106377561159933747570456852792031929014142490977574671361334052940195520731561436107832724927338342871107723160776334443535305873323500256
-1726325708 97982531 120276049194830643562108817809662062106546923236483207874835831104433621725428405166395533625121884325430201809382464614237831903082554679507511419420917850293136497504021313018779166242697363853538302653639224106865664333535348491338293646599577557630201300627170167862878616413985927131488374258664616392092
-7191572 1822336109 122056637146069839485450157659463602136773435897258591538866604089577736061707581662949502933519623787237101424065925246227311788026398025228549571401681364284397681558495127293422405005519207011429758784679359026564663723906503072635741603815702201571462971153413211041068663899032199555395016545688330586044
-228786056 1675584603 117701151389970889003978379762267752133865163176557074701079147801046451813688145274964215828365957142552336288689654120601548113748929766366564174096775189852190965077394508456052823068488823291767811224538103381867631753777200820579564678159674117155563703553000884461777658090456283332220216734612556688513
-804908984 2135801843 64993745755656098807721600357147815184322152457013249228399624894951891365784451431980303960531348451816046446458097670030866575746640795583720668211568084611960590087205609635406810868042628237527172170079769791670793545166757565720288711565725471066283638538704293790079806106677373567711048953361333211210
-1122280790 1614259350 3970244390792364343312138669070883638127263175075582263096706481850448381703964455173288740017450440943500797144425033043394229962284552755667989452357422108026327690718801740503572676309934059296211509079412739861064178751353597300902277808636740745335474263237517162977595705012834985895341553367459792583
-554314515 998420920 123643361743671701825618173162391028658772950477687990712748798605914570427945055208640384218469111438408345424338893652923941552893606133066783001743721804859308011765507616515353882559991735865794891472781955621601467016660304188272123202130977476560852093272543539966026915472638392018462692756028817601255
-719945347 612820861 103551249110130410018728043034553056272870332237608830696804104933749752848182147616875273399120950956495972830177071656956289995248469136767050516935071277259217339496102844766065836859503647533631994664364053659677674596380230790347281302210808329346735637394258018381272973124437749621859047096780954428763
-1030625109 1519412381 15696617275088442746387785148060623054817901281945029743077460769180096631404983383910114661025034557230747207080210469011273591184527303007260363112037932265980126744700626024259985586947347501172863220738584453809309462129610346067407238209251289710742647393829531889303218223237301268534338307710560528439
-1711254768 1710707291 57671766580359527580383190392835992822988951359063099518333951473557157636791373831886967456320589708220219137556141104065094734173377513568373511612097050435132426608350879787688784646390242899955969071718348216328885834450215105058725433533776719158074043390881257587614495125963197168525883771897032429145
-350065369 319208735 44521456496863698728911963510653524876630475042295240074435222668882607096381437705850621136342821688618111659046306438623837465097724847737566157513351593063095577843263064035230462006868686576892037899378382406468120801597507834123281075093108794208153836881908434178839513489161646768450411118658866064760
-2060218994 1946043223 56312469398022909670236635086334904553302665496424591277087996113064393075310693844995965663947160222486178761741935506327835516277624460430181450292802834360724976701838361338230904004764511115279873515265325364671729600765057941485718305803874368460265173324375012707038078949514720443784809672434739391394
-348859478 486047271 63578529904279717544096579659734885121575283886072626718230632949600891106018451131129915865157675764791879663149288069798959505461654979937263948081560345222746334083402817181164255208790802816536212306902000509334761465449621953806270899950736579351124776383450108496252367170418747525612150563944975123906
-1012847796 1311216437 107243486601777772242638374457577339776317528440551074937135087437181884726459082109032187432358497015564158022857522392034581988349463322793155498885898276448910563934149930379053835676169014345745737841013305105289515557002942278171260275549569040668192618881235525671100756834785472005323827534045854021808
-1108188659 73002956 151810407586486667408500610375120927048683500513617431444670840241105574837701928593342245869128797827409414723271900961746330458448581633550115101600384307415146567797051023727766743006773542272526168313129133103058023736384944187039543948615045687254043611794926502253898300807539332514119558228945387167129
-1367891527 957164137 106888874248390844568539366153235739322099571679913873665077300044384432133087328354115380340807163549209282323027334598550750155549975114208460003069900549945106924101337174939911191001778776920788324219234143471273850920009578258747072782983631129326451246547584416492036977756842649955247390532642313031673
-1109319782 312705549 68015190517529836158634537187194145539209089151286211608940739126031607591236786876471227901028349157506546942329120582174574792522929377067808957872180985535362179866434055727341930725758279092655515659945664689974113139170079360543337269872976473433045950679959300152245802435127006127508284128226462808242
-77629902 1442208847 80002290434058357698705037287975366182731667140415670086832039653095542318592553515737200055739316505804591069679885064388918352070456242079053263046801427045473800954002156858264359891351667747947419377687560365442620710551484084591458509139700723197713694698034159851521977928611736821392017020477832037627
-1876665427 42392232 94638321177007894302596716790742601595610267055803051893624262442254201910985079684859058170169970420428917385076321338591735591117741499259022286688741758915429225227910702796255294628145448897362890044237980198958757175908654342104958253051607028469935368687936664986431151922321609065078691893879183189566
-559635525 1782490275 71365295096950865667427967092027725943054589808884646377867956234326896501650860934260905567087143525158504721587985301638221372965891635800328428504369765880956526297788284176796001565732103141822914955442743632126166019769189834699258461912602048002960149362882398622111007162709444738907309082349930416022
-743575094 32085276 110453584602878746921666429659148701413696049424461554973529870857842263810553552249241246313332783204009612578170167391820378603413812193480492843470042238103670641705732755583940134259794253885826115668806244330875357074130716388274584300227667628005544555311079499447940768673150499033922449576383527638186
-129818206 137481306 140835473021876998102027624369898079740454145360699735493249477450544517213808389172240396819192163023303266715591396745357472463341356969319556862236385556442904650009255138279232984377682804793224148996875324569988553808409865099882747099149617352970774643108291836908871124753511856578160489828404865664010
-570689556 1980693879 108353275894436996626884805554770441694866167783124178905252902978286824751598925059178987939656961896173921225105217325495780672752694383439806863122466053616930970271706866769895033633709670957150865005763659847698663978549871624628298476651867451354816053985969930735100533712902146229305011837945607699037
-2103057616 691067770 27024056452709622585420653808400360576905666723601175215091499609471301967744143329187436673102391151329548614036436716051750524604202541651425479133617399916946398092715923340837394931898418514658066714568415577105694330058750941172815095999450748361179045856199026312487393802486505084466623313733605784416
-481705774 1641440342 117722260864906582664053412535574009960206959347375143271559843536103545468155917636456429488071536410856812908716077868452921005581676036410474437330482920141777150620686622782118823530416466223519936589968714322291361670902315520017103387742935706013660879451297004924070011539277017717095949755265539759012
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhpriv b/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhpriv
deleted file mode 100644
index 0fa523146..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/dhpriv
+++ /dev/null
@@ -1,29 +0,0 @@
-130706940119084053627151828062879423433929180135817317038378606310097533503449582079984816816837125851552273641820339909167103200910805078308128174143174269944095368580519322913514764528012639683546377014716235962867583443566164615728897857285824741767070432119909660645255499710701356135207437699643611094585 139808169914464096465921128085565621767096724855516655439365028496569658038844954238931647642811548254956660405394116677296461848124300258439895306367561416289126854788101396379292925819850897858045772500578222021901631436550118958972312221974009238050517034542286574826081826542722270952769078386418682059418
-91966407878983240112417790733941098492087186469785726449910011271065622315680646030230288265496017310433513856308693810812043160919214636748486185212617634222158204354206411031403206076739932806412551605172319515223573351072757800448643935018534945933808900467686115619932664888581913179496050117713298715475 88086484332488517006277516020842172054013692832175783214603951240851750819999098631851571207693874357651112736088114133607400684776234181681933311972926752846692615822043533641407510569745606256772455614745111122033229877596984718963046218854103292937700694160593653595134512369959987897086639788909618660591
-94633950701209990078055218830969910271587805983595045023718108184189787131629772007048606080263109446462048743696369276578815611098215686598630889831104860221067872883514840819381234786050098278403321905311637820524177879167250981289318356078312300538871435101338967079907049912435983871847334104247675360099 136836393035803488129856151345450008294260680733328546556640578838845312279198933806383329293483852515700876505956362639881210101974254765087350842271260064592406308509078284840473735904755203614987286456952991025347168970462354352741159076541157478949094536405618626397435745496863324654768971213730622037771
-24685127248019769965088146297942173464487677364928435784091685260262292485380918213538979925891771204729738138857126454465630594391449913947358655368215901119137728648638547728497517587701248406019427282237279437409508871300675355166059811431191200555457304463617727969228965042729205402243355816702436970430 103488011917988946858248200111251786178288940265978921633592888293430082248387786443813155999158786903216094876295371112716734481877806417714913656921169196196571699893360825510307056269738593971532017994987406325068886420548597161498019372380511676314312298122272401348856314619382867707981701472607230523868
-116791045850880292989786005885944774698035781824784400772676299590038746153860847252706167458966356897309533614849402276819438194497464696186624618374179812548893947178936305721131565012344462048549467883494038577857638815386798694225798517783768606048713198211730870155881426709644960689953998714045816205549 25767875422998856261320430397505398614439586659207416236135894343577952114994718158163212134503751463610021489053571733974769536157057815413209619147486931502025658987681202196476489081257777148377685478756033509708349637895740799542063593586769082830323796978935454479273531157121440998804334199442003857410
-75582226959658406842894734694860761896800153014775231713388264961517169436476322183886891849966756849783437334069692683523296295601533803799559985845105706728538458624387103621364117548643541824878550074680443708148686601108223917493525070861593238005735446708555769966855130921562955491250908613793521520082 51100990616369611694975829054222013346248289055987940844427061856603230021472379888102172458517294080775792439385531234808129302064303666640376750139242970123503857186428797403843206765926798353022284672682073397573130625177187185114726049347844460311761033584101482859992951420083621362870301150543916815123
-22852401165908224137274273646590366934616265607879280260563022941455466297431255072303172649495519837876946233272420969249841381161312477263365567831938496555136366981954001163034914812189448922853839616662859772087929140818377228980710884492996109434435597500854043325062122184466315338260530734979159890875 35017410720028595029711778101507729481023945551700945988329114663345341120595162378885287946069695772429641825579528116641336456773227542256911497084242947904528367986325800537695079726856460817606404224094336361853766354225558025931211551975334149258299477750615397616908655079967952372222383056221992235704
-37364490883518159794654045194678325635036705086417851509136183713863262621334636905291385255662750747808690129471989906644041585863034419130023070856805511017402434123099100618568335168939301014148587149578150068910141065808373976114927339040964292334109797421173369274978107389084873550233108940239410902552 40916262212189137562350357241447034318002130016858244002788189310078477605649010031339865625243230798681216437501833540185827501244378529230150467789369234869122179247196276164931090039290879808162629109742198951942358028123056268054775108592325500609335947248599688175189333996086475013450537086042387719925
-42030470670714872936404499074069849778147578537708230270030877866700844337372497704027708080369726758812896818567830863540507961487472657570488625639077418109017434494794778542739932765561706796300920251933107517954265066804108669800167526425723377411855061131982689717887180411017924173629124764378241885274 124652439272864857598747946875599560379786580730218192165733924418687522301721706620565030507816884907589477351553268146177293719586287258662025940181301472851649975563004543250656807255226609296537922304346339513054316391667044301386950180277940536542183725690479451746977789001659540839582630251935163344393
-33176766914206542084736303652243484580303865879984981189372762326078776390896986743451688462101732968104375838228070296418541745483112261133079756514082093269959937647525005374035326747696591842313517634077723301677759648869372517403529488493581781546743147639937580084065663597330159470577639629864369972900 67485835091897238609131069363014775606263390149204621594445803179810038685760826651889895397414961195533694176706808504447269558421955735607423135937153901140512527504198912146656610630396284977496295289999655140295415981288181545277299615922576281262872097567020980675200178329219970170480653040350512964539
-131497983897702298481056962402569646971797912524360547236788650961059980711719600424210346263081838703940277066368168874781981151411096949736205282734026497995296147418292226818536168555712128736975034272678008697869326747592750850184857659420541708058277866000692785617873742438060271311159568468507825422571 5400380840349873337222394910303409203226429752629134721503171858543984393161548520471799318518954232197106728096866840965784563043721652790856860155702760027304915133166173298206604451826182024471262142046935060360564569939062438160049193241369468208458085699995573492688298015026628427440418009025072261296
-83265103005695640943261961853521077357830295830250157593141844209296716788437615940096402365505416686459260302419338241462783388722843946886845478224048360927114533590583464979009731440049610985062455108831881153988321298531365779084012803908832525921630534096740755274371500276660832724874701671184539131864 141285570207910287798371174771658911045525474449663877845558585668334618068814605961306961485855329182957174312715910923324965889174835444049526313968571611940626279733302104955951067959291852710640374412577070764165811275030632465290729619533330733368808295932659463215921521905553936914975786500018720073003
-68435028583616495789148116911096163791710022987677894923742899873596891423986951658100606742052014161171185231735413902875605720814417622409817842932759492013585936536452615480700628719795872201528559780249210820284350401473564919576289210869896327937002173624497942136329576506818749730506884927872345019446 134655528287263100540003157571441260698452262106680191153945271167894435782028803135774578949200580551016388918860856991026082917835209212892423567114480975540305860034439015788120390011692862968771136814777768281366591257663821495720134621172848947971117885754539770645621669309650476331439675400544167728223
-97765390064836080322590528352647421920257073063706996347334558390461274981996865736612531330863478931481491964338380362350271734683183807511097331539820133036984271653285063355715726806139083282458695728902452215405696318402583540317419929113959816258829534543044153959951908676300847164682178008704099351835 92552521881196975294401505656851872247567784546370503402756239533783651371688190302773864319828182042605239246779598629409815474038541272600580320815319709309111399294952620375093803971373108792300726524826209329889463854451846561437729676142864421966497641824498079067929811613947148353921163336822026640804
-145767094672933012300753301037546647564595762930138884463767054235112032706630891961371504668013023047595721138624016493638510710257541241706724342585654715468628355455898091951826598092812212209834746162089753649871544789379424903025374228231365026585872808685759231756517703720396301355299998059523896918448 116669462839999965355861187716880953863237226719689755457884414384663576662696981997535568446560375442532084973721539944428004043491468494548231348032618218312515409944970197902589794303562379864012797605284844016184274353252071642511293089390472576498394410829972525726474727579603392265177009323768966538608
-34172517877854802711907683049441723730724885305592620486269966708379625109832852005775048584124451699198484092407720344962116726808090368739361658889584507734617844212547181476646725256303630128954338675520938806905779837227983648887192531356390902975904503218654196581612781227843742951241442641220856414232 126013077261793777773236390821108423367648447987653714614732477073177878509574051196587476846560696305938891953527959347566502332765820074506907037627115954790645652211088723122982633069089920979477728376746424256704724173255656757918995039125823421607024407307091796807227896314403153380323770001854211384322
-9979624731056222925878866378063961280844793874828281622845276060532093809300121084179730782833657205171434732875093693074415298975346410131191865198158876447591891117577190438695367929923494177555818480377241891190442070100052523008290671797937772993634966511431668500154258765510857129203107386972819651767 76559085024395996164590986654274454741199399364851956129137304209855150918182685643729981600389513229011956888957763987167398150792454613751473654448162776379362213885827651020309844507723069713820393068520302223477225569348080362344052033711960892643036147232270133731530049660264526964146237693063093765111
-18162696663677410793062235946366423954875282212790518677684260521370996677183041664345920941714064628111537529793170736292618705900247450994864220481135611781148410617609559050220262121494712903009168783279356915189941268264177631458029177102542745167475619936272581126346266816618866806564180995726437177435 63244550218824945129624987597134280916829928261688093445040235408899092619821698537312158783367974202557699994650667088974727356690181336666077506063310290098995215324552449858513870629176838494348632073938023916155113126203791709810160925798130199717340478393420816876665127594623142175853115698049952126277
-4817943161362708117912118300716778687157593557807116683477307391846133734701449509121209661982298574607233039490570567781316652698287671086985501523197566560479906850423709894582834963398034434055472063156147829131181965140631257939036683622084290629927807369457311894970308590034407761706800045378158588657 61612160237840981966750225147965256022861527286827877531373888434780789812764688703260066154973576040405676432586962624922734102370509771313805122788566405984830112657060375568510809122230960988304085950306616401218206390412815884549481965750553137717475620505076144744211331973240555181377832337912951699135
-36363324947629373144612372870171042343590861026293829791335153646774927623889458346817049419803031378037141773848560341251355283891019532059644644509836766167835557471311319194033709837770615526356168418160386395260066262292757953919140150454538786106958252854181965875293629955562111756775391296856504912587 86831561031659073326747216166881733513938228972332631084118628692228329095617884068498116676787029033973607066377816508795286358748076949738854520048303930186595481606562375516134920902325649683618195251332651685732712539073110524182134321873838204219194459231650917098791250048469346563303077080880339797744
-26406869969418301728540993821409753036653370247174689204659006239823766914991146853283367848649039747728229875444327879875275718711878211919734397349994000106499628652960403076186651083084423734034070082770589453774926850920776427074440483233447839259180467805375782600203654373428926653730090468535611335253 100139935381469543084506312717977196291289016554846164338908226931204624582010530255955411615528804421371905642197394534614355186795223905217732992497673429554618838376065777445760355552020655667172127543653684405493978325270279321013143828897100500212200358450649158287605846102419527584313353072518101626851
-92613116984760565837109105383781193800503303131143575169488835702472221039082994091847595094556327985517286288659598094631489552181233202387028607421487026032402972597880028640156629614572656967808446397456622178472130864873587747608262139844319805074476178618930354824943672367046477408898479503054125369731 30023391082615178562263328892343821010986429338255434046051061316154579824472412477397496718186615690433045030046315908170615910505869972621853946234911296439134838951047107272129711854649412919542407760508235711897489847951451200722151978578883748353566191421685659370090024401368356823252748749449302536931
-31485815361342085113278193504381994806529237123359718043079410511224607873725611862217941085749929342777366642477711445011074784469367917758629403998067347054115844421430072631339788256386509261291675080191633908849638316409182455648806133048549359800886124554879661473112614246869101243501787363247762961784 114503770698890543429251666713050844656853278831559195214556474458830029271801818536133531843456707474500106283648085144619097572354066554819887152106174400667929098257361286338795493838820850475790977445807435511982704395422526800272723708548541616513134676140304653112325071112865020365664833601046215694089
-76882090884790547431641385530818076533805072109483843307806375918023300052767710853172670987385376253156912268523505310624133905633437815297307463917718596711590885553760690350221265675690787249135345226947453988081566088302642706234126002514517416493192624887800567412565527886687096028028124049522890448168 15056463217273240496622619354104573042767532856243223052125822509781815362480522535564283485059790932505429110157271454207173426525345813426696743168079246510944969446574354255284952839036431873039487144279164893710061580467579842173706653409487110282515691099753380094215805485573768509475850463001549608836
-52345178981230648108672997265819959243255047568833938156267924185186047373470984278294897653277996726416846430969793375429223610099546622112048283560483136389901514170116723365811871938630317974150540909650396429631704968748113009366339718498979597226137532343384889080245796447593572468846438769413505393967 32148494517199936472358017244372701214529606506776255341152991328091526865643069587953759877295255050519124541457805199596762210567333445908166076384465183589342153762720515477404466193879418014196727238972417616122646440870364200208488239778452378059236162633837824948613596114768455832408342040970780086
-41095268619128788015767564971105114602454449306041732792746397800275041704886345704294273937217484580365505320134717320083763349380629342859670693445658118959823430378844830923452105707338162448974869312012791385772125813291388247857971218575518319578818336960572244046567099555399203328678654466958536663208 92166550199033418923713824997841892577149715275633481076285269142670107687867024550593869464613175882141630640739938334001211714884975032600306279287443909448541179109981755796752132502127330056736913454039526413284519137059580845856736918773597087836203497066909257930043736166431682872083389105176299181629
-40049143661018504441607875135884755310012910557581028447435354354754245291878800571089144452035026644953322330676651798951447670184106450649737772686119714700743396359069052813433030118630105307022867200053964644574786137276428546712005171080129190959914708907200288299169344380390093918556722227705114244981 108159089972386282154772900619022507336076619354549601813179459338897131937353741544606392560724999980281424266891537298473163753022749859939445293926707568015958367188089915420630082556748668489756475027008449860889202622698060097015044886961901650857610841562477736791450080980702347705778074391774667412741
-69905259478181995876884927656894491893594530150260951315109404530530357998889589977208787140430938039028941393673520799460431992051993157468616168400324834880926190141581037597526917869362292931957289043707855837933490285814769110495657056206391880865972389421774822461752702336812585852278453803972600333734 71821415380277072313878763768684432371552628204186742842154591000123020597011744840460964835414360968627162765288463383113375595799297552681618876474019263288277398833725479226930770694271622605114061622753165584075733358178384410640349907375170170910499615355511313349300918885560131539570707695789106185664
-26945345439378873515011714350080059082081595419023056538696949766471272811362104837806324694947413603019863785876836706911406330379274553386254346050697348395574746891556054334903838949157798006141473389066020212044825140294048709654273698482867946522782450500680195477050110145664069582549935651920545151500 80313315938584480048642653013876614091607852535582224914294013785054094052454758327935781971746329853786568549510067442145637007308960551652864942042189241081946607011847245280773379099020221884296226818685556430275385068764313042226925852500883894269809033380734632866477789520106865758504064806906234130588
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha1.txt b/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha1.txt
deleted file mode 100644
index 4299a9655..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha1.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-test_case = 1
-key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-key_len = 20
-data = "Hi There"
-data_len = 8
-digest = 0xb617318655057264e28bc0b6fb378c8ef146be00
-
-test_case = 2
-key = "Jefe"
-key_len = 4
-data = "what do ya want for nothing?"
-data_len = 28
-digest = 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79
-
-test_case = 3
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-key_len = 20
-data = 0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-data_len = 50
-digest = 0x125d7342b9ac11cd91a39af48aa17b4f63f175d3
-
-test_case = 4
-key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819
-key_len = 25
-data = 0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd
-data_len = 50
-digest = 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da
-
-test_case = 5
-key = 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
-key_len = 20
-data = "Test With Truncation"
-data_len = 20
-digest = 0x4c1a03424b55e07fe7f27be1d58bb9324a9a5a04
-digest-96 = 0x4c1a03424b55e07fe7f27be1
-
-test_case = 6
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-key_len = 80
-data = "Test Using Larger Than Block-Size Key - Hash Key First"
-data_len = 54
-digest = 0xaa4ae5e15272d00e95705637ce8a3b55ed402112
-
-test_case = 7
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-key_len = 80
-data = "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-data_len = 73
-digest = 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha256.txt b/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha256.txt
deleted file mode 100644
index a0b2e73aa..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/hmac-sha256.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-test_case = 1
-key = 0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
-data = 0x4869205468657265
-digest = 0xb0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7
-
-test_case = 2
-key = 0x4a656665
-data = 0x7768617420646f2079612077616e7420666f72206e6f7468696e673f
-digest = 0x5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
-
-test_case = 3
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-data = 0xdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-digest = 0x773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe
-
-test_case = 4
-key = 0x0102030405060708090a0b0c0d0e0f10111213141516171819
-data = 0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd
-digest = 0x82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b
-
-test_case = 6
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-data = 0x54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374
-digest = 0x60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54
-
-test_case = 7
-key = 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-data = 0x5468697320697320612074657374207573696e672061206c6172676572207468616e20626c6f636b2d73697a65206b657920616e642061206c6172676572207468616e20626c6f636b2d73697a6520646174612e20546865206b6579206e6565647320746f20626520686173686564206265666f7265206265696e6720757365642062792074686520484d414320616c676f726974686d2e
-digest = 0x9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2
diff --git a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/linkparse.txt b/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/linkparse.txt
deleted file mode 100644
index eb13e6b53..000000000
--- a/models/openid-php-openid-782224d/Tests/Auth/OpenID/data/linkparse.txt
+++ /dev/null
@@ -1,594 +0,0 @@
-Num Tests: 73
-
-OpenID link parsing test cases
-Copyright (C) 2005-2008, JanRain, Inc.
-See COPYING for license information.
-
-File format
------------
-
-All text before the first triple-newline (this chunk) should be ignored.
-
-This file may be interpreted as Latin-1 or UTF-8.
-
-Test cases separated by three line separators (`\n\n\n'). The test
-cases consist of a headers section followed by a data block. These are
-separated by a double newline. The headers consist of the header name,
-followed by a colon, a space, the value, and a newline. There must be
-one, and only one, `Name' header for a test case. There may be zero or
-more link headers. The `Link' header consists of whitespace-separated
-attribute pairs. A link header with an empty string as a value
-indicates an empty but present link tag. The attribute pairs are `='
-separated and not quoted.
-
-Optional Links and attributes have a trailing `*'. A compilant
-implementation may produce this as output or may not. A compliant
-implementation will not produce any output that is absent from this
-file.
-
-
-Name: Well-formed link rel (in CAPS)
-Link: rel=openid.server href=http://www.myopenid.com/server
-
-
-
-
-
-
-
-
-Name: No link tag at all
-
-
-
-
-
-
-
-Name: Link element first
-
-
-
-
-Name: Link inside HTML, not head
-
-
-
-
-
-Name: Link inside head, not html
-
-
-
-
-
-Name: Link inside html, after head
-
-
-
-
-
-
-
-Name: Link inside html, before head
-
-
-
-
-
-
-Name: Link before html and head
-
-
-
-
-
-
-Name: Link after html document with head
-
-
-
-
-
-
-
-
-Name: Link inside html inside head, inside another html
-
-
-
-
-
-
-
-Name: Link inside html inside head
-
-
-
-
-
-
-Name: link inside body inside head inside html
-
-
-
-
-
-
-
-Name: Link inside head inside head inside html
-
-
-
-
-
-
-
-Name: Link inside script inside head inside html
-
-
-
-
-
-
-Name: Link inside comment inside head inside html
-
-
-
-
-
-
-Name: Link inside of head after short head
-
-
-