/**
  * @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;
 }