diff --git a/tests/legacy/ApiTest.php b/tests/legacy/ApiTest.php index 53c9cc6e14..808fa92fbd 100644 --- a/tests/legacy/ApiTest.php +++ b/tests/legacy/ApiTest.php @@ -1190,101 +1190,6 @@ class ApiTest extends FixtureTest } - /** - * 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. * diff --git a/tests/src/Module/Api/Twitter/DirectMessages/NewDMTest.php b/tests/src/Module/Api/Twitter/DirectMessages/NewDMTest.php new file mode 100644 index 0000000000..d9bcc87ed1 --- /dev/null +++ b/tests/src/Module/Api/Twitter/DirectMessages/NewDMTest.php @@ -0,0 +1,135 @@ + 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'); + } +}