}
- /**
- * Test the api_direct_messages_new() function.
- *
- * @return void
- */
- public function testApiDirectMessagesNew()
- {
- //$result = api_direct_messages_new('json');
- //self::assertNull($result);
- }
-
- /**
- * Test the api_direct_messages_new() function without an authenticated user.
- *
- * @return void
- */
- public function testApiDirectMessagesNewWithoutAuthenticatedUser()
- {
- /*
- $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class);
- BasicAuth::setCurrentUserID();
- $_SESSION['authenticated'] = false;
- api_direct_messages_new('json');
- */
- }
-
- /**
- * Test the api_direct_messages_new() function with an user ID.
- *
- * @return void
- */
- public function testApiDirectMessagesNewWithUserId()
- {
- /*
- $_POST['text'] = 'message_text';
- $_REQUEST['user_id'] = $this->otherUser['id'];
- $result = api_direct_messages_new('json');
- self::assertEquals(['direct_message' => ['error' => -1]], $result);
- */
- }
-
- /**
- * Test the api_direct_messages_new() function with a screen name.
- *
- * @return void
- */
- public function testApiDirectMessagesNewWithScreenName()
- {
- /*
- $this->app->setLoggedInUserNickname($this->selfUser['nick']);
- $_POST['text'] = 'message_text';
- $_REQUEST['user_id'] = $this->friendUser['id'];
- $result = api_direct_messages_new('json');
- self::assertStringContainsString('message_text', $result['direct_message']['text']);
- self::assertEquals('selfcontact', $result['direct_message']['sender_screen_name']);
- self::assertEquals(1, $result['direct_message']['friendica_seen']);
- */
- }
-
- /**
- * Test the api_direct_messages_new() function with a title.
- *
- * @return void
- */
- public function testApiDirectMessagesNewWithTitle()
- {
- /*
- $this->app->setLoggedInUserNickname($this->selfUser['nick']);
- $_POST['text'] = 'message_text';
- $_REQUEST['user_id'] = $this->friendUser['id'];
- $_REQUEST['title'] = 'message_title';
- $result = api_direct_messages_new('json');
- self::assertStringContainsString('message_text', $result['direct_message']['text']);
- self::assertStringContainsString('message_title', $result['direct_message']['text']);
- self::assertEquals('selfcontact', $result['direct_message']['sender_screen_name']);
- self::assertEquals(1, $result['direct_message']['friendica_seen']);
- */
- }
-
- /**
- * Test the api_direct_messages_new() function with an RSS result.
- *
- * @return void
- */
- public function testApiDirectMessagesNewWithRss()
- {
- /*
- $this->app->setLoggedInUserNickname($this->selfUser['nick']);
- $_POST['text'] = 'message_text';
- $_REQUEST['user_id'] = $this->friendUser['id'];
- $result = api_direct_messages_new('rss');
- self::assertXml($result, 'direct-messages');
- */
- }
-
/**
* Test the api_direct_messages_destroy() function.
*
--- /dev/null
+<?php
+
+namespace Friendica\Test\src\Module\Api\Twitter\DirectMessages;
+
+use Friendica\App\Router;
+use Friendica\DI;
+use Friendica\Factory\Api\Twitter\DirectMessage;
+use Friendica\Module\Api\Twitter\DirectMessages\NewDM;
+use Friendica\Test\src\Module\Api\ApiTest;
+
+class NewDMTest extends ApiTest
+{
+ /**
+ * Test the api_direct_messages_new() function.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNew()
+ {
+ $directMessage = new DirectMessage(DI::logger(), DI::dba(), DI::twitterUser());
+
+ $newDm = new NewDM($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']);
+ $response = $newDm->run();
+
+ self::assertEmpty((string)$response->getBody());
+ }
+
+ /**
+ * Test the api_direct_messages_new() function without an authenticated user.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNewWithoutAuthenticatedUser()
+ {
+ 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_new('json');
+ */
+ }
+
+ /**
+ * Test the api_direct_messages_new() function with an user ID.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNewWithUserId()
+ {
+ $directMessage = new DirectMessage(DI::logger(), DI::dba(), DI::twitterUser());
+
+ $newDm = new NewDM($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']);
+ $response = $newDm->run([
+ 'text' => 'message_text',
+ 'user_id' => 43
+ ]);
+
+ $json = $this->toJson($response);
+
+ self::assertEquals(-1, $json->error);
+ }
+
+ /**
+ * Test the api_direct_messages_new() function with a screen name.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNewWithScreenName()
+ {
+ DI::app()->setLoggedInUserNickname('selfcontact');
+
+ $directMessage = new DirectMessage(DI::logger(), DI::dba(), DI::twitterUser());
+
+ $newDm = new NewDM($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']);
+ $response = $newDm->run([
+ 'text' => 'message_text',
+ 'user_id' => 44
+ ]);
+
+ $json = $this->toJson($response);
+
+ self::assertStringContainsString('message_text', $json->text);
+ self::assertEquals('selfcontact', $json->sender_screen_name);
+ self::assertEquals(1, $json->friendica_seen);
+ }
+
+ /**
+ * Test the api_direct_messages_new() function with a title.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNewWithTitle()
+ {
+ DI::app()->setLoggedInUserNickname('selfcontact');
+
+ $directMessage = new DirectMessage(DI::logger(), DI::dba(), DI::twitterUser());
+
+ $newDm = new NewDM($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'json']);
+ $response = $newDm->run([
+ 'text' => 'message_text',
+ 'user_id' => 44,
+ 'title' => 'message_title',
+ ]);
+
+ $json = $this->toJson($response);
+
+ self::assertStringContainsString('message_text', $json->text);
+ self::assertStringContainsString('message_title', $json->text);
+ self::assertEquals('selfcontact', $json->sender_screen_name);
+ self::assertEquals(1, $json->friendica_seen);
+ }
+
+ /**
+ * Test the api_direct_messages_new() function with an RSS result.
+ *
+ * @return void
+ */
+ public function testApiDirectMessagesNewWithRss()
+ {
+ DI::app()->setLoggedInUserNickname('selfcontact');
+
+ $directMessage = new DirectMessage(DI::logger(), DI::dba(), DI::twitterUser());
+
+ $newDm = new NewDM($directMessage, DI::dba(), DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET], ['extension' => 'rss']);
+ $response = $newDm->run([
+ 'text' => 'message_text',
+ 'user_id' => 44,
+ 'title' => 'message_title',
+ ]);
+
+ self::assertXml((string)$response->getBody(), 'direct-messages');
+ }
+}