/** * @since 1.0 * * @param DIWikiPage $subject */ public function tryToFindLinksFor(DIWikiPage $subject) { $prefixedText = $subject->getTitle()->getPrefixedText(); if (!$this->canBuildLinksFromText($prefixedText)) { return; } $this->buildHierarchicalLinksFromText($prefixedText); }
/** * @depends testFileUploadForDummyTextFile */ public function testReUploadDummyTextFileToEditFilePage() { $subject = new DIWikiPage('Foo.txt', NS_FILE); $dummyTextFile = $this->fixturesFileProvider->newUploadForDummyTextFile('Foo.txt'); $dummyTextFile->doUpload(); $this->pageEditor->editPage($subject->getTitle())->doEdit('[[Ichi::Maru|Kyū]]'); // File page content is kept from the initial upload $expected = array('propertyCount' => 4, 'propertyKeys' => array('HasFile', '_MEDIA', '_MIME', '_SKEY', 'Ichi'), 'propertyValues' => array('File:Foo.txt', 'TEXT', 'text/plain', 'Foo.txt', 'Maru')); $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $this->getStore()->getSemanticData($subject)); }
public function testExportRedirect() { $semanticData = $this->semanticDataFactory->newEmptySemanticData(__METHOD__); $redirectProperty = new DIProperty('_REDI'); $redirectTarget = new DIWikiPage('FooRedirectTarget', NS_MAIN, ''); $semanticData->addPropertyObjectValue($redirectProperty, DIWikiPage::newFromTitle($redirectTarget->getTitle(), '__red')); $exportData = Exporter::getInstance()->makeExportData($semanticData); $this->assertCount(1, $exportData->getValues(Exporter::getInstance()->getSpecialNsResource('swivt', 'redirectsTo'))); $this->assertCount(1, $exportData->getValues(Exporter::getInstance()->getSpecialNsResource('owl', 'sameAs'))); $expectedResourceElement = new ExpNsResource('FooRedirectTarget', Exporter::getInstance()->getNamespaceUri('wiki'), 'wiki', $redirectTarget); $this->exportDataValidator->assertThatExportDataContainsResource($expectedResourceElement, Exporter::getInstance()->getSpecialNsResource('owl', 'sameAs'), $exportData); }
public function testFileUploadForDummyTextFile() { $subject = new DIWikiPage('RdfLinkedFile.txt', NS_FILE); $fileNS = Localizer::getInstance()->getNamespaceTextById(NS_FILE); $dummyTextFile = $this->fixturesFileProvider->newUploadForDummyTextFile('RdfLinkedFile.txt'); $dummyTextFile->doUpload('[[HasFile::File:RdfLinkedFile.txt]]'); $exportController = new ExportController(new RDFXMLSerializer()); $exportController->enableBacklinks(false); ob_start(); $exportController->printPages(array($subject->getTitle()->getPrefixedDBKey())); $output = ob_get_clean(); $expected = array("<rdfs:label>{$fileNS}:RdfLinkedFile.txt</rdfs:label>", '<swivt:file rdf:resource="' . $dummyTextFile->getLocalFile()->getFullURL() . '"/>', '<property:Media_type-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#string">TEXT</property:Media_type-23aux>', '<property:MIME_type-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#string">text/plain</property:MIME_type-23aux>'); $this->stringValidator->assertThatStringContains($expected, $output); }
/** * @since 2.1 * * @see https://en.wikipedia.org/wiki/Demographics_of_Paris * * @return Subobject */ public function getDemographics() { if ($this->targetSubject === null) { throw new RuntimeException('Expected a target subject'); } $subobject = new Subobject($this->targetSubject->getTitle()); $subobject->setEmptyContainerForId('Paris#Demographics'); $yearProperty = new YearProperty(); $yearDataValue = $this->dataValueFactory->newPropertyObjectValue($yearProperty->getProperty(), '2009'); $subobject->addDataValue($yearDataValue); $subobject->addDataValue($this->getAreaValue()); $subobject->addDataValue($this->getPopulationValue()); $subobject->addDataValue($this->getPopulationDensityValue()); return $subobject; }
public function testForYetUnknownRedirectTarget() { $revision = $this->getMockBuilder('\\Revision')->disableOriginalConstructor()->getMock(); $wikiPage = $this->getMockBuilder('\\WikiPage')->disableOriginalConstructor()->getMock(); $wikiPage->expects($this->atLeastOnce())->method('getRevision')->will($this->returnValue($revision)); $pageCreator = $this->getMockBuilder('\\SMW\\MediaWiki\\PageCreator')->disableOriginalConstructor()->getMock(); $pageCreator->expects($this->atLeastOnce())->method('createPage')->will($this->returnValue($wikiPage)); $this->applicationFactory->registerObject('PageCreator', $pageCreator); $subject = new DIWikiPage('Foo', NS_MAIN); $target = new DIWikiPage('Bar', NS_MAIN); $store = $this->getMockBuilder('\\SMW\\Store')->disableOriginalConstructor()->getMockForAbstractClass(); $store->expects($this->once())->method('changeTitle')->with($this->equalTo($subject->getTitle()), $this->equalTo($target->getTitle()), $this->anything(), $this->anything()); $semanticData = new SemanticData($subject); $semanticData->addPropertyObjectValue(new DIProperty('_REDI'), $target); $instance = new StoreUpdater($store, $semanticData); $instance->setUpdateJobsEnabledState(true); $instance->doUpdate(); }
/** * @dataProvider instanceProvider */ public function testGetTitleAndNewFromTitleRoundrtip(DIWikiPage $di) { $newDi = DIWikiPage::newFromTitle($di->getTitle()); $this->assertTrue($newDi->equals($di)); }