namespace Friendica\Test;
-use Friendica\BaseObject;
+use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\PConfig;
use Friendica\Core\Protocol;
use Friendica\Core\System;
+use Friendica\Factory;
use Friendica\Network\HTTPException;
+use Friendica\Util\BasePath;
+use Friendica\Util\Config\ConfigFileLoader;
+use Monolog\Handler\TestHandler;
require_once __DIR__ . '/../../include/api.php';
*/
class ApiTest extends DatabaseTest
{
+ /**
+ * @var TestHandler Can handle log-outputs
+ */
+ protected $logOutput;
+
+ /** @var App */
+ protected $app;
+
+ /** @var array */
+ protected $selfUser;
+ /** @var array */
+ protected $friendUser;
+ /** @var array */
+ protected $otherUser;
+
+ protected $wrongUserId;
+
/**
* Create variables used by tests.
*/
public function setUp()
{
- parent::setUp();
+ $basePath = BasePath::create(dirname(__DIR__) . '/../');
+ $mode = new App\Mode($basePath);
+ $router = new App\Router();
+ $configLoader = new ConfigFileLoader($basePath, $mode);
+ $configCache = Factory\ConfigFactory::createCache($configLoader);
+ $profiler = Factory\ProfilerFactory::create($configCache);
+ Factory\DBFactory::init($basePath, $configCache, $profiler, $_SERVER);
+ $config = Factory\ConfigFactory::createConfig($configCache);
+ Factory\ConfigFactory::createPConfig($configCache);
+ $logger = Factory\LoggerFactory::create('test', $config, $profiler);
+ $this->app = new App($config, $mode, $router, $logger, $profiler, false);
- $this->app = BaseObject::getApp();
+ parent::setUp();
// User data that the test database is populated with
$this->selfUser = [
*/
public function testApiStatusesUpdate()
{
- $_GET['status'] = 'Status content';
+ $_GET['status'] = 'Status content #friendica';
$_GET['in_reply_to_status_id'] = -1;
$_GET['lat'] = 48;
$_GET['long'] = 7;
$this->assertEquals('image/png', $result['media']['image']['image_type']);
$this->assertEquals(1, $result['media']['image']['w']);
$this->assertEquals(1, $result['media']['image']['h']);
+ $this->assertNotEmpty($result['media']['image']['friendica_preview_url']);
}
/**
* Test the api_status_show() function.
- * @return void
*/
- public function testApiStatusShow()
+ public function testApiStatusShowWithJson()
{
- $result = api_status_show('json');
+ $result = api_status_show('json', 1);
$this->assertStatus($result['status']);
}
/**
* Test the api_status_show() function with an XML result.
- * @return void
*/
public function testApiStatusShowWithXml()
{
- $result = api_status_show('xml');
+ $result = api_status_show('xml', 1);
$this->assertXml($result, 'statuses');
}
/**
- * Test the api_status_show() function with a raw result.
- * @return void
+ * Test the api_get_last_status() function
*/
- public function testApiStatusShowWithRaw()
+ public function testApiGetLastStatus()
{
- $this->assertStatus(api_status_show('raw'));
+ $item = api_get_last_status($this->selfUser['id'], $this->selfUser['id']);
+
+ $this->assertNotNull($item);
}
/**
}
}
+ /**
+ * Test the api_search() function with an q parameter contains hashtag.
+ * @return void
+ */
+ public function testApiSearchWithHashtag()
+ {
+ $_REQUEST['q'] = '%23friendica';
+ $result = api_search('json');
+ foreach ($result['status'] as $status) {
+ $this->assertStatus($status);
+ $this->assertContains('#friendica', $status['text'], null, true);
+ }
+ }
+
+ /**
+ * Test the api_search() function with an exclude_replies parameter.
+ * @return void
+ */
+ public function testApiSearchWithExcludeReplies()
+ {
+ $_REQUEST['max_id'] = 10;
+ $_REQUEST['exclude_replies'] = true;
+ $_REQUEST['q'] = 'friendica';
+ $result = api_search('json');
+ foreach ($result['status'] as $status) {
+ $this->assertStatus($status);
+ }
+ }
/**
* Test the api_search() function without an authenticated user.