summaryrefslogtreecommitdiff
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
parentea79a0e033e40057279a7f464c9464145eedc932 (diff)
add some basic API unit tests
-rw-r--r--classes/api.php2
-rw-r--r--classes/db/prefs.php4
-rw-r--r--tests/ApiTest.php70
3 files changed, 73 insertions, 3 deletions
diff --git a/classes/api.php b/classes/api.php
index 8ffe68cc0..3737cf07e 100644
--- a/classes/api.php
+++ b/classes/api.php
@@ -887,4 +887,4 @@ class API extends Handler {
}
-} \ No newline at end of file
+}
diff --git a/classes/db/prefs.php b/classes/db/prefs.php
index a26629490..26562298d 100644
--- a/classes/db/prefs.php
+++ b/classes/db/prefs.php
@@ -174,7 +174,7 @@ class Db_Prefs {
db_query("UPDATE ttrss_user_prefs SET
value = '$value' WHERE pref_name = '$pref_name'
$profile_qpart
- AND owner_uid = " . $_SESSION["uid"]);
+ AND owner_uid = " . $user_id);
if ($user_id == $_SESSION["uid"]) {
$this->cache[$pref_name]["type"] = $type_name;
@@ -183,4 +183,4 @@ class Db_Prefs {
}
}
-} \ No newline at end of file
+}
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']);
+
+ }
+}