+
+ /**
+ * @covers ImagePage::getLanguageForRendering()
+ * @dataProvider provideGetLanguageForRendering
+ *
+ * @param string|null $expected Expected language code
+ * @param string $wikiLangCode Wiki language code
+ * @param string|null $lang lang=... URL parameter
+ */
+ public function testGetLanguageForRendering( $expected = null, $wikiLangCode, $lang = null ) {
+ $params = [];
+ if ( $lang !== null ) {
+ $params['lang'] = $lang;
+ }
+ $request = new FauxRequest( $params );
+ $this->setMwGlobals( 'wgLanguageCode', $wikiLangCode );
+
+ $page = $this->getImagePage( 'translated.svg' );
+ $page = TestingAccessWrapper::newFromObject( $page );
+
+ /** @var ImagePage $page */
+ $result = $page->getLanguageForRendering( $request, $page->getDisplayedFile() );
+ $this->assertEquals( $expected, $result );
+ }
+
+ public function provideGetLanguageForRendering() {
+ return [
+ [ 'ru', 'ru' ],
+ [ 'ru', 'ru', 'ru' ],
+ [ null, 'en' ],
+ [ null, 'fr' ],
+ [ null, 'en', 'en' ],
+ [ null, 'fr', 'fr' ],
+ [ null, 'ru', 'en' ],
+ [ 'de', 'ru', 'de' ],
+ ];
+ }