function Auth_OpenID_CheckIDResponse(&$request, $mode = 'id_res') { parent::Auth_OpenID_ServerResponse($request); $this->fields['mode'] = $mode; $this->signed = array(); if ($mode == 'id_res') { array_push($this->signed, 'mode', 'identity', 'return_to'); } }
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' => '*****@*****.**', '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' => '*****@*****.**', 'fullname' => 'Leonhard Euler'), $sreg_data_resp); }
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_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()); }