Ejemplo n.º 1
0
 /**
  * @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);
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }