public function testIDTonenCreation() { $header = array("alg" => "none"); $payload = array("iss" => "iss_url", "user_id" => "user_id", "aud" => "client_id", "exp" => gmmktime(0, 0, 0, 8, 1, 2012), "iat" => gmmktime(0, 0, 0, 7, 31, 2012)); $dummy_key = "dummy key"; // construct, setHeader, setPayload $idToken = new Akita_OpenIDConnect_Model_IDToken($header, $payload, $dummy_key); // getTokenString - Success $token_string = $idToken->getTokenString(); $this->assertEquals('eyJhbGciOiJub25lIiwidHlwIjoiSldTIn0.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMH0.', $token_string); // setPayloadItem $idToken->setPayloadItem('ops', 'ops_string'); $token_string = $idToken->getTokenString(); $this->assertEquals('eyJhbGciOiJub25lIiwidHlwIjoiSldTIn0.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMCwib3BzIjoib3BzX3N0cmluZyJ9.', $token_string); // setHeaderItem $idToken->setHeaderItem('alg', 'HS256'); $shared_key = 'This is shared key'; $idToken->setKey($shared_key); $token_string = $idToken->getTokenString(); $this->assertEquals('eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJpc3MiOiJpc3NfdXJsIiwidXNlcl9pZCI6InVzZXJfaWQiLCJhdWQiOiJjbGllbnRfaWQiLCJleHAiOjEzNDM3NzkyMDAsImlhdCI6MTM0MzY5MjgwMCwib3BzIjoib3BzX3N0cmluZyJ9.kxS6-O34X5XbvwacHcctQe5cJkasqJ5G0zU4MDqHIM0', $token_string); // setAccessTokenHash $idToken->setAccessTokenHash('access_token_string'); $excepted_payload = array('iss' => 'iss_url', 'user_id' => 'user_id', 'aud' => 'client_id', 'exp' => gmmktime(0, 0, 0, 8, 1, 2012), 'iat' => gmmktime(0, 0, 0, 7, 31, 2012), 'ops' => 'ops_string', 'at_hash' => 'JnPXVfC--Wj6h3moc1dyiQ'); $payload = $idToken->getPayload(); $this->assertEquals($excepted_payload, $payload); // setCodeHash $idToken->setCodeHash('authorization_code_string'); $excepted_payload = array('iss' => 'iss_url', 'user_id' => 'user_id', 'aud' => 'client_id', 'exp' => gmmktime(0, 0, 0, 8, 1, 2012), 'iat' => gmmktime(0, 0, 0, 7, 31, 2012), 'ops' => 'ops_string', 'at_hash' => 'JnPXVfC--Wj6h3moc1dyiQ', 'c_hash' => 'f0zfwRaKGf53ea5EmauamA'); $payload = $idToken->getPayload(); $this->assertEquals($excepted_payload, $payload); // TODO: getTokenString fail $idToken->setHeaderItem('alg', 'invalid'); try { $idToken->setKey($dummy_key); $token_string = $idToken->getTokenString(); } catch (Exception $e) { $this->assertEquals('InvalidFormat', $e->getMessage()); } }