function testRebuildZendSearchLuceneIndex() { // Setup Object::remove_extension('ContentController', 'ZendSearchLuceneContentController'); Object::remove_extension('SiteConfig', 'ZendSearchLuceneSiteConfig'); Object::remove_extension('LeftAndMain', 'ZendSearchLuceneCMSDecorator'); Object::remove_extension('SiteTree', 'ZendSearchLuceneSearchable'); Object::remove_extension('File', 'ZendSearchLuceneSearchable'); ZendSearchLuceneSearchable::$pageLength = 10; ZendSearchLuceneSearchable::$alwaysShowPages = 3; ZendSearchLuceneSearchable::$maxShowPages = 8; ZendSearchLuceneSearchable::$encoding = 'utf-8'; ZendSearchLuceneSearchable::$cacheDirectory = TEMP_FOLDER; ZendSearchLuceneWrapper::$indexName = 'Test'; ZendSearchLuceneSearchable::enable(); $index = ZendSearchLuceneWrapper::getIndex(true); // Blank database $this->assertEquals(0, $index->count()); // Count number of SiteTree and File objects $SiteTreeCount = DataObject::get('SiteTree')->count(); $FileCount = DataObject::get('File')->count(); $IndexableCount = $SiteTreeCount + $FileCount; // Re-index database $obj = new ZendSearchLuceneCMSDecorator(); $obj->rebuildZendSearchLuceneIndex(); // Has correct number of items? $this->assertEquals($IndexableCount, ZendSearchLuceneWrapper::getIndex()->count()); }
function testUpdateCMSActions() { // Setup Object::remove_extension('ContentController', 'ZendSearchLuceneContentController'); Object::remove_extension('SiteConfig', 'ZendSearchLuceneSiteConfig'); Object::remove_extension('LeftAndMain', 'ZendSearchLuceneCMSDecorator'); Object::remove_extension('SiteTree', 'ZendSearchLuceneSearchable'); Object::remove_extension('File', 'ZendSearchLuceneSearchable'); ZendSearchLuceneSearchable::$pageLength = 10; ZendSearchLuceneSearchable::$alwaysShowPages = 3; ZendSearchLuceneSearchable::$maxShowPages = 8; ZendSearchLuceneSearchable::$encoding = 'utf-8'; ZendSearchLuceneSearchable::$cacheDirectory = TEMP_FOLDER; ZendSearchLuceneWrapper::$indexName = 'Test'; ZendSearchLuceneSearchable::enable(array()); $config = SiteConfig::current_site_config(); $this->assertTrue(is_object($config->getCMSActions()->fieldByName('rebuildZendSearchLuceneIndex'))); }
/** * Rebuilds the search index whenever a dev/build is run. * * This can be turned off by adding the following to your _config.php: * * <code> * ZendSearchLuceneSearchable::$reindexOnDevBuild = false; * </code> */ public function requireDefaultRecords() { if (!self::$reindexOnDevBuild) { return; } ZendSearchLuceneWrapper::rebuildIndex(); echo '<li><em>' . _t('ZendSearchLucene.RebuildSuccessMessage', 'A Lucene search index rebuild job has been added to the Jobs queue.') . '</em></li>'; // Only run once self::$reindexOnDevBuild = false; }
public function testOnAfterDelete() { // Setup Object::remove_extension('SiteTree', 'ZendSearchLuceneSearchable'); Object::remove_extension('File', 'ZendSearchLuceneSearchable'); ZendSearchLuceneSearchable::$pageLength = 10; ZendSearchLuceneSearchable::$alwaysShowPages = 3; ZendSearchLuceneSearchable::$maxShowPages = 8; ZendSearchLuceneSearchable::$encoding = 'utf-8'; ZendSearchLuceneSearchable::$cacheDirectory = TEMP_FOLDER; ZendSearchLuceneWrapper::$indexName = 'Test'; ZendSearchLuceneSearchable::enable(); // Blank the index ZendSearchLuceneWrapper::getIndex(true); // There shouldn't be anything with asdf in there $this->assertEquals(0, count(ZendSearchLuceneWrapper::find('asdf'))); $page = DataObject::get_one('Page'); $page->Content = 'asdf'; $page->write(); // There should now be a result $this->assertGreaterThan(0, count(ZendSearchLuceneWrapper::find('asdf'))); $page->delete(); // There should now be no result again $this->assertEquals(0, count(ZendSearchLuceneWrapper::find('asdf'))); }