/** * @dataProvider provideNamespaceFilters */ public function testAddNamespaceFilters($filters) { $query = new DumpQuery(); foreach ($filters as $ns) { $query->addNamespaceFilter($ns); } $this->assertEquals($filters, $query->getNamespaceFilters()); $this->assertEquals(count($filters), $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; }