. * */ namespace Friendica\Test\src\Module\Api\Friendica\DirectMessages; use Friendica\App\Router; use Friendica\DI; use Friendica\Factory\Api\Twitter\DirectMessage; use Friendica\Module\Api\Friendica\DirectMessages\Search; use Friendica\Test\src\Module\Api\ApiTest; use Psr\Log\NullLogger; class SearchTest extends ApiTest { public function testEmpty() { $directMessage = new DirectMessage(new NullLogger(), DI::dba(), DI::twitterUser()); $response = (new Search($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), [])) ->run(); $json = $this->toJson($response); $assert = new \stdClass(); $assert->result = 'error'; $assert->message = 'searchstring not specified'; self::assertEquals($assert, $json); } public function testMail() { $this->loadFixture(__DIR__ . '/../../../../../datasets/mail/mail.fixture.php', DI::dba()); $directMessage = new DirectMessage(new NullLogger(), DI::dba(), DI::twitterUser()); $response = (new Search($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), [])) ->run([ 'searchstring' => 'item_body' ]); $json = $this->toJson($response); self::assertTrue($json->success); foreach ($json->search_results as $searchResult) { self::assertIsObject($searchResult->sender); self::assertIsInt($searchResult->id); self::assertIsInt($searchResult->sender_id); self::assertIsObject($searchResult->recipient); } } public function testNothingFound() { $directMessage = new DirectMessage(new NullLogger(), DI::dba(), DI::twitterUser()); $response = (new Search($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), [])) ->run([ 'searchstring' => 'test' ]); $json = $this->toJson($response); $assert = new \stdClass(); $assert->success = false; $assert->search_results = 'nothing found'; self::assertEquals($assert, $json); } }