MDL-77990 enrol_lti: test covering the response header parsing

Makes sure the http_client shim properly returns the correct, final
http headers, not intermediate headers such as 302, 100 etc.
This commit is contained in:
Jake Dallimore 2023-05-05 10:18:51 +08:00
parent 176a323b4e
commit 159a131989

View File

@ -24,7 +24,7 @@ namespace enrol_lti\local\ltiadvantage\lib;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \enrol_lti\local\ltiadvantage\lib\http_client
*/
class http_client_test extends \basic_testcase {
class http_client_test extends \advanced_testcase {
/**
* Verify the http_client delegates to curl during a "GET" request.
@ -116,4 +116,17 @@ class http_client_test extends \basic_testcase {
'delete' => ['DELETE'],
];
}
/**
* Verify that the response headers are properly read from curl, and exclude things like redirect headers, or 100-continues.
* @covers ::request
*/
public function test_header_parsing(): void {
$testurl = $this->getExternalTestFileUrl('/test_redir.php');
$client = new http_client(new \curl());
$response = $client->request('POST', "$testurl?redir=1",
['headers' => ['Expect' => '100-continue'], 'body' => 'foo']);
$headers = $response->getHeaders();
$this->assertEquals('200 OK', reset($headers));
}
}