Ejemplo n.º 1
0
 /**
  * @dataProvider provideRegexFilters
  */
 public function testAddTitleFilters($contains, $missing)
 {
     $query = new DumpQuery();
     foreach ($contains as $regex) {
         $query->addTitleFilter($regex, DumpQuery::TYPE_CONTAINS);
     }
     foreach ($missing as $regex) {
         $query->addTitleFilter($regex, DumpQuery::TYPE_MISSING);
     }
     $this->assertEquals($contains, $query->getTitleFilters(DumpQuery::TYPE_CONTAINS));
     $this->assertEquals($missing, $query->getTitleFilters(DumpQuery::TYPE_MISSING));
     $this->assertEquals(count($contains) + count($missing), $query->getConditionCount());
 }
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;
 }