/** * @dataProvider provideDumpQueryObjects */ public function testSerializeDeserializeRoundtrip(DumpQuery $object) { $jsoned = json_encode($object->jsonSerialize()); $this->assertTrue(is_array(json_decode($jsoned, true))); $dejsoned = DumpQuery::jsonDeserialize($jsoned); $this->assertInstanceOf('\\Mediawiki\\Dump\\DumpQuery', $dejsoned); $this->assertEquals($object, $dejsoned); }
/** * @param Page $page * @param DumpQuery $query * * @return bool */ private function matchPage(Page $page, DumpQuery $query) { //Check namespaces if (count($query->getNamespaceFilters()) !== 0 && !in_array($page->getTitle()->getNs(), $query->getNamespaceFilters())) { return false; } //Check Title foreach ($query->getTitleFilters(DumpQuery::TYPE_CONTAINS) as $regex) { if (!preg_match($regex, $page->getTitle()->getTitle())) { return false; } } foreach ($query->getTitleFilters(DumpQuery::TYPE_MISSING) as $regex) { if (preg_match($regex, $page->getTitle()->getTitle())) { return false; } } //Check Text foreach ($query->getTextFilters(DumpQuery::TYPE_CONTAINS) as $regex) { if (!preg_match($regex, $page->getRevisions()->getLatest()->getContent())) { return false; } } foreach ($query->getTextFilters(DumpQuery::TYPE_MISSING) as $regex) { if (preg_match($regex, $page->getRevisions()->getLatest()->getContent())) { return false; } } return true; }