Make $headers['content-language'] a string instead of Bcp47Code

Page bundle headers should not contain objects, as they are supposed
to represent plaintext HTTP headers.

Change-Id: I2a87a8233b9e42cbafdba63bdf513abe00d826ce
This commit is contained in:
Isabelle Hurbain-Palatin 2024-06-11 10:46:59 +02:00
parent 4e05de07d9
commit f65d1c44d0
2 changed files with 9 additions and 1 deletions

View file

@ -101,7 +101,7 @@ final class PageBundleParserOutputConverter {
$headers = $pageBundleData['headers'] ?? [];
if ( $lang ) {
$headers['content-language'] = $lang;
$headers['content-language'] = $lang->toBcp47Code();
}
return new PageBundle(

View file

@ -162,6 +162,14 @@ class PageBundleParserOutputConverterTest extends MediaWikiUnitTestCase {
];
}
public function testLanguageTransfer() {
$parserOutput = new ParserOutput( '' );
$parserOutput->setLanguage( new Bcp47CodeValue( 'de' ) );
$pb = PageBundleParserOutputConverter::pageBundleFromParserOutput( $parserOutput );
$this->assertIsString( $pb->headers['content-language'] );
$this->assertEquals( 'de', $pb->headers['content-language'] );
}
private function getParsoidOutput(
string $rawText,
?array $pageBundleData