From 0c4c6faa54cde9ff4067beaf7cdd14aeec987332 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 30 Dec 2021 19:58:19 +0100 Subject: [PATCH] Move DirectMessages/Destory tests & fix Destroy condition --- .../Api/Twitter/DirectMessages/Destroy.php | 2 +- tests/legacy/ApiTest.php | 97 --------------- .../Twitter/DirectMessages/DestroyTest.php | 112 ++++++++++++++++++ 3 files changed, 113 insertions(+), 98 deletions(-) create mode 100644 tests/src/Module/Api/Twitter/DirectMessages/DestroyTest.php diff --git a/src/Module/Api/Twitter/DirectMessages/Destroy.php b/src/Module/Api/Twitter/DirectMessages/Destroy.php index 0d697de448..df760907d6 100644 --- a/src/Module/Api/Twitter/DirectMessages/Destroy.php +++ b/src/Module/Api/Twitter/DirectMessages/Destroy.php @@ -58,7 +58,7 @@ class Destroy extends BaseApi $parenturi = $request['friendica_parenturi'] ?? ''; // error if no id or parenturi specified (for clients posting parent-uri as well) - if ($verbose && ($id == 0 || $parenturi == "")) { + if ($verbose && $id == 0 && $parenturi == "") { $answer = ['result' => 'error', 'message' => 'message id or parenturi not specified']; $this->response->exit('direct_messages_delete', ['direct_messages_delete' => $answer], $this->parameters['extension'] ?? null); return; diff --git a/tests/legacy/ApiTest.php b/tests/legacy/ApiTest.php index 808fa92fbd..239e297d3e 100644 --- a/tests/legacy/ApiTest.php +++ b/tests/legacy/ApiTest.php @@ -1189,103 +1189,6 @@ class ApiTest extends FixtureTest // self::assertArrayHasKey('user', $result); } - - /** - * Test the api_direct_messages_destroy() function. - * - * @return void - */ - public function testApiDirectMessagesDestroy() - { - //$this->expectException(\Friendica\Network\HTTPException\BadRequestException::class); - //api_direct_messages_destroy('json'); - } - - /** - * Test the api_direct_messages_destroy() function with the friendica_verbose GET param. - * - * @return void - */ - public function testApiDirectMessagesDestroyWithVerbose() - { - /* - $_GET['friendica_verbose'] = 'true'; - $result = api_direct_messages_destroy('json'); - self::assertEquals( - [ - '$result' => [ - 'result' => 'error', - 'message' => 'message id or parenturi not specified' - ] - ], - $result - ); - */ - } - - /** - * Test the api_direct_messages_destroy() function without an authenticated user. - * - * @return void - */ - public function testApiDirectMessagesDestroyWithoutAuthenticatedUser() - { - /* - $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class); - BasicAuth::setCurrentUserID(); - $_SESSION['authenticated'] = false; - api_direct_messages_destroy('json'); - */ - } - - /** - * Test the api_direct_messages_destroy() function with a non-zero ID. - * - * @return void - */ - public function testApiDirectMessagesDestroyWithId() - { - /* - $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class); - $_REQUEST['id'] = 1; - api_direct_messages_destroy('json'); - */ - } - - /** - * Test the api_direct_messages_destroy() with a non-zero ID and the friendica_verbose GET param. - * - * @return void - */ - public function testApiDirectMessagesDestroyWithIdAndVerbose() - { - /* - $_REQUEST['id'] = 1; - $_REQUEST['friendica_parenturi'] = 'parent_uri'; - $_GET['friendica_verbose'] = 'true'; - $result = api_direct_messages_destroy('json'); - self::assertEquals( - [ - '$result' => [ - 'result' => 'error', - 'message' => 'message id not in database' - ] - ], - $result - ); - */ - } - - /** - * Test the api_direct_messages_destroy() function with a non-zero ID. - * - * @return void - */ - public function testApiDirectMessagesDestroyWithCorrectId() - { - $this->markTestIncomplete('We need to add a dataset for this.'); - } - /** * Test the api_direct_messages_box() function. * diff --git a/tests/src/Module/Api/Twitter/DirectMessages/DestroyTest.php b/tests/src/Module/Api/Twitter/DirectMessages/DestroyTest.php new file mode 100644 index 0000000000..f1ab18d5c4 --- /dev/null +++ b/tests/src/Module/Api/Twitter/DirectMessages/DestroyTest.php @@ -0,0 +1,112 @@ +expectException(\Friendica\Network\HTTPException\BadRequestException::class); + (new Destroy(DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']))->run(); + } + + /** + * Test the api_direct_messages_destroy() function with the friendica_verbose GET param. + * + * @return void + */ + public function testApiDirectMessagesDestroyWithVerbose() + { + $destroy = new Destroy(DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']); + $response = $destroy->run([ + 'friendica_verbose' => true, + ]); + + $json = $this->toJson($response); + + self::assertEquals('error', $json->result); + self::assertEquals('message id or parenturi not specified', $json->message); + } + + /** + * Test the api_direct_messages_destroy() function without an authenticated user. + * + * @return void + */ + public function testApiDirectMessagesDestroyWithoutAuthenticatedUser() + { + self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); + + /* + $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class); + BasicAuth::setCurrentUserID(); + $_SESSION['authenticated'] = false; + api_direct_messages_destroy('json'); + */ + } + + /** + * Test the api_direct_messages_destroy() function with a non-zero ID. + * + * @return void + */ + public function testApiDirectMessagesDestroyWithId() + { + $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class); + (new Destroy(DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']))->run(['id' => 1]); + } + + /** + * Test the api_direct_messages_destroy() with a non-zero ID and the friendica_verbose GET param. + * + * @return void + */ + public function testApiDirectMessagesDestroyWithIdAndVerbose() + { + $destroy = new Destroy(DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']); + $response = $destroy->run([ + 'id' => 1, + 'friendica_parenturi' => 'parent_uri', + 'friendica_verbose' => true, + ]); + + $json = $this->toJson($response); + + self::assertEquals('error', $json->result); + self::assertEquals('message id not in database', $json->message); + } + + /** + * Test the api_direct_messages_destroy() function with a non-zero ID. + * + * @return void + */ + public function testApiDirectMessagesDestroyWithCorrectId() + { + $this->loadFixture(__DIR__ . '/../../../../../datasets/mail/mail.fixture.php', DI::dba()); + $ids = DBA::selectToArray('mail', ['id']); + $id = $ids[0]['id']; + + $destroy = new Destroy(DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']); + $response = $destroy->run([ + 'id' => $id, + 'friendica_verbose' => true, + ]); + + $json = $this->toJson($response); + + self::assertEquals('ok', $json->result); + self::assertEquals('message deleted', $json->message); + } +}