/** * @dataProvider inequalTermProvider */ public function testInequality($inequalTerm) { $term = new TermFallback('foor', 'bar', 'fooa', 'foos'); $this->assertFalse($term->equals($inequalTerm)); }
private function getHtmlForFallbackIndicator(TermFallback $term) { $requestedLanguage = $term->getLanguageCode(); $actualLanguage = $term->getActualLanguageCode(); $sourceLanguage = $term->getSourceLanguageCode(); // FIXME: TermFallback should either return equal values or null $sourceLanguage = $sourceLanguage === null ? $actualLanguage : $sourceLanguage; $isInRequestedLanguage = $actualLanguage === $requestedLanguage; $isInSourceLanguage = $actualLanguage === $sourceLanguage; if ($isInRequestedLanguage && $isInSourceLanguage) { // This is neither a fallback nor a transliteration return ''; } $sourceLanguageName = $this->languageNameLookup->getName($sourceLanguage); $actualLanguageName = $this->languageNameLookup->getName($actualLanguage); // Generate indicator text if ($isInSourceLanguage) { $text = $sourceLanguageName; } else { $text = wfMessage('wikibase-language-fallback-transliteration-hint', $sourceLanguageName, $actualLanguageName)->text(); } // Generate HTML class names $classes = 'wb-language-fallback-indicator'; if (!$isInSourceLanguage) { $classes .= ' wb-language-fallback-transliteration'; } if (!$isInRequestedLanguage && $this->getBaseLanguage($actualLanguage) === $this->getBaseLanguage($requestedLanguage)) { $classes .= ' wb-language-fallback-variant'; } $attributes = array('class' => $classes); $html = Html::element('sup', $attributes, $text); return $html; }