Move DirectMessages/Destory tests & fix Destroy condition
authorPhilipp <admin@philipp.info>
Thu, 30 Dec 2021 18:58:19 +0000 (19:58 +0100)
committerPhilipp <admin@philipp.info>
Thu, 30 Dec 2021 18:58:19 +0000 (19:58 +0100)
src/Module/Api/Twitter/DirectMessages/Destroy.php
tests/legacy/ApiTest.php
tests/src/Module/Api/Twitter/DirectMessages/DestroyTest.php [new file with mode: 0644]

index 0d697de448259ee0e823d71ba59c5a0a9b7b49df..df760907d64d897075770d507153062e9453b156 100644 (file)
@@ -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;
index 808fa92fbd7c389742f2e6f36f97c8d1f4a4393a..239e297d3e0b7037737c92dfed800ca1dd80e893 100644 (file)
@@ -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 (file)
index 0000000..f1ab18d
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+
+namespace Friendica\Test\src\Module\Api\Twitter\DirectMessages;
+
+use Friendica\App\Router;
+use Friendica\Database\DBA;
+use Friendica\DI;
+use Friendica\Module\Api\Twitter\DirectMessages\Destroy;
+use Friendica\Test\src\Module\Api\ApiTest;
+
+class DestroyTest extends ApiTest
+{
+       /**
+        * Test the api_direct_messages_destroy() function.
+        *
+        * @return void
+        */
+       public function testApiDirectMessagesDestroy()
+       {
+               $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();
+       }
+
+       /**
+        * 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);
+       }
+}