diff options
-rw-r--r-- | classes/api.php | 2 | ||||
-rw-r--r-- | classes/db/prefs.php | 4 | ||||
-rw-r--r-- | tests/ApiTest.php | 70 |
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']); + + } +} |