Source of file DatabaseSearchEngineTest.php
Size: 1,570 Bytes - Last Modified: 2021-12-23T10:28:18+00:00
/var/www/docs.ssmods.com/process/src/tests/php/Search/DatabaseSearchEngineTest.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?php namespace SilverStripe\CMS\Tests\Search; use SilverStripe\Dev\SapphireTest; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Assets\File; use SilverStripe\ORM\DB; use SilverStripe\Core\Config\Config; use SilverStripe\ORM\Search\FulltextSearchable; class DatabaseSearchEngineTest extends SapphireTest { protected $usesDatabase = true; /** * @var bool InnoDB doesn't update indexes until transactions are committed */ protected $usesTransactions = false; public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); // Postgres doesn't refresh TSearch indexes when the schema changes after CREATE TABLE // MySQL will need a different table type if (static::$tempDB) { static::$tempDB->kill(); Config::modify(); } FulltextSearchable::enable(); static::$tempDB->build(); static::resetDBSchema(true); } /** * Validate that https://github.com/silverstripe/silverstripe-cms/issues/3212 is fixed */ public function testSearchEngineEscapeAs() { $page = new SiteTree(); $page->Title = "This page provides food as bar"; $page->write(); $page->doPublish(); $results = DB::get_conn()->searchEngine([ SiteTree::class, File::class ], "foo* as* bar*", 0, 100, "\"Relevance\" DESC", "", true); $this->assertCount(1, $results); $this->assertEquals( "This page provides food as bar", $results->First()->Title ); } } |