Source of file SearchListTest.php
Size: 2,995 Bytes - Last Modified: 2021-12-23T10:02:54+00:00
/var/www/docs.ssmods.com/process/src/tests/php/SearchListTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?php namespace Marcz\Search\Tests; use SilverStripe\Dev\SapphireTest; use Marcz\Search\Config as SearchConfig; use SilverStripe\Core\Injector\Injector; use SilverStripe\Control\HTTPRequest; use SilverStripe\Control\Session; use Marcz\Search\SearchList; use SilverStripe\ORM\ArrayList; use Page; /** * Config Test */ class SearchListTest extends SapphireTest { protected $usesDatabase = true; public function setUp() { parent::setUp(); // $_REQUEST['showqueries'] = 'inline'; // Created a singleton HTTPRequest with Session attached just like normal browsing $request = Injector::inst()->get(HTTPRequest::class, true, ['GET', '/']); $request->setSession(new Session([])); } public function testConstructor() { $this->assertInstanceOf( SearchList::class, SearchList::create('Apple', 'Page', 'MySQL') ); } public function testFetch() { $search = SearchList::create('Apple', 'Page', 'MySQL'); $this->assertInstanceOf(ArrayList::class, $search->fetch()); } public function testGetResponse() { $search = SearchList::create('Apple', 'Page', 'MySQL'); $search->fetch(); $this->assertArrayHasKey('_total', $search->getResponse()); $this->assertArrayHasKey('hits', $search->getResponse()); } public function testSetPageNumber() { $search = SearchList::create('Apple', 'Page', 'MySQL'); $search->setPageNumber(10)->fetch(); $page = Page::get() ->filterAny( [ 'Title:PartialMatch' => 'Apple', 'Content:PartialMatch' => 'Apple', 'MetaDescription:PartialMatch' => 'Apple', ] ) ->limit("10,20"); $this->assertEquals($page->sql(), $search->sql()); } public function testSetPageLength() { $search = SearchList::create('Apple', 'Page', 'MySQL'); $search->setPageLength(100)->fetch(); $page = Page::get() ->filterAny( [ 'Title:PartialMatch' => 'Apple', 'Content:PartialMatch' => 'Apple', 'MetaDescription:PartialMatch' => 'Apple', ] ) ->limit("0,100"); $this->assertEquals($page->sql(), $search->sql()); } public function testSql() { $search = SearchList::create('Apple', 'Page', 'MySQL'); $this->assertEquals('Run fetch() first.', $search->sql()); $search->fetch(); $page = Page::get() ->filterAny( [ 'Title:PartialMatch' => 'Apple', 'Content:PartialMatch' => 'Apple', 'MetaDescription:PartialMatch' => 'Apple', ] ) ->limit("0,20"); $this->assertEquals($page->sql(), $search->sql()); } } |