public function testUnknownNamespaceCheck()
 {
     $title = new ForeignTitle(null, 'this', 'that');
     $this->assertEquals(false, $title->isNamespaceIdKnown());
     $this->assertEquals('this', $title->getNamespaceName());
     $this->assertEquals('that', $title->getText());
 }
 /**
  * @dataProvider basicProvider
  */
 public function testBasic($title, $ns, ForeignTitle $foreignTitle)
 {
     $factory = new NaiveForeignTitleFactory();
     $testTitle = $factory->createForeignTitle($title, $ns);
     $this->assertEquals($testTitle->isNamespaceIdKnown(), $foreignTitle->isNamespaceIdKnown());
     if ($testTitle->isNamespaceIdKnown() && $foreignTitle->isNamespaceIdKnown()) {
         $this->assertEquals($testTitle->getNamespaceId(), $foreignTitle->getNamespaceId());
     }
     $this->assertEquals($testTitle->getNamespaceName(), $foreignTitle->getNamespaceName());
     $this->assertEquals($testTitle->getText(), $foreignTitle->getText());
     $this->assertEquals(str_replace(' ', '_', $title), $foreignTitle->getFullText());
 }
 /**
  * @dataProvider basicProvider
  */
 public function testBasic($title, $ns, ForeignTitle $foreignTitle)
 {
     $foreignNamespaces = array(0 => '', 1 => 'Talk', 100 => 'Portal', 9000 => 'Bogus');
     $factory = new NamespaceAwareForeignTitleFactory($foreignNamespaces);
     $testTitle = $factory->createForeignTitle($title, $ns);
     $this->assertEquals($testTitle->isNamespaceIdKnown(), $foreignTitle->isNamespaceIdKnown());
     if ($testTitle->isNamespaceIdKnown() && $foreignTitle->isNamespaceIdKnown()) {
         $this->assertEquals($testTitle->getNamespaceId(), $foreignTitle->getNamespaceId());
     }
     $this->assertEquals($testTitle->getNamespaceName(), $foreignTitle->getNamespaceName());
     $this->assertEquals($testTitle->getText(), $foreignTitle->getText());
 }
 /**
  * Determines which local title best corresponds to the given foreign title.
  * If such a title can't be found or would be locally invalid, null is
  * returned.
  *
  * @param ForeignTitle $foreignTitle The ForeignTitle to convert
  * @return Title|null
  */
 public function createTitleFromForeignTitle(ForeignTitle $foreignTitle)
 {
     global $wgContLang;
     if ($foreignTitle->isNamespaceIdKnown()) {
         $foreignNs = $foreignTitle->getNamespaceId();
         // For built-in namespaces (0 <= ID < 100), we try to find a local NS with
         // the same namespace ID
         if ($foreignNs < 100 && MWNamespace::exists($foreignNs)) {
             return Title::makeTitleSafe($foreignNs, $foreignTitle->getText());
         }
     }
     // Do we have a local namespace by the same name as the foreign
     // namespace?
     $targetNs = $wgContLang->getNsIndex($foreignTitle->getNamespaceName());
     if ($targetNs !== false) {
         return Title::makeTitleSafe($targetNs, $foreignTitle->getText());
     }
     // Otherwise, just fall back to main namespace
     return Title::makeTitleSafe(0, $foreignTitle->getFullText());
 }