- /**
- * Test the api_call() function with an unallowed method.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiCallWithWrongMethod()
- {
- global $API;
- $API['api_path'] = ['method' => 'method'];
-
- $_SERVER['QUERY_STRING'] = 'pagename=api_path';
-
- $args = DI::args()->determine($_SERVER, $_GET);
-
- self::assertEquals(
- '{"status":{"error":"Method Not Allowed","code":"405 Method Not Allowed","request":"api_path"}}',
- api_call($this->app, $args)
- );
- }
-
- /**
- * Test the api_call() function with an unauthorized user.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiCallWithWrongAuth()
- {
- global $API;
- $API['api_path'] = [
- 'method' => 'method',
- 'auth' => true
- ];
- $_SESSION['authenticated'] = false;
- $_SERVER['REQUEST_METHOD'] = 'method';
- $_SERVER['QUERY_STRING'] = 'pagename=api_path';
-
- $args = DI::args()->determine($_SERVER, $_GET);
-
- self::assertEquals(
- '{"status":{"error":"This API requires login","code":"401 Unauthorized","request":"api_path"}}',
- api_call($this->app, $args)
- );
- }
-
- /**
- * Test the api_error() function with a JSON result.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiErrorWithJson()
- {
- self::assertEquals(
- '{"status":{"error":"error_message","code":"200 OK","request":""}}',
- api_error('json', new HTTPException\OKException('error_message'), DI::args())
- );
- }
-
- /**
- * Test the api_error() function with an XML result.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiErrorWithXml()
- {
- self::assertEquals(
- '<?xml version="1.0"?>' . "\n" .
- '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
- 'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
- 'xmlns:georss="http://www.georss.org/georss">' . "\n" .
- ' <error>error_message</error>' . "\n" .
- ' <code>200 OK</code>' . "\n" .
- ' <request/>' . "\n" .
- '</status>' . "\n",
- api_error('xml', new HTTPException\OKException('error_message'), DI::args())
- );
- }
-
- /**
- * Test the api_error() function with an RSS result.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiErrorWithRss()
- {
- self::assertEquals(
- '<?xml version="1.0"?>' . "\n" .
- '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
- 'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
- 'xmlns:georss="http://www.georss.org/georss">' . "\n" .
- ' <error>error_message</error>' . "\n" .
- ' <code>200 OK</code>' . "\n" .
- ' <request/>' . "\n" .
- '</status>' . "\n",
- api_error('rss', new HTTPException\OKException('error_message'), DI::args())
- );
- }
-
- /**
- * Test the api_error() function with an Atom result.
- *
- * @runInSeparateProcess
- * @preserveGlobalState disabled
- */
- public function testApiErrorWithAtom()
- {
- self::assertEquals(
- '<?xml version="1.0"?>' . "\n" .
- '<status xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" ' .
- 'xmlns:friendica="http://friendi.ca/schema/api/1/" ' .
- 'xmlns:georss="http://www.georss.org/georss">' . "\n" .
- ' <error>error_message</error>' . "\n" .
- ' <code>200 OK</code>' . "\n" .
- ' <request/>' . "\n" .
- '</status>' . "\n",
- api_error('atom', new HTTPException\OKException('error_message'), DI::args())
- );
- }
-