]> git.mxchange.org Git - friendica.git/blob - tests/src/Module/Api/ApiResponseTest.php
Migrate API\error tests and fix ApiResponse for RSS/atom
[friendica.git] / tests / src / Module / Api / ApiResponseTest.php
1 <?php
2
3 namespace Friendica\Test\src\Module\Api;
4
5 use Friendica\App\Arguments;
6 use Friendica\Core\L10n;
7 use Friendica\Test\MockedTest;
8 use Friendica\Test\Util\ApiResponseDouble;
9 use Psr\Log\NullLogger;
10
11 class ApiResponseTest extends MockedTest
12 {
13         protected function tearDown(): void
14         {
15                 ApiResponseDouble::reset();
16
17                 parent::tearDown();
18         }
19
20         public function testErrorWithJson()
21         {
22                 $l10n = \Mockery::mock(L10n::class);
23                 $args = \Mockery::mock(Arguments::class);
24                 $args->shouldReceive('getQueryString')->andReturn('');
25
26                 $response = new ApiResponseDouble($l10n, $args, new NullLogger());
27                 $response->error(200, 'OK', 'error_message', 'json');
28
29                 self::assertEquals('{"error":"error_message","code":"200 OK","request":""}', ApiResponseDouble::getOutput());
30         }
31
32         public function testErrorWithXml()
33         {
34                 $l10n = \Mockery::mock(L10n::class);
35                 $args = \Mockery::mock(Arguments::class);
36                 $args->shouldReceive('getQueryString')->andReturn('');
37
38                 $response = new ApiResponseDouble($l10n, $args, new NullLogger());
39                 $response->error(200, 'OK', 'error_message', 'xml');
40
41                 self::assertEquals('<?xml version="1.0"?>' . "\n" .
42                                                    '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
43                                                    'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
44                                                    'xmlns:georss="http://www.georss.org/georss">' . "\n" .
45                                                    '  <error>error_message</error>' . "\n" .
46                                                    '  <code>200 OK</code>' . "\n" .
47                                                    '  <request/>' . "\n" .
48                                                    '</status>' . "\n",
49                         ApiResponseDouble::getOutput());
50         }
51
52         public function testErrorWithRss()
53         {
54                 $l10n = \Mockery::mock(L10n::class);
55                 $args = \Mockery::mock(Arguments::class);
56                 $args->shouldReceive('getQueryString')->andReturn('');
57
58                 $response = new ApiResponseDouble($l10n, $args, new NullLogger());
59                 $response->error(200, 'OK', 'error_message', 'rss');
60
61                 self::assertEquals(
62                         '<?xml version="1.0"?>' . "\n" .
63                         '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
64                         'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
65                         'xmlns:georss="http://www.georss.org/georss">' . "\n" .
66                         '  <error>error_message</error>' . "\n" .
67                         '  <code>200 OK</code>' . "\n" .
68                         '  <request/>' . "\n" .
69                         '</status>' . "\n",
70                         ApiResponseDouble::getOutput());
71         }
72
73         public function testErrorWithAtom()
74         {
75                 $l10n = \Mockery::mock(L10n::class);
76                 $args = \Mockery::mock(Arguments::class);
77                 $args->shouldReceive('getQueryString')->andReturn('');
78
79                 $response = new ApiResponseDouble($l10n, $args, new NullLogger());
80                 $response->error(200, 'OK', 'error_message', 'atom');
81
82                 self::assertEquals(
83                         '<?xml version="1.0"?>' . "\n" .
84                         '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
85                         'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
86                         'xmlns:georss="http://www.georss.org/georss">' . "\n" .
87                         '  <error>error_message</error>' . "\n" .
88                         '  <code>200 OK</code>' . "\n" .
89                         '  <request/>' . "\n" .
90                         '</status>' . "\n",
91                         ApiResponseDouble::getOutput());
92         }
93 }