diff options
-rw-r--r-- | Auth/OpenID/Server.php | 3 | ||||
-rw-r--r-- | Tests/Auth/OpenID/Server.php | 12 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Auth/OpenID/Server.php b/Auth/OpenID/Server.php index e43ccc4..1f53044 100644 --- a/Auth/OpenID/Server.php +++ b/Auth/OpenID/Server.php @@ -908,7 +908,8 @@ class Auth_OpenID_CheckIDRequest extends Auth_OpenID_Request { $tr = Auth_OpenID_TrustRoot::_parse($this->trust_root); if ($tr === false) { - return new Auth_OpenID_MalformedTrustRoot(null, $this->trust_root); + return new Auth_OpenID_MalformedTrustRoot($this->message, + $this->trust_root); } if ($this->return_to !== null) { diff --git a/Tests/Auth/OpenID/Server.php b/Tests/Auth/OpenID/Server.php index 152442f..cddcb8e 100644 --- a/Tests/Auth/OpenID/Server.php +++ b/Tests/Auth/OpenID/Server.php @@ -1058,6 +1058,18 @@ class Tests_Auth_OpenID_CheckID extends PHPUnit_TestCase { $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); |