/** * @dataProvider provideRegexFilters */ public function testAddTextFilters($contains, $missing) { $query = new DumpQuery(); foreach ($contains as $regex) { $query->addTextFilter($regex, DumpQuery::TYPE_CONTAINS); } foreach ($missing as $regex) { $query->addTextFilter($regex, DumpQuery::TYPE_MISSING); } $this->assertEquals($contains, $query->getTextFilters(DumpQuery::TYPE_CONTAINS)); $this->assertEquals($missing, $query->getTextFilters(DumpQuery::TYPE_MISSING)); $this->assertEquals(count($contains) + count($missing), $query->getConditionCount()); }
/** * @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; }