diff options
-rw-r--r-- | Auth/OpenID/AX.php | 11 | ||||
-rw-r--r-- | Tests/Auth/OpenID/AX.php | 15 |
2 files changed, 24 insertions, 2 deletions
diff --git a/Auth/OpenID/AX.php b/Auth/OpenID/AX.php index dfc0a3c..7473b96 100644 --- a/Auth/OpenID/AX.php +++ b/Auth/OpenID/AX.php @@ -796,8 +796,15 @@ class Auth_OpenID_AX_FetchResponse extends Auth_OpenID_AX_KeyValueMessage { // unique to the fetch_response $ax_args = $this->_newArgs(); - if ($this->update_url) { - $ax_args['update_url'] = $this->update_url; + $update_url = null; + if ($request) { + $update_url = $request->update_url; + } else { + $update_url = $this->update_url; + } + + if ($update_url) { + $ax_args['update_url'] = $update_url; } Auth_OpenID::update(&$ax_args, $kv_args); diff --git a/Tests/Auth/OpenID/AX.php b/Tests/Auth/OpenID/AX.php index 0e94dd9..e3c353e 100644 --- a/Tests/Auth/OpenID/AX.php +++ b/Tests/Auth/OpenID/AX.php @@ -458,6 +458,7 @@ class FetchResponseTest extends PHPUnit_TestCase { $this->value_a = 'monkeys'; $this->type_a = 'http://phone.home/'; $this->alias_a = 'robocop'; + $this->request_update_url = 'http://update.bogus/'; } function test_construct() @@ -494,6 +495,20 @@ class FetchResponseTest extends PHPUnit_TestCase { $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, + ); + $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( |