function fromQuery($query) { global $_Auth_OpenID_OpenID_Prefix; $session_classes = array('DH-SHA1' => 'Auth_OpenID_DiffieHellmanServerSession', null => 'Auth_OpenID_PlainTextServerSession'); $session_type = null; if (array_key_exists($_Auth_OpenID_OpenID_Prefix . 'session_type', $query)) { $session_type = $query[$_Auth_OpenID_OpenID_Prefix . 'session_type']; } if (!array_key_exists($session_type, $session_classes)) { return new Auth_OpenID_ServerError($query, "Unknown session type {$session_type}"); } $session_cls = $session_classes[$session_type]; $session = call_user_func_array(array($session_cls, 'fromQuery'), array($query)); if ($session === null || _isError($session)) { return new Auth_OpenID_ServerError($query, "Error parsing {$session_type} session"); } return new Auth_OpenID_AssociateRequest($session); }
function test_answerAllow() { $answer = $this->request->answer(true); if (_isError($answer)) { $this->fail($answer->toString()); return; } $this->assertEquals($answer->request, $this->request); $this->assertEquals($answer->fields, array('mode' => 'id_res', 'identity' => $this->request->identity, 'return_to' => $this->request->return_to)); $this->assertEquals($answer->signed, array("mode", "identity", "return_to")); }