summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-04-27 00:24:17 +0300
committerAndrew Dolgov <[email protected]>2017-04-27 00:24:17 +0300
commit891df346377be014bbad14c229421d92cfd332ea (patch)
tree2a4f112fbcae33e294ada6ec708ab16917a8653a /tests
parentea79a0e033e40057279a7f464c9464145eedc932 (diff)
add some basic API unit tests
Diffstat (limited to 'tests')
-rw-r--r--tests/ApiTest.php70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/ApiTest.php b/tests/ApiTest.php
new file mode 100644
index 000000000..7a620d86e
--- /dev/null
+++ b/tests/ApiTest.php
@@ -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']);
+
+ }
+}