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()); }