1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2025-12-29 21:31:28 +00:00

add some basic API unit tests

This commit is contained in:
Andrew Dolgov
2017-04-27 00:24:17 +03:00
parent ea79a0e033
commit 891df34637
3 changed files with 73 additions and 3 deletions

70
tests/ApiTest.php Normal file
View File

@@ -0,0 +1,70 @@
<?php
use PHPUnit\Framework\TestCase;
set_include_path(dirname(__DIR__) ."/include" . PATH_SEPARATOR .
dirname(__DIR__) . PATH_SEPARATOR .
get_include_path());
require_once "autoload.php";
final class ApiTest extends TestCase {
public function __construct() {
init_plugins();
initialize_user_prefs(1);
set_pref('ENABLE_API_ACCESS', true, 1);
parent::__construct();
}
public function apiCall($args, $method) {
$_REQUEST = $args;
$api = new API($args);
ob_start();
$api->$method();
$rv = json_decode(ob_get_contents(), true);
ob_end_clean();
return $rv;
}
public function testBasicAuth() {
$this->assertEquals(true,
authenticate_user("admin", "password"));
}
public function testVersion() {
$ret = $this->apiCall([], "getVersion");
$this->assertStringStartsWith(
VERSION_STATIC,
$ret['content']['version']);
}
public function testLogin() {
$ret = $this->apiCall(["op" => "login",
"user" => "admin",
"password" => "password"], "login");
$this->assertNotEmpty($ret['content']['session_id']);
}
public function testGetUnread() {
$this->testLogin();
$ret = $this->apiCall([],"getUnread");
$this->assertNotEmpty($ret['content']['unread']);
}
public function testGetFeeds() {
$this->testLogin();
$ret = $this->apiCall([], "getFeeds");
$this->assertEquals("http://tt-rss.org/forum/rss.php",
$ret['content'][0]['feed_url']);
}
}