Browse Source

Changed all TTRSS outputs to match original types exactly; improves #125

microsub
J. King 6 years ago
parent
commit
40e9b7f986
  1. 39
      lib/REST/TinyTinyRSS/API.php
  2. 162
      tests/REST/TinyTinyRSS/TestTinyTinyAPI.php

39
lib/REST/TinyTinyRSS/API.php

@ -227,7 +227,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
foreach (Arsse::$db->subscriptionList(Arsse::$user->id) as $sub) {
$out += $sub['unread'];
}
return ['unread' => $out];
return ['unread' => (string) $out]; // string cast to be consistent with TTRSS
}
public function opGetCounters(array $data): array {
@ -254,7 +254,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
foreach (Arsse::$db->subscriptionList($user) as $f) {
if ($f['unread']) {
// add the feed to the list of feeds
$feeds[] = ['id' => $f['id'], 'updated' => Date::transform($f['updated'], "iso8601", "sql"),'counter' => $f['unread'], 'has_img' => (int) (strlen((string) $f['favicon']) > 0)];
$feeds[] = ['id' => (string) $f['id'], 'updated' => Date::transform($f['updated'], "iso8601", "sql"),'counter' => $f['unread'], 'has_img' => (int) (strlen((string) $f['favicon']) > 0)]; // ID is cast to string for consistency with TTRSS
// add the feed's unread count to the global unread count
$countAll += $f['unread'];
// add the feed's unread count to its category unread count
@ -492,6 +492,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$cats = Arsse::$db->folderList($user, null, $deep)->getAll();
$map = [];
for ($a = 0; $a < sizeof($cats); $a++) {
$cats[$a]['id'] = (string) $cats[$a]['id']; // real categories have IDs as strings in TTRSS
$map[$cats[$a]['id']] = $a;
$cats[$a]['unread'] = 0;
$cats[$a]['order'] = $a + 1;
@ -547,6 +548,10 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
// transform the result and return
$out = [];
for ($a = 0; $a < sizeof($cats); $a++) {
if ($cats[$a]['id']==-2) {
// the Labels category has its unread count as a string in TTRSS (don't ask me why)
settype($cats[$a]['unread'], "string");
}
$out[] = $this->fieldMapNames($cats[$a], [
'id' => "id",
'title' => "name",
@ -563,7 +568,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
'parent' => $data['parent_id'],
];
try {
return Arsse::$db->folderAdd(Arsse::$user->id, $in);
return (string) Arsse::$db->folderAdd(Arsse::$user->id, $in); // output is a string in TTRSS
} catch (ExceptionInput $e) {
switch ($e->getCode()) {
case 10236: // folder already exists
@ -571,7 +576,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$folders = Arsse::$db->folderList(Arsse::$user->id, $in['parent'], false);
foreach ($folders as $folder) {
if ($folder['name']==$in['name']) {
return (int) $folder['id'];
return (string) ((int) $folder['id']); // output is a string in TTRSS
}
}
return false; // @codeCoverageIgnore
@ -663,7 +668,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => $this->labelOut($l['id']),
'title' => $l['name'],
'unread' => $l['unread'],
'unread' => (string) $l['unread'], // the unread count of labels is output as a string in TTRSS
'cat_id' => self::CAT_LABELS,
];
}
@ -681,7 +686,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_STARRED,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.Starred"),
'unread' => $starred,
'unread' => (string) $starred, // output is a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -689,7 +694,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_PUBLISHED,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.Published"),
'unread' => $published,
'unread' => (string) $published, // output is a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -697,7 +702,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_FRESH,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.Fresh"),
'unread' => $fresh,
'unread' => (string) $fresh, // output is a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -705,7 +710,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_ALL,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.All"),
'unread' => $global,
'unread' => (string) $global, // output is a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -713,7 +718,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_READ,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.Read"),
'unread' => 0, // zero by definition
'unread' => 0, // zero by definition; this one is -NOT- a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -721,7 +726,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out[] = [
'id' => self::FEED_ARCHIVED,
'title' => Arsse::$lang->msg("API.TTRSS.Feed.Archived"),
'unread' => $archived,
'unread' => (string) $archived, // output is a string in TTRSS
'cat_id' => self::CAT_SPECIAL,
];
}
@ -1170,7 +1175,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
$out = [];
foreach (Arsse::$db->articleList(Arsse::$user->id, (new Context)->articles($articles)) as $article) {
$out[] = [
'id' => $article['id'],
'id' => (string) $article['id'], // string cast to be consistent with TTRSS
'guid' => $article['guid'] ? "SHA256:".$article['guid'] : null,
'title' => $article['title'],
'link' => $article['url'],
@ -1181,16 +1186,17 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
'comments' => "", // FIXME: What is this?
'author' => $article['author'],
'updated' => Date::transform($article['edited_date'], "unix", "sql"),
'feed_id' => $article['subscription'],
'feed_id' => (string) $article['subscription'], // string cast to be consistent with TTRSS
'feed_title' => $article['subscription_title'],
'attachments' => $article['media_url'] ? [[
'id' => (string) 0, // string cast to be consistent with TTRSS; nonsense ID because we don't use them for enclosures
'content_url' => $article['media_url'],
'content_type' => $article['media_type'],
'title' => "",
'duration' => "",
'width' => "",
'height' => "",
'post_id' => $article['id'],
'post_id' => (string) $article['id'], // string cast to be consistent with TTRSS
]] : [], // TODO: We need to support multiple enclosures
'score' => 0, // score is not implemented as it is not modifiable from the TTRSS API
'note' => strlen((string) $article['note']) ? $article['note'] : null,
@ -1264,7 +1270,7 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
'author' => $article['author'],
'updated' => Date::transform($article['edited_date'], "unix", "sql"),
'is_updated' => ($article['published_date'] < $article['edited_date']),
'feed_id' => $article['subscription'],
'feed_id' => (string) $article['subscription'], // string cast to be consistent with TTRSS
'feed_title' => $article['subscription_title'],
'score' => 0, // score is not implemented as it is not modifiable from the TTRSS API
'note' => strlen((string) $article['note']) ? $article['note'] : null,
@ -1286,13 +1292,14 @@ class API extends \JKingWeb\Arsse\REST\AbstractHandler {
}
if ($data['include_attachments']) {
$row['attachments'] = $article['media_url'] ? [[
'id' => (string) 0, // string cast to be consistent with TTRSS; nonsense ID because we don't use them for enclosures
'content_url' => $article['media_url'],
'content_type' => $article['media_type'],
'title' => "",
'duration' => "",
'width' => "",
'height' => "",
'post_id' => $article['id'],
'post_id' => (string) $article['id'], // string cast to be consistent with TTRSS
]] : []; // TODO: We need to support multiple enclosures
}
$out[] = $row;

162
tests/REST/TinyTinyRSS/TestTinyTinyAPI.php

@ -311,14 +311,14 @@ LONG_STRING;
Phake::when(Arsse::$db)->folderAdd(Arsse::$user->id, ['name' => "", 'parent' => null])->thenThrow(new ExceptionInput("missing"));
Phake::when(Arsse::$db)->folderAdd(Arsse::$user->id, ['name' => " ", 'parent' => null])->thenThrow(new ExceptionInput("whitespace"));
// correctly add two folders
$exp = $this->respGood(2);
$exp = $this->respGood("2");
$this->assertResponse($exp, $this->req($in[0]));
$exp = $this->respGood(3);
$exp = $this->respGood("3");
$this->assertResponse($exp, $this->req($in[1]));
// attempt to add the two folders again
$exp = $this->respGood(2);
$exp = $this->respGood("2");
$this->assertResponse($exp, $this->req($in[0]));
$exp = $this->respGood(3);
$exp = $this->respGood("3");
$this->assertResponse($exp, $this->req($in[1]));
Phake::verify(Arsse::$db)->folderList(Arsse::$user->id, null, false);
Phake::verify(Arsse::$db)->folderList(Arsse::$user->id, 1, false);
@ -633,7 +633,7 @@ LONG_STRING;
['id' => 2, 'unread' => 42],
['id' => 3, 'unread' => 47],
]));
$exp = $this->respGood(['unread' => (2112 + 42 + 47)]);
$exp = $this->respGood(['unread' => (string) (2112 + 42 + 47)]);
$this->assertResponse($exp, $this->req($in));
}
@ -808,54 +808,54 @@ LONG_STRING;
Phake::when(Arsse::$db)->articleStarred($this->anything())->thenReturn($this->starred);
$exp = [
[
['id' => 5, 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => 6, 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => 4, 'title' => "Photography", 'unread' => 0, 'order_id' => 3],
['id' => 3, 'title' => "Politics", 'unread' => 0, 'order_id' => 4],
['id' => 2, 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => 1, 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "5", 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => "6", 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => "4", 'title' => "Photography", 'unread' => 0, 'order_id' => 3],
['id' => "3", 'title' => "Politics", 'unread' => 0, 'order_id' => 4],
['id' => "2", 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => "1", 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
[
['id' => 5, 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => 6, 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => 3, 'title' => "Politics", 'unread' => 0, 'order_id' => 4],
['id' => 2, 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => 1, 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "5", 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => "6", 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => "3", 'title' => "Politics", 'unread' => 0, 'order_id' => 4],
['id' => "2", 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => "1", 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
[
['id' => 5, 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => 6, 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => 2, 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => 1, 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "5", 'title' => "Local", 'unread' => 10, 'order_id' => 1],
['id' => "6", 'title' => "National", 'unread' => 18, 'order_id' => 2],
['id' => "2", 'title' => "Rocketry", 'unread' => 5, 'order_id' => 5],
['id' => "1", 'title' => "Science", 'unread' => 2, 'order_id' => 6],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
[
['id' => 4, 'title' => "Photography", 'unread' => 0, 'order_id' => 1],
['id' => 3, 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => 1, 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "4", 'title' => "Photography", 'unread' => 0, 'order_id' => 1],
['id' => "3", 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => "1", 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
[
['id' => 3, 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => 1, 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "3", 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => "1", 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => 0, 'title' => "Uncategorized", 'unread' => 0],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
[
['id' => 3, 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => 1, 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => 6],
['id' => "3", 'title' => "Politics", 'unread' => 28, 'order_id' => 2],
['id' => "1", 'title' => "Science", 'unread' => 7, 'order_id' => 3],
['id' => -1, 'title' => "Special", 'unread' => 11],
['id' => -2, 'title' => "Labels", 'unread' => "6"],
],
];
for ($a = 0; $a < sizeof($in); $a++) {
@ -880,11 +880,11 @@ LONG_STRING;
['id' => -4, 'counter' => 35, 'auxcounter' => 0],
['id' => -1027, 'counter' => 6, 'auxcounter' => 100],
['id' => -1025, 'counter' => 0, 'auxcounter' => 2],
['id' => 3, 'updated' => "2016-05-23T06:40:02", 'counter' => 2, 'has_img' => 1],
['id' => 4, 'updated' => "2017-10-09T15:58:34", 'counter' => 6, 'has_img' => 1],
['id' => 1, 'updated' => "2017-09-15T22:54:16", 'counter' => 5, 'has_img' => 0],
['id' => 5, 'updated' => "2017-07-07T17:07:17", 'counter' => 12, 'has_img' => 0],
['id' => 2, 'updated' => "2011-11-11T11:11:11", 'counter' => 10, 'has_img' => 1],
['id' => "3", 'updated' => "2016-05-23T06:40:02", 'counter' => 2, 'has_img' => 1],
['id' => "4", 'updated' => "2017-10-09T15:58:34", 'counter' => 6, 'has_img' => 1],
['id' => "1", 'updated' => "2017-09-15T22:54:16", 'counter' => 5, 'has_img' => 0],
['id' => "5", 'updated' => "2017-07-07T17:07:17", 'counter' => 12, 'has_img' => 0],
['id' => "2", 'updated' => "2011-11-11T11:11:11", 'counter' => 10, 'has_img' => 1],
['id' => 5, 'kind' => "cat", 'counter' => 10],
['id' => 6, 'kind' => "cat", 'counter' => 18],
['id' => 3, 'kind' => "cat", 'counter' => 28],
@ -1096,24 +1096,24 @@ LONG_STRING;
['id' => 6, 'title' => 'Eurogamer', 'unread' => 0, 'cat_id' => 0, 'feed_url' => " http://example.com/6", 'has_icon' => true, 'last_updated' => 1266005327, 'order_id' => 1],
],
[
['id' => -1, 'title' => "Starred articles", 'unread' => 4, 'cat_id' => -1],
['id' => -2, 'title' => "Published articles", 'unread' => 0, 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => 7, 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => 35, 'cat_id' => -1],
['id' => -6, 'title' => "Recently read", 'unread' => 0, 'cat_id' => -1],
['id' => 0, 'title' => "Archived articles", 'unread' => 0, 'cat_id' => -1],
['id' => -1, 'title' => "Starred articles", 'unread' => "4", 'cat_id' => -1],
['id' => -2, 'title' => "Published articles", 'unread' => "0", 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => "7", 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => "35", 'cat_id' => -1],
['id' => -6, 'title' => "Recently read", 'unread' => 0, 'cat_id' => -1],
['id' => 0, 'title' => "Archived articles", 'unread' => "0", 'cat_id' => -1],
],
[
['id' => -1, 'title' => "Starred articles", 'unread' => 4, 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => 7, 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => 35, 'cat_id' => -1],
['id' => -1, 'title' => "Starred articles", 'unread' => "4", 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => "7", 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => "35", 'cat_id' => -1],
],
[
['id' => -1027, 'title' => "Fascinating", 'unread' => 6, 'cat_id' => -2],
['id' => -1025, 'title' => "Logical", 'unread' => 0, 'cat_id' => -2],
['id' => -1027, 'title' => "Fascinating", 'unread' => "6", 'cat_id' => -2],
['id' => -1025, 'title' => "Logical", 'unread' => "0", 'cat_id' => -2],
],
[
['id' => -1027, 'title' => "Fascinating", 'unread' => 6, 'cat_id' => -2],
['id' => -1027, 'title' => "Fascinating", 'unread' => "6", 'cat_id' => -2],
],
[
['id' => 3, 'title' => 'Ars Technica', 'unread' => 2, 'cat_id' => 1, 'feed_url' => " http://example.com/3", 'has_icon' => true, 'last_updated' => 1463985602, 'order_id' => 1],
@ -1131,14 +1131,14 @@ LONG_STRING;
['id' => 2, 'title' => 'Toronto Star', 'unread' => 10, 'cat_id' => 5, 'feed_url' => " http://example.com/2", 'has_icon' => true, 'last_updated' => 1321009871, 'order_id' => 6],
],
[
['id' => -1027, 'title' => "Fascinating", 'unread' => 6, 'cat_id' => -2],
['id' => -1025, 'title' => "Logical", 'unread' => 0, 'cat_id' => -2],
['id' => -1, 'title' => "Starred articles", 'unread' => 4, 'cat_id' => -1],
['id' => -2, 'title' => "Published articles", 'unread' => 0, 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => 7, 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => 35, 'cat_id' => -1],
['id' => -6, 'title' => "Recently read", 'unread' => 0, 'cat_id' => -1],
['id' => 0, 'title' => "Archived articles", 'unread' => 0, 'cat_id' => -1],
['id' => -1027, 'title' => "Fascinating", 'unread' => "6", 'cat_id' => -2],
['id' => -1025, 'title' => "Logical", 'unread' => "0", 'cat_id' => -2],
['id' => -1, 'title' => "Starred articles", 'unread' => "4", 'cat_id' => -1],
['id' => -2, 'title' => "Published articles", 'unread' => "0", 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => "7", 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => "35", 'cat_id' => -1],
['id' => -6, 'title' => "Recently read", 'unread' => 0, 'cat_id' => -1],
['id' => 0, 'title' => "Archived articles", 'unread' => "0", 'cat_id' => -1],
['id' => 3, 'title' => 'Ars Technica', 'unread' => 2, 'cat_id' => 1, 'feed_url' => " http://example.com/3", 'has_icon' => true, 'last_updated' => 1463985602, 'order_id' => 1],
['id' => 4, 'title' => 'CBC News', 'unread' => 6, 'cat_id' => 6, 'feed_url' => " http://example.com/4", 'has_icon' => true, 'last_updated' => 1507564714, 'order_id' => 2],
['id' => 6, 'title' => 'Eurogamer', 'unread' => 0, 'cat_id' => 0, 'feed_url' => " http://example.com/6", 'has_icon' => true, 'last_updated' => 1266005327, 'order_id' => 3],
@ -1147,10 +1147,10 @@ LONG_STRING;
['id' => 2, 'title' => 'Toronto Star', 'unread' => 10, 'cat_id' => 5, 'feed_url' => " http://example.com/2", 'has_icon' => true, 'last_updated' => 1321009871, 'order_id' => 6],
],
[
['id' => -1027, 'title' => "Fascinating", 'unread' => 6, 'cat_id' => -2],
['id' => -1, 'title' => "Starred articles", 'unread' => 4, 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => 7, 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => 35, 'cat_id' => -1],
['id' => -1027, 'title' => "Fascinating", 'unread' => "6", 'cat_id' => -2],
['id' => -1, 'title' => "Starred articles", 'unread' => "4", 'cat_id' => -1],
['id' => -3, 'title' => "Fresh articles", 'unread' => "7", 'cat_id' => -1],
['id' => -4, 'title' => "All articles", 'unread' => "35", 'cat_id' => -1],
['id' => 3, 'title' => 'Ars Technica', 'unread' => 2, 'cat_id' => 1, 'feed_url' => " http://example.com/3", 'has_icon' => true, 'last_updated' => 1463985602, 'order_id' => 1],
['id' => 4, 'title' => 'CBC News', 'unread' => 6, 'cat_id' => 6, 'feed_url' => " http://example.com/4", 'has_icon' => true, 'last_updated' => 1507564714, 'order_id' => 2],
['id' => 1, 'title' => 'NASA JPL', 'unread' => 5, 'cat_id' => 2, 'feed_url' => " http://example.com/1", 'has_icon' => false, 'last_updated' => 1505516056, 'order_id' => 4],
@ -1307,7 +1307,7 @@ LONG_STRING;
$this->assertResponse($exp, $this->req($in[3]));
$exp = [
[
'id' => 101,
'id' => "101",
'guid' => null,
'title' => 'Article title 1',
'link' => 'http://example.com/1',
@ -1318,7 +1318,7 @@ LONG_STRING;
'comments' => "",
'author' => '',
'updated' => strtotime('2000-01-01 00:00:01'),
'feed_id' => 8,
'feed_id' => "8",
'feed_title' => "Feed 11",
'attachments' => [],
'score' => 0,
@ -1327,7 +1327,7 @@ LONG_STRING;
'content' => '<p>Article content 1</p>',
],
[
'id' => 102,
'id' => "102",
'guid' => "SHA256:5be8a5a46ecd52ed132191c8d27fb1af6b3d4edc00234c5d9f8f0e10562ed3b7",
'title' => 'Article title 2',
'link' => 'http://example.com/2',
@ -1341,17 +1341,18 @@ LONG_STRING;
'comments' => "",
'author' => "J. King",
'updated' => strtotime('2000-01-02 00:00:02'),
'feed_id' => 8,
'feed_id' => "8",
'feed_title' => "Feed 11",
'attachments' => [
[
'id' => "0",
'content_url' => "http://example.com/text",
'content_type' => "text/plain",
'title' => "",
'duration' => "",
'width' => "",
'height' => "",
'post_id' => 102,
'post_id' => "102",
],
],
'score' => 0,
@ -1604,13 +1605,14 @@ LONG_STRING;
$test = $this->req($in[2]);
$exp = [
[
'id' => "0",
'content_url' => "http://example.com/text",
'content_type' => "text/plain",
'title' => "",
'duration' => "",
'width' => "",
'height' => "",
'post_id' => 2112,
'post_id' => "2112",
],
];
$this->assertArrayHasKey("attachments", $test->payload['content'][0]);
@ -1742,7 +1744,7 @@ LONG_STRING;
'author' => '',
'updated' => strtotime('2000-01-01 00:00:00'),
'is_updated' => false,
'feed_id' => 12,
'feed_id' => "12",
'feed_title' => "Feed 2112",
'score' => 0,
'note' => null,
@ -1766,7 +1768,7 @@ LONG_STRING;
'author' => "J. King",
'updated' => strtotime('2000-01-02 00:00:02'),
'is_updated' => true,
'feed_id' => 8,
'feed_id' => "8",
'feed_title' => "Feed 11",
'score' => 0,
'note' => "Note 2",

Loading…
Cancel
Save